Mengukur nilai daya

Produsen perangkat harus menyediakan profil daya komponen di /frameworks/base/core/res/res/xml/power_profile.xml.

Untuk menentukan nilai profil daya, gunakan hardware yang mengukur daya yang digunakan oleh perangkat dan melakukan berbagai operasi yang memerlukan informasi. Ukur penggunaan daya selama operasi tersebut dan hitung nilainya (dapatkan perbedaan dari penggunaan daya dasar pengukuran lainnya sebagaimana mestinya).

Karena sasaran profil daya adalah memperkirakan konsumsi baterai dengan tepat, nilai profil daya diberikan dalam arus (amp). Framework Android akan mengalikan arus dengan waktu saat subsistem aktif dan menghitung nilai mAh, yang kemudian digunakan untuk memperkirakan jumlah baterai yang habis oleh aplikasi atau subsistem.

Perangkat dengan pengontrol Bluetooth, modem, dan Wi-Fi yang menjalankan Android 7.0 dan yang lebih tinggi dapat memberikan nilai daya tambahan yang diperoleh dari data chipset.

Perangkat dengan CPU heterogen

Profil daya untuk perangkat dengan core CPU dari arsitektur heterogen harus menyertakan kolom tambahan berikut:

  • Jumlah total CPU untuk setiap cluster (dinyatakan dalam cpu.clusters.cores).
  • Kecepatan CPU yang didukung oleh setiap cluster.
  • Konsumsi daya CPU aktif untuk setiap cluster.

Untuk membedakan antara konsumsi daya CPU aktif dan kecepatan CPU yang didukung untuk cluster, tambahkan nomor cluster ke nama array. Nomor cluster ditetapkan dalam urutan core CPU di hierarki perangkat kernel. Misalnya, dalam arsitektur heterogen yang memiliki dua (2) cluster dengan empat (4) inti:

  • cluster0 terdiri dari cpu0-3
  • cluster1 terdiri dari cpu4-7

Framework Android menggunakan nomor core CPU ini saat membaca statistik dari file sysfs di: /sys/devices/system/cpu/cpu<number>/cpufreq/stats.

Contoh CPU dan kecepatan cluster:

<array name="cpu.active.cluster0">
<value>200</value>
<value>300</value>
<value>400</value>
</array>
<array name="cpu.speeds.cluster0">
<value>600000</value>
<value>800000</value>
<value>1200000</value>
</array>

<array name="cpu.active.cluster1">
<value>400</value>
<value>500</value>
<value>600</value>
</array>
<array name="cpu.speeds.cluster1">
<value>800000</value>
<value>1200000</value>
<value>1400000</value>
</array>

Nilai daya

Tabel berikut menjelaskan setelan nilai daya yang tersedia. Untuk melihat file contoh di AOSP, lihat power_profile.xml.

