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 la durata della permanenza dei componenti del dispositivo in diversi stati. Quando i componenti (chipset Wi-Fi, radio cellulare, Bluetooth, GPS, display, CPU) cambiano stato (OFF/ON, idle/piena potenza, bassa/alta luminosità, ecc.), il servizio di controllo riporta al servizio Framework BatteryStats. BatteryStats raccoglie le informazioni nel tempo e le archivia per l'uso 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 le statistiche utilizzando i seguenti metodi:
- Spingi . I servizi a conoscenza delle modifiche ai componenti inviano le modifiche allo stato al servizio BatteryStats.
- Tira . 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'arresto 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 (come wakelock che impediscono la sospensione del sistema), il framework distribuisce il consumo tra tali applicazioni, anche se non necessariamente in modo uguale.
Per evitare di perdere le statistiche di utilizzo per un evento di spegnimento, che potrebbe indicare problemi di consumo energetico della batteria (ad es. lo spegnimento si verifica perché la batteria ha raggiunto la capacità residua pari a zero), il framework esegue il flash delle 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 di dispositivi devono fornire un profilo di alimentazione 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 di energia è 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 il mA consumato dalla batteria e non 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 acceso il display, il framework tiene traccia del tempo trascorso a ciascun livello di luminosità, quindi moltiplica quegli intervalli di tempo per un costo di luminosità del display interpolato.
Il framework moltiplica anche il tempo della CPU per ciascuna applicazione per i mA necessari per far funzionare la CPU a una velocità specifica. Questo calcolo stabilisce una classifica comparativa di quanta batteria consuma un'applicazione eseguendo il codice della CPU (il tempo dell'app in primo piano e il tempo totale, inclusa l'attività in background, sono riportati separatamente).
,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 la durata della permanenza dei componenti del dispositivo in diversi stati. Quando i componenti (chipset Wi-Fi, radio cellulare, Bluetooth, GPS, display, CPU) cambiano stato (OFF/ON, idle/piena potenza, bassa/alta luminosità, ecc.), il servizio di controllo riporta al servizio Framework BatteryStats. BatteryStats raccoglie le informazioni nel tempo e le archivia per l'uso 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 le statistiche utilizzando i seguenti metodi:
- Spingi . I servizi a conoscenza delle modifiche ai componenti inviano le modifiche allo stato al servizio BatteryStats.
- Tira . 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'arresto 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 (come wakelock che impediscono la sospensione del sistema), il framework distribuisce il consumo tra tali applicazioni, anche se non necessariamente in modo uguale.
Per evitare di perdere le statistiche di utilizzo per un evento di spegnimento, che potrebbe indicare problemi di consumo energetico della batteria (ad es. lo spegnimento si verifica perché la batteria ha raggiunto la capacità residua pari a zero), il framework esegue il flash delle 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 di dispositivi devono fornire un profilo di alimentazione 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 di energia è 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 il mA consumato dalla batteria e non 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 (ossia la batteria scaricata dal componente del display) per mantenere acceso il display, il framework tiene traccia del tempo trascorso a ciascun livello di luminosità, quindi moltiplica quegli intervalli di tempo per un costo di luminosità del display interpolato.
Il framework moltiplica anche il tempo della CPU per ciascuna applicazione per i mA necessari per far funzionare la CPU a una velocità specifica. Questo calcolo stabilisce una classifica comparativa di quanta batteria consuma un'applicazione eseguendo il codice della CPU (il tempo dell'app in primo piano e il tempo totale, inclusa l'attività in background, sono riportati separatamente).