Le informazioni sull'utilizzo della batteria derivano dalle statistiche sull'utilizzo della batteria e dai valori del profilo energetico.
Statistiche sull'uso della batteria
Il framework determina automaticamente le statistiche sull'utilizzo della batteria monitorando il tempo trascorso dai componenti del dispositivo in stati diversi. Quando i componenti (chipset Wi-Fi, radio cellulare, Bluetooth, GPS, display, CPU) cambiano stato (OFF/ON, inattivo/piena potenza, luminosità bassa/alta, ecc.), il servizio di controllo riporta al servizio BatteryStats del framework. BatteryStats raccoglie informazioni nel tempo e le archivia per utilizzarle durante i riavvii. Il servizio non tiene traccia direttamente dell'assorbimento di corrente della batteria, ma raccoglie invece informazioni sui tempi che possono essere utilizzate per approssimare il consumo della batteria da parte di diversi componenti.
Il framework raccoglie statistiche utilizzando i seguenti metodi:
- Spingere . I servizi consapevoli delle modifiche dei componenti inviano le modifiche di stato al servizio BatteryStats.
- Tiro . Per componenti come l'utilizzo della CPU da parte delle app, il framework estrae automaticamente i dati nei punti di transizione (come l'avvio o l'interruzione di un'attività) per acquisire uno snapshot.
Il consumo di risorse è associato all'applicazione che utilizza la risorsa. Quando più applicazioni utilizzano simultaneamente una risorsa (come i wakelock che impediscono la sospensione del sistema), il framework distribuisce il consumo tra tali applicazioni, anche se non necessariamente equamente.
Per evitare di perdere le statistiche di utilizzo per un evento di spegnimento, che potrebbe indicare problemi di consumo energetico della batteria (ovvero lo spegnimento si verifica perché la batteria ha raggiunto la capacità rimanente pari a zero), il framework fa lampeggiare le statistiche ogni 30 minuti circa.
Le statistiche sull'utilizzo della batteria sono gestite interamente dal framework e non richiedono modifiche OEM.
Valori del profilo di potenza
Attenzione: i produttori dei dispositivi devono fornire un profilo di potenza del componente che definisca il valore del consumo di corrente per il componente e il consumo approssimativo della batteria causato dal componente nel tempo. Questo profilo è definito in platform/frameworks/base/core/res/res/xml/power_profile.xml . Per indicazioni su queste impostazioni, vedere Valori di potenza .
All'interno di un profilo di potenza, il consumo energetico è specificato in milliampere (mA) di assorbimento di corrente a una tensione nominale e può essere un valore frazionario specificato in microampere (uA). Il valore deve essere rappresentato dai mA consumati dalla batteria e non da un valore applicabile a una barra di alimentazione che non corrisponde alla corrente consumata dalla batteria.
Ad esempio, un profilo di potenza del display specifica i mA di corrente necessari per mantenere il display acceso alla luminosità minima e alla luminosità massima. Per determinare il costo energetico (ovvero la batteria scaricata dal componente del display) per mantenere il display acceso, il sistema tiene traccia del tempo trascorso a ciascun livello di luminosità, quindi moltiplica tali intervalli di tempo per un costo di luminosità del display interpolato.
Il framework inoltre moltiplica il tempo della CPU per ciascuna applicazione per i mA richiesti per far funzionare la CPU a una velocità specifica. Questo calcolo stabilisce una classifica comparativa della quantità di batteria consumata da un'applicazione eseguendo il codice della CPU (il tempo trascorso dall'app in primo piano e il tempo totale inclusa l'attività in background vengono riportati separatamente).