Nama Deskripsi Nilai contoh Catatan
ambient.on Daya tambahan yang digunakan saat layar dalam mode tidur/standby/selalu aktif, bukan nonaktif. sekitar 100 mA -
screen.on Daya tambahan yang digunakan saat layar diaktifkan pada kecerahan minimum. 200 mA Termasuk pengontrol sentuh dan lampu latar layar. Pada kecerahan 0, bukan minimum Android yang cenderung 10 atau 20%.
screen.full Daya tambahan yang digunakan saat layar berada pada kecerahan maksimum, dibandingkan dengan kecerahan minimum layar. 100 mA-300 mA Sebagian dari nilai ini (berdasarkan kecerahan layar) ditambahkan ke nilai screen.on untuk menghitung penggunaan daya layar.
wifi.aktif Daya tambahan yang digunakan saat Wi-Fi diaktifkan, tetapi tidak menerima, mengirim, atau memindai. 2 mA -
wifi.active Daya tambahan yang digunakan saat mengirim atau menerima melalui Wi-Fi. 31 mA -
wifi.scan Daya tambahan yang digunakan saat Wi-Fi memindai titik akses. 100 mA -
audio Daya tambahan digunakan saat decoding/encoding audio melalui DSP. sekitar 10 mA Digunakan untuk audio DSP.
video Daya tambahan yang digunakan saat decoding video melalui DSP. sekitar 50 mA Digunakan untuk video DSP.
kamera.rata2 Rata-rata penggunaan daya oleh subsistem kamera untuk aplikasi kamera biasa. 600 mA Dimaksudkan sebagai perkiraan kasar untuk aplikasi yang menjalankan pratinjau dan mengambil sekitar 10 gambar beresolusi penuh per menit.
camera.flashlight Daya rata-rata yang digunakan oleh modul flash kamera saat aktif. 200 mA -
gps.signalqualitybased Daya tambahan yang digunakan oleh GPS berdasarkan kekuatan sinyal. Ini adalah entri multi-nilai, satu per kekuatan sinyal, dari yang terlemah hingga terkuat. 30 mA, 10 mA -
gps.on Daya tambahan yang digunakan saat GPS memperoleh sinyal. 50 mA -
radio.active Daya tambahan yang digunakan saat radio seluler mengirim/menerima. 100 mA-300 mA -
pemindaian radio Daya tambahan yang digunakan saat radio seluler melakukan paging ke menara. 1,2 mA -
radio.on Daya tambahan yang digunakan saat radio seluler aktif. Ini adalah entri multinilai, satu per kekuatan sinyal (tanpa sinyal, lemah, sedang, kuat). 1,2 mA Beberapa radio meningkatkan daya saat mencari menara seluler dan tidak mendeteksi sinyal. Nilainya bisa sama atau akan berkurang seiring meningkatnya kekuatan sinyal. Jika Anda hanya memberikan satu nilai, nilai yang sama akan digunakan untuk semua kekuatan. Jika Anda memberikan dua nilai, nilai pertama digunakan untuk tidak ada sinyal, nilai kedua digunakan untuk semua kekuatan lainnya, dan seterusnya.
bluetooth.controller.idle Arus listrik rata-rata (mA) pengontrol Bluetooth saat tidak ada aktivitas. - Nilai ini tidak diperkirakan, tetapi diambil dari sheet data pengontrol. Jika ada beberapa status terima atau kirim, rata-rata status tersebut akan diambil. Selain itu, sistem kini mengumpulkan data untuk pemindaian Hemat Energi (LE) dan Bluetooth.

