Informasi penggunaan baterai berasal dari statistik penggunaan baterai dan nilai profil daya.
Statistik penggunaan baterai
Framework ini secara otomatis menentukan statistik penggunaan baterai dengan melacak berapa lama komponen perangkat berada dalam berbagai status. Saat komponen (chipset Wi-Fi, radio seluler, Bluetooth, GPS, layar, CPU) berubah status (NONAKTIF/AKTIF, tidak ada aktivitas/daya penuh, kecerahan rendah/tinggi, dll.), layanan yang mengontrol melaporkan ke layanan BatteryStats framework. BatteryStats mengumpulkan informasi dari waktu ke waktu dan menyimpannya untuk digunakan di seluruh proses reboot. Layanan ini tidak melacak penarikan arus baterai secara langsung, tetapi mengumpulkan informasi pengaturan waktu yang dapat digunakan untuk memperkirakan konsumsi baterai oleh berbagai komponen.
Framework mengumpulkan statistik menggunakan metode berikut:
- Push. Layanan yang mengetahui perubahan komponen akan mengirimkan perubahan status ke layanan BatteryStats.
- Tarik. Untuk komponen seperti penggunaan CPU oleh aplikasi, framework secara otomatis menarik data pada titik transisi (seperti memulai atau menghentikan aktivitas) untuk mengambil snapshot.
Penggunaan resource dikaitkan dengan aplikasi yang menggunakan resource. Saat beberapa aplikasi secara bersamaan menggunakan resource (seperti wakelock yang mencegah sistem ditangguhkan), framework akan menyebarkan konsumsi di seluruh aplikasi tersebut, meskipun tidak selalu sama.
Untuk menghindari hilangnya statistik penggunaan untuk peristiwa penonaktifan, yang dapat menunjukkan masalah konsumsi daya baterai (yaitu, penonaktifan terjadi karena baterai mencapai kapasitas sisa nol), framework mem-flash statistik kira-kira setiap 30 menit.
Statistik penggunaan baterai ditangani sepenuhnya oleh framework dan tidak memerlukan modifikasi OEM.
Nilai profil daya
Perhatian: Produsen perangkat harus menyediakan profil daya komponen yang menentukan nilai konsumsi arus untuk komponen dan perkiraan pengurasan baterai yang disebabkan oleh komponen dari waktu ke waktu. Profil ini ditentukan di platform/frameworks/base/core/res/res/xml/power_profile.xml. Untuk mendapatkan panduan tentang setelan ini, lihat Nilai Daya.
Dalam profil daya, konsumsi daya ditentukan dalam miliampere (mA) penarikan arus pada tegangan nominal dan dapat berupa nilai pecahan yang ditentukan dalam mikroampere (uA). Nilainya harus berupa mA yang dikonsumsi pada baterai dan bukan nilai yang berlaku untuk rel daya yang tidak sesuai dengan arus yang dikonsumsi dari baterai.
Misalnya, profil daya layar menentukan mA arus yang diperlukan agar layar tetap aktif pada kecerahan minimum dan pada kecerahan maksimum. Untuk menentukan biaya daya (yaitu, baterai yang terkuras oleh komponen layar) agar layar tetap aktif, framework melacak waktu yang dihabiskan di setiap tingkat kecerahan, lalu mengalikan interval waktu tersebut dengan biaya kecerahan layar yang diinterpolasi.
Framework ini juga mengalikan waktu CPU untuk setiap aplikasi dengan mA yang diperlukan untuk menjalankan CPU pada kecepatan tertentu. Penghitungan ini menetapkan peringkat komparatif tentang seberapa banyak baterai yang digunakan aplikasi dengan mengeksekusi kode CPU (waktu sebagai aplikasi latar depan dan total waktu termasuk aktivitas latar belakang dilaporkan secara terpisah).