Como o Android mede a energia usada por cada componente de hardware? Como o Android mede a energia usada por cada processo individual?
Como o Android mede a energia usada por cada componente de hardware? Como o Android mede a energia usada por cada processo individual?
Respostas:
O Android rastreia eventos que afetam o uso da bateria e armazena essas informações no arquivo batterystats.bin. Alguns exemplos:
O Android calcula quanta energia cada aplicativo ou componente (por exemplo, tela) usa com base nas informações de configuração incluídas no dispositivo pelo fabricante.
Nem tudo é medido para que as estatísticas às vezes sejam enganosas, mas fica melhor a cada versão da Plataforma Android.
As estatísticas da bateria podem ser despejadas do dispositivo usando:
adb shell dumpsys batterystats
Aqui está um fragmento interessante de um post de Diane Hackborn com mais detalhes sobre o consumo de energia dos bloqueios de ativação:
Há duas maneiras de calcular a energia dos bloqueios de ativação.
Em alguns chipsets, basta pressionar uma trava de ativação para impedir que a CPU entre em sono profundo. No uso da bateria relatado, esse uso extra de energia será distribuído por todos os aplicativos que possuem bloqueios de ativação.
Mesmo que o bloqueio de ativação em si não cause uso de energia, manter um bloqueio de ativação em um aplicativo pode permitir que outros aplicativos sejam executados e a CPU quando não seriam de outra forma. (Por exemplo, algum aplicativo pode ter um loop {sleep (1); faça algo;} que não seria executado se nenhum bloqueio de ativação for mantido.) Para resolver isso, metade do uso de aplicativos da CPU é distribuído para ser responsabilizado. os que seguram fechaduras.