Android 7.0 dan yang lebih baru tidak lagi menggunakan nilai daya Bluetooth untuk bluetooth.active (digunakan saat memutar audio melalui Bluetooth A2DP) dan bluetooth.on (digunakan saat Bluetooth aktif, tetapi tidak ada aktivitas).
bluetooth.controller.rx Arus listrik rata-rata (mA) pengontrol Bluetooth saat menerima. -
bluetooth.controller.tx Rata-rata gambar saat ini (mA) dari pengontrol Bluetooth saat melakukan transmisi. -
bluetooth.controller.voltage Tegangan operasi rata-rata (mV) pengontrol Bluetooth. -
modem.controller.sleep Arus listrik rata-rata (mA) pengontrol modem saat tidur. 0 mA Nilai ini tidak diperkirakan, tetapi diambil dari sheet data pengontrol. Jika ada beberapa status penerimaan, rata-rata status tersebut akan diambil. Jika ada beberapa status transmisi, menentukan nilai untuk setiap status transmisi didukung mulai dari Android 9.
modem.controller.idle Arus listrik rata-rata (mA) pengontrol modem saat tidak ada aktivitas. -
modem.controller.rx Arus listrik rata-rata (mA) pengontrol modem saat menerima. -
modem.controller.tx Arus listrik rata-rata (mA) pengontrol modem saat mengirimkan pada berbagai tingkat daya RF. Ini adalah entri multi-nilai dengan satu nilai per tingkat daya transmisi. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
modem.controller.voltage Tegangan pengoperasian rata-rata (mV) pengontrol modem. -
wifi.controller.idle Rata-rata penarikan saat ini (mA) dari pengontrol Wi-Fi saat tidak ada aktivitas. - Nilai ini tidak diperkirakan, tetapi diambil dari lembar data pengontrol. Jika ada beberapa status terima atau kirim, rata-rata status tersebut akan diambil.
{i>wifi.controller.rx<i} Arus listrik rata-rata (mA) pengontrol Wi-Fi saat menerima. -
wifi.controller.tx Arus listrik rata-rata (mA) pengontrol Wi-Fi saat mengirimkan. -
wifi.controller.voltage Tegangan operasi rata-rata (mV) pengontrol Wi-Fi. -
cpu.speeds Ini adalah entri multi-nilai yang mencantumkan setiap kemungkinan kecepatan CPU dalam KHz. 125.000 KHz, 250.000 KHz, 500.000 KHz, 1000000 KHz, 1500000 KHz Jumlah dan urutan entri harus sesuai dengan entri mA di cpu.active.
cpu.idle Total daya yang digunakan oleh sistem saat CPU (dan SoC) berada dalam status penangguhan sistem. 3 mA -
cpu.awake Daya tambahan yang digunakan saat CPU berada dalam status tidak ada aktivitas penjadwalan (loop tidak ada aktivitas kernel); sistem tidak dalam status penangguhan sistem. 50 mA Platform Anda mungkin memiliki lebih dari satu status tidak ada aktivitas yang digunakan dengan tingkat konsumsi daya yang berbeda; pilih status tidak ada aktivitas representatif untuk periode tidak ada aktivitas penjadwal yang lebih lama (beberapa milidetik). Periksa grafik daya pada peralatan pengukuran dan pilih sampel di mana CPU berada pada konsumsi terendah, dengan membuang sampel yang lebih tinggi saat CPU keluar dari tidak ada aktivitas.
{i>cpu.active<i} Daya tambahan yang digunakan oleh CPU saat berjalan pada kecepatan yang berbeda. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA Nilai menunjukkan daya yang digunakan oleh power rail CPU saat berjalan dengan kecepatan yang berbeda. Tetapkan kecepatan maksimum di kernel ke setiap kecepatan yang diizinkan dan tetapkan CPU pada kecepatan tersebut. Jumlah dan urutan entri sesuai dengan jumlah dan urutan entri di cpu.speeds.
cpu.clusters.cores Jumlah core yang terdapat di setiap cluster CPU. 4, 2 Diperlukan hanya untuk perangkat dengan arsitektur CPU heterogen. Jumlah entri dan urutan harus cocok dengan jumlah entri cluster untuk cpu.active dan cpu.speeds. Entri pertama mewakili jumlah core CPU di cluster0, entri kedua mewakili jumlah core CPU di cluster1, dan seterusnya.
baterai.capacity Total kapasitas baterai dalam mAh. 3.000 mAh -

Pemindaian Bluetooth dan Hemat Energi (LE)

Untuk perangkat yang menjalankan Android 7.0, sistem mengumpulkan data untuk pemindaian Low Energy (LE) dan traffic jaringan Bluetooth (seperti RFCOMM dan L2CAP) dan mengaitkan aktivitas ini dengan aplikasi yang memulai pemindaian. Pemindaian Bluetooth dikaitkan dengan aplikasi yang memulai pemindaian, tetapi pemindaian batch tidak (dan sebaliknya dikaitkan dengan aplikasi Bluetooth). Untuk pemindaian aplikasi selama N milidetik, biaya pemindaian adalah N milidetik waktu rx dan N milidetik waktu tx; semua waktu pengontrol yang tersisa ditetapkan ke traffic jaringan atau aplikasi Bluetooth.