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 perangkat keras 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 lainnya jika diperlukan).

Karena tujuan profil daya adalah memperkirakan pengurasan baterai dengan tepat, nilai profil daya diberikan dalam satuan arus (amp). Kerangka kerja Android mengalikan arus dengan waktu aktifnya subsistem dan menghitung nilai mAh, yang kemudian digunakan untuk memperkirakan jumlah baterai yang terkuras oleh aplikasi/subsistem.

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

Perangkat dengan CPU heterogen

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

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

Untuk membedakan antara konsumsi daya CPU aktif dan kecepatan CPU yang didukung untuk klaster, tambahkan nomor klaster ke nama array. Nomor cluster ditetapkan berdasarkan urutan inti CPU di pohon 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

Kerangka kerja Android menggunakan nomor inti CPU ini ketika membaca statistik dari file sysfs di: /sys/devices/system/cpu/cpu<number>/cpufreq/stats .

Contoh CPU cluster dan kecepatannya:

<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 kekuatan

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

Nama Keterangan Contoh Nilai Catatan
ambient.on Daya tambahan digunakan saat layar dalam mode istirahat/ambien/selalu aktif, bukan mati. sekitar 100mA -
layar.on Daya tambahan digunakan saat layar dihidupkan pada kecerahan minimum. 200mA Termasuk pengontrol sentuh dan lampu latar tampilan. Pada kecerahan 0, bukan minimum Android yang cenderung 10 atau 20%.
layar.penuh Daya tambahan digunakan saat layar berada pada kecerahan maksimum, dibandingkan dengan layar pada kecerahan minimum. 100mA-300mA Sebagian kecil dari nilai ini (berdasarkan kecerahan layar) ditambahkan ke nilai screen.on untuk menghitung penggunaan daya layar.
wifi.on Daya tambahan digunakan saat Wi-Fi dihidupkan tetapi tidak menerima, mengirim, atau memindai. 2 mA -
wifi.aktif Daya tambahan yang digunakan saat mengirim atau menerima melalui Wi-Fi. 31mA -
wifi.scan Daya tambahan digunakan saat Wi-Fi memindai titik akses. 100mA -
audio Daya tambahan digunakan saat decoding/encoding audio melalui DSP. sekitar 10mA Digunakan untuk audio DSP.
video Daya tambahan digunakan saat decoding video melalui DSP. sekitar 50mA Digunakan untuk video DSP.
kamera.rata-rata Penggunaan daya rata-rata oleh subsistem kamera untuk aplikasi kamera pada umumnya. 600 mA Ditujukan sebagai perkiraan kasar untuk aplikasi yang menjalankan pratinjau dan menangkap sekitar 10 gambar resolusi penuh per menit.
kamera.senter Daya rata-rata yang digunakan oleh modul lampu kilat kamera saat dihidupkan. 200mA -
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. 30mA, 10mA -
gps.on Daya tambahan digunakan saat GPS memperoleh sinyal. 50mA -
radioaktif Daya tambahan yang digunakan saat radio seluler memancarkan/menerima. 100mA-300mA -
radio.pemindaian Daya tambahan digunakan saat radio seluler melakukan paging ke menara. 1,2mA -
radio.on Daya tambahan digunakan saat radio seluler aktif. Ini adalah entri multinilai, satu per kekuatan sinyal (tidak ada sinyal, lemah, sedang, kuat). 1,2mA Beberapa radio meningkatkan daya saat mencari menara seluler dan tidak mendeteksi sinyal. Nilainya bisa sama atau menurun seiring dengan 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 Penarikan arus rata-rata (mA) pengontrol Bluetooth saat idle. - Nilai-nilai ini tidak diperkirakan, namun diambil dari lembar data pengontrol. Jika ada beberapa negara bagian yang menerima atau mengirimkan, rata-rata negara bagian tersebut diambil. Selain itu, sistem sekarang mengumpulkan data untuk pemindaian Energi Rendah (LE) dan Bluetooth .

