In che modo Android misura l'energia utilizzata dai singoli componenti hardware? In che modo Android misura l'energia utilizzata da ogni singolo processo?
In che modo Android misura l'energia utilizzata dai singoli componenti hardware? In che modo Android misura l'energia utilizzata da ogni singolo processo?
Risposte:
Android tiene traccia degli eventi che influiscono sull'utilizzo della batteria e memorizza queste informazioni nel file batterystats.bin. Qualche esempio:
Android calcola la potenza che ogni Applicazione o componente (ad esempio schermo) utilizza in base alle informazioni di configurazione incluse nel dispositivo dal produttore.
Non tutto viene misurato, quindi le statistiche possono talvolta essere fuorvianti, ma migliora con ogni versione della piattaforma Android.
Le statistiche della batteria possono essere scaricate dal dispositivo usando:
adb shell dumpsys batterystats
Ecco un frammento interessante di un post di Diane Hackborn con maggiori dettagli sul consumo energetico delle scia:
Esistono due modi in cui viene calcolata l'alimentazione dai blocchi di riattivazione.
Su alcuni chipset, è sufficiente tenere premuto un blocco di scia per evitare che la CPU vada in modalità di sospensione completa. Nell'utilizzo della batteria segnalato, questo consumo di energia extra verrà distribuito su tutte le app che dispongono di blocchi di riattivazione.
Anche se il blocco della sveglia stesso non causa consumo di energia, tenere un blocco della sveglia in un'app può consentire l'esecuzione di altre applicazioni e CPU quando non altrimenti. (Ad esempio, alcune app potrebbero avere un ciclo {sleep (1); fare qualcosa;} che non verrebbe eseguito se non si tengono blocchi di riattivazione.) Per risolvere questo problema, metà dell'utilizzo della CPU delle applicazioni viene distribuito per essere biasimato quelli che tengono i blocchi di scia.