Ukur daya perangkat

Anda dapat menentukan konsumsi daya perangkat untuk perangkat Android yang mencakup pengukur bahan bakar baterai seperti Summit SMB347 atau Maxim MAX17050 (tersedia di banyak perangkat Nexus). Menggunakan dalam sistem mengukur ketika peralatan pengukuran eksternal tidak tersedia atau tidak nyaman untuk terhubung ke perangkat (seperti dalam penggunaan seluler).

Pengukuran dapat mencakup arus instan, sisa daya, kapasitas baterai saat awal pengujian dan endpoint, dan lainnya bergantung pada properti perangkat yang didukung (lihat di bawah). Untuk yang terbaik hasil, melakukan pengukuran daya perangkat selama pengujian A/B yang berjalan lama yang menggunakan perangkat yang sama jenis bahan bakar dengan pengukur bahan bakar dan resistor indra saat ini yang sama. Memastikan awal pengisian daya baterai sama untuk setiap perangkat untuk menghindari perbedaan perilaku pengukur bahan bakar pada titik yang berbeda pengosongan daya baterai.

Bahkan dengan lingkungan pengujian yang identik, pengukuran tidak dijamin memiliki tingkat tingkat akurasi. Namun, sebagian besar ketidakakuratan khusus pengukur bahan bakar dan di antara pengujian, sangat berguna untuk membandingkan di antara perangkat yang identik. Sebaiknya jalankan beberapa pengujian dalam berbagai konfigurasi untuk mengidentifikasi perbedaan yang signifikan dan daya relatif konsumsi di antara konfigurasi.

Membaca konsumsi daya

Untuk membaca data konsumsi daya, sisipkan panggilan ke API dalam kode pengujian Anda.

import android.os.BatteryManager;
import android.content.Context;
BatteryManager mBatteryManager =
(BatteryManager)Context.getSystemService(Context.BATTERY_SERVICE);
Long energy =
mBatteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);
Slog.i(TAG, "Remaining energy = " + energy + "nWh");

Properti yang tersedia

Android mendukung properti pengukur bahan bakar baterai berikut:

BATTERY_PROPERTY_CHARGE_COUNTER   Remaining battery capacity in microampere-hours
BATTERY_PROPERTY_CURRENT_NOW      Instantaneous battery current in microamperes
BATTERY_PROPERTY_CURRENT_AVERAGE  Average battery current in microamperes
BATTERY_PROPERTY_CAPACITY         Remaining battery capacity as an integer percentage
BATTERY_PROPERTY_ENERGY_COUNTER   Remaining energy in nanowatt-hours

Sebagian besar properti dibaca dari atribut subsistem {i> kernel power_supply<i} dengan nama yang serupa. Namun, properti yang tepat, resolusi nilai properti, dan frekuensi pembaruan yang tersedia untuk perangkat tertentu bergantung pada:

  • Hardware pengukur bahan bakar, seperti Summit SMB347 atau Maxim MAX17050.
  • Koneksi pengukur ke sistem, seperti nilai resistor indra eksternal saat ini.
  • Konfigurasi software chip pengukur bahan bakar, seperti nilai yang dipilih untuk komputasi rata-rata saat ini interval di {i>driver<i} {i>kernel<i}.

Untuk mengetahui detailnya, lihat properti yang tersedia untuk perangkat Nexus.

Pengukur bahan bakar Maxim

Saat menentukan status pengisian daya baterai dalam jangka waktu lama, pengukur bahan bakar Maxim (MAX17050, BC15) mengoreksi pengukuran offset penghitung coulomb. Untuk pengukuran yang dilakukan selama dalam waktu singkat (seperti pengujian pengukuran konsumsi daya), pengukur bahan bakar tidak membuat koreksi, menjadikan offset sebagai sumber kesalahan utama ketika pengukuran saat ini terlalu kecil (meskipun tidak ada waktu yang dapat menghilangkan error offset sepenuhnya).

Untuk desain resistor sensor 10 mOhm biasa, arus offset harus lebih baik daripada 1,5 mA, artinya setiap pengukuran +/-1,5 mA (tata letak PCBoard juga dapat memengaruhi ini {i>variety<i}). Misalnya, ketika mengukur arus besar (200 mA), Anda dapat memperkirakan berikut ini:

  • 2 mA (1% error pada 200 mA karena error pada pengukuran bahan bakar)
  • +2 mA (1% error penguatan 200 mA karena error sensor mendeteksi)
  • +1,5 mA (kesalahan offset indera saat ini dari pengukur bahan bakar)