Android 7.0 dan versi 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 namun tidak aktif).
bluetooth.controller.rx Penarikan arus rata-rata (mA) dari pengontrol Bluetooth saat menerima. -
bluetooth.controller.tx Penarikan arus rata-rata (mA) dari pengontrol Bluetooth saat transmisi. -
bluetooth.controller.voltase Tegangan operasi rata-rata (mV) pengontrol Bluetooth. -
modem.controller.tidur Penarikan arus rata-rata (mA) dari pengontrol modem saat tidur. 0 mA Nilai-nilai ini tidak diperkirakan, namun diambil dari lembar data pengontrol. Jika ada beberapa negara bagian yang menerima, rata-rata negara bagian tersebut akan diambil. Jika ada beberapa status transmisi, penentuan nilai untuk setiap status transmisi didukung mulai Android 9.
modem.controller.idle Penarikan arus rata-rata (mA) dari pengontrol modem saat idle. -
modem.controller.rx Penarikan arus rata-rata (mA) dari pengontrol modem saat menerima. -
modem.controller.tx Penarikan arus rata-rata (mA) dari pengontrol modem saat melakukan transmisi pada tingkat daya RF yang berbeda. Ini adalah entri multi-nilai dengan satu nilai per tingkat daya transmisi. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
modem.controller.voltase Tegangan operasi rata-rata (mV) dari pengontrol modem. -
wifi.controller.idle Penarikan arus rata-rata (mA) pengontrol Wi-Fi saat idle. - Nilai-nilai ini tidak diperkirakan, namun diambil dari lembar data pengontrol. Jika ada beberapa negara bagian yang menerima atau mengirimkan, rata-rata negara bagian tersebut diambil.
wifi.controller.rx Penarikan arus rata-rata (mA) pengontrol Wi-Fi saat menerima. -
wifi.controller.tx Penarikan arus rata-rata (mA) pengontrol Wi-Fi saat transmisi. -
wifi.controller.voltase Tegangan operasi rata-rata (mV) pengontrol Wi-Fi. -
cpu.kecepatan Ini adalah entri multi-nilai yang mencantumkan setiap kemungkinan kecepatan CPU dalam KHz. 125000KHz, 250000KHz, 500000KHz, 1000000KHz, 1500000KHz Jumlah dan urutan entri harus sesuai dengan entri mA di cpu.active.
cpu.idle Total daya yang diambil oleh sistem saat CPU (dan SoC) berada dalam status penangguhan sistem. 3 mA -
cpu.awake Daya tambahan yang digunakan ketika CPU berada dalam keadaan penjadwalan menganggur (kernel idle loop); sistem tidak dalam status penangguhan sistem. 50mA Platform Anda mungkin memiliki lebih dari satu status idle yang digunakan dengan tingkat konsumsi daya berbeda; pilih status idle yang representatif untuk periode idle penjadwal yang lebih lama (beberapa milidetik). Periksa grafik daya pada peralatan pengukuran Anda dan pilih sampel dengan konsumsi CPU paling rendah, buang sampel yang lebih tinggi saat CPU keluar dari kondisi idle.
cpu.aktif Daya tambahan yang digunakan oleh CPU saat berjalan pada kecepatan berbeda. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA Nilai mewakili daya yang digunakan oleh rel CPU saat berjalan pada kecepatan berbeda. Atur kecepatan maksimal di kernel ke masing-masing kecepatan yang diizinkan dan pasok CPU pada kecepatan tersebut. Jumlah dan urutan entri sesuai dengan nomor dan urutan entri di cpu.speeds.
cpu.cluster.core Jumlah inti yang dimiliki setiap kluster CPU. 4, 2 Diperlukan hanya untuk perangkat dengan arsitektur CPU heterogen . Jumlah entri dan urutan harus sesuai dengan jumlah entri cluster untuk cpu.active dan cpu.speeds. Entri pertama mewakili jumlah inti CPU di cluster0, entri kedua mewakili jumlah inti CPU di cluster1, dan seterusnya.
kapasitas baterai Total kapasitas baterai dalam mAh. 3000mAh -

Pemindaian Energi Rendah (LE) dan Bluetooth

Untuk perangkat yang menjalankan Android 7.0, sistem mengumpulkan data untuk pemindaian Energi Rendah (LE) dan lalu lintas jaringan Bluetooth (seperti RFCOMM dan L2CAP) dan mengaitkan aktivitas ini dengan aplikasi yang memulai. Pemindaian Bluetooth dikaitkan dengan aplikasi yang memulai pemindaian, namun pemindaian batch tidak dikaitkan (dan malah dikaitkan dengan aplikasi Bluetooth). Untuk pemindaian aplikasi selama N milidetik, biaya pemindaian adalah N milidetik waktu rx dan N milidetik waktu tx; semua sisa waktu pengontrol ditetapkan ke lalu lintas jaringan atau aplikasi Bluetooth.