Profili di alimentazione per Android

Le informazioni sull'utilizzo della batteria derivano dalle statistiche sull'utilizzo della batteria e dai valori del profilo di alimentazione.

Statistiche sull'utilizzo 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/a piena potenza, luminosità bassa/alta e così via), il servizio di controllo invia un report al servizio BatteryStats del framework. BatteryStats raccoglie informazioni nel tempo e le memorizza per l'utilizzo nei riavvii. Il servizio non monitora direttamente il consumo di corrente della batteria, ma raccoglie informazioni sulla tempistica che possono essere utilizzate per stimare il consumo della batteria da parte di diversi componenti.

Il framework raccoglie le statistiche utilizzando i seguenti metodi:

  • Spinta. I servizi che rilevano le modifiche ai componenti inviano le modifiche di stato al servizio BatteryStats.
  • Pull. Per i componenti come l'utilizzo della CPU da parte delle app, il framework estrae automaticamente i dati nei punti di transizione (ad esempio l'inizio 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 contemporaneamente una risorsa (ad esempio wakelock che impediscono la sospensione del sistema), il framework distribuisce il consumo tra queste applicazioni, anche se non necessariamente in modo equo.

Per evitare di perdere le statistiche di utilizzo per un evento di spegnimento, che potrebbe indicare problemi di consumo di energia della batteria (ad es. lo spegnimento si verifica perché la batteria ha raggiunto una capacità residua pari a zero), il framework aggiorna le statistiche circa ogni 30 minuti.

Le statistiche sull'utilizzo della batteria sono gestite interamente dal framework e non richiedono modifiche OEM.

Valori del profilo di alimentazione

Attenzione:i produttori di dispositivi devono fornire un profilo di alimentazione dei componenti che definisca il valore di 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, vedi Valori di potenza.

All'interno di un profilo di alimentazione, il consumo energetico è specificato in milliampere (mA) di corrente assorbita a una tensione nominale e può essere un valore frazionario specificato in microampere (uA). Il valore deve essere i mA consumati dalla batteria e non un valore applicabile a una guida di alimentazione che non corrisponde alla corrente consumata dalla batteria.

Ad esempio, un profilo di alimentazione del display specifica i mA di corrente necessari per mantenere il display acceso con luminosità minima e massima. Per determinare il costo energetico (ovvero la batteria scaricata dal componente del display) del mantenimento del display acceso, il framework tiene traccia del tempo trascorso a ogni livello di luminosità, quindi moltiplica questi intervalli di tempo per un costo di luminosità del display interpolato.

Il framework moltiplica anche il tempo della CPU per ogni applicazione per gli mA necessari per eseguire 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 come app in primo piano e il tempo totale, inclusa l'attività in background, vengono riportati separatamente).