Total error adalah 5,5 mA (2,75%). Bandingkan ini dengan arus sedang (50 mA) di mana persentase kesalahan yang sama memberikan total kesalahan 7% atau pada arus kecil (15 mA) di mana +/-1,5 mA menghasilkan total error 10%.

Untuk hasil terbaik, sebaiknya ukur lebih besar dari 20 mA. Error pengukuran pertambahan sistematis dan dapat diulang, memungkinkan Anda untuk menguji perangkat dalam beberapa mode dan pengukuran (dengan pengecualian untuk offset 1,5 mA).

Untuk pengukuran relatif +/-100 uA, waktu pengukuran yang diperlukan bergantung pada:

  • Derau pengambilan sampel ADC. MAX17050 dengan konfigurasi pabrik normalnya menghasilkan +/-1,5 Variasi sampel-ke-sampel mA karena derau, dengan setiap sampel dikirim pada 175,8 md. Anda dapat mengharapkan +/-100 uA kasar untuk jendela pengujian 1 menit dan derau 3 sigma yang bersih dari 100 uA (atau noise 1-sigma pada 33 uA) selama jendela pengujian 6 menit.
  • Contoh pembuatan alias karena variasi beban. Variasi melebih-lebihkan kesalahan, jadi untuk sampel dengan variasi yang melekat dalam pemuatan, pertimbangkan untuk menggunakan periode pengujian yang lebih panjang.

Perangkat Nexus yang didukung

Nexus 5
Model Nexus 5
Pengukur bahan bakar Pengukur bahan bakar Maxim MAX17048 (ModelGauge, tanpa penghitung coulomb)
Properti BATTERY_PROPERTY_CAPACITY
Pengukuran Pengukur bahan bakar tidak mendukung pengukuran apa pun selain status pengisian daya baterai resolusi %/256 (1/256 dari persen kapasitas baterai penuh).
Nexus 6
Model Nexus 6
Pengukur bahan bakar Pengukur bahan bakar Maxim MAX17050 (penghitung coulomb dengan penyesuaian Maxim ModelGauge), dan Resistor indera 10 mohm saat ini.
Properti BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Pengukuran Resolusi CURRENT_NOW 156,25 uA, periode update adalah 175,8 md.
Resolusi CURRENT_AVERAGE 156.25 uA, periode update dapat dikonfigurasi 0,7 dtk - 6,4 jam, default 11,25 dtk.
Resolusi CHARGE_COUNTER (akumulasi saat ini, presisi tidak diperluas) adalah 500 uAh (pembaca penghitung coulomb mentah, tidak disesuaikan dengan pengukur bahan bakar untuk offset penghitung coulomb, ditambah input dari algoritma ModelGauge m3 termasuk kompensasi kosong).
Resolusi CHARGE_COUNTER_EXT (presisi tambahan dalam kernel) 8 nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada tegangan nominal 3,7 V.
Nexus 9
Model Nexus 9
Pengukur bahan bakar Pengukur bahan bakar Maxim MAX17050 (penghitung coulomb dengan penyesuaian Maxim ModelGauge), dan Resistor indera 10 mohm saat ini.
Properti BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Pengukuran Resolusi CURRENT_NOW 156,25 uA, periode update adalah 175,8 md.
Resolusi CURRENT_AVERAGE 156.25 uA, periode update dapat dikonfigurasi 0,7 dtk - 6,4 jam, default 11,25 dtk.
Resolusi CHARGE_COUNTER (akumulasi saat ini, presisi tanpa tambahan) adalah 500 uAh.
Resolusi CHARGE_COUNTER_EXT (presisi tambahan dalam kernel) 8 nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada tegangan nominal 3,7 V.
Akumulasi periode update saat ini 175,8 md.
ADC diambil sampelnya pada kuantisasi 175 md dengan periode sampel 4 md. Dapat menyesuaikan siklus tugas.
Nexus 10
Model Nexus 10
Pengukur bahan bakar Alat pengukur bahan bakar {i>Dalls Semiconductor DS2784<i} (penghitung coulomb), dengan indra saat ini 10 mohm resistor.
Properti BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Pengukuran Resolusi pengukuran saat ini (instan dan rata-rata) adalah 156,3 uA.
Periode update instan CURRENT_NOW saat ini adalah 3,5 detik.
Periode update CURRENT_AVERAGE adalah 28 detik (tidak dapat dikonfigurasi).
Resolusi CHARGE_COUNTER (akumulasi saat ini, presisi tidak diperluas) adalah 625 uAh.
Resolusi CHARGE_COUNTER_EXT (presisi tambahan dalam kernel) adalah 144 nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada tegangan nominal 3,7 V.
Periode update untuk semua adalah 3,5 detik.