As informações de uso da bateria são derivadas de estatísticas de uso da bateria e valores de perfil de energia.
Estatísticas de uso da bateria
A estrutura determina automaticamente as estatísticas de uso da bateria rastreando quanto tempo os componentes do dispositivo passam em diferentes estados. À medida que os componentes (chipset Wi-Fi, rádio celular, Bluetooth, GPS, display, CPU) mudam de estado (DESLIGADO/LIGADO, potência inativa/total, brilho baixo/alto, etc.), o serviço de controle se reporta ao serviço BatteryStats da estrutura. BatteryStats coleta informações ao longo do tempo e as armazena para uso durante reinicializações. O serviço não rastreia diretamente o consumo de corrente da bateria, mas coleta informações de tempo que podem ser usadas para aproximar o consumo da bateria por diferentes componentes.
A estrutura reúne estatísticas usando os seguintes métodos:
- Empurrar . Os serviços cientes das alterações dos componentes enviam alterações de estado para o serviço BatteryStats.
- Puxar . Para componentes como o uso de CPU por aplicativos, a estrutura extrai automaticamente os dados em pontos de transição (como iniciar ou interromper uma atividade) para obter um instantâneo.
O consumo de recursos está associado ao aplicativo que utiliza o recurso. Quando vários aplicativos usam simultaneamente um recurso (como wakelocks que impedem a suspensão do sistema), a estrutura distribui o consumo entre esses aplicativos, embora não necessariamente de forma igual.
Para evitar a perda de estatísticas de uso para um evento de desligamento, que pode indicar problemas de consumo de energia da bateria (ou seja, o desligamento ocorre porque a bateria atingiu zero capacidade restante), a estrutura exibe estatísticas aproximadamente a cada 30 minutos.
As estatísticas de uso da bateria são tratadas inteiramente pela estrutura e não requerem modificações do OEM.
Valores do perfil de potência
Cuidado: Os fabricantes de dispositivos devem fornecer um perfil de energia do componente que defina o valor de consumo atual do componente e o consumo aproximado da bateria causado pelo componente ao longo do tempo. Este perfil é definido em platform/frameworks/base/core/res/res/xml/power_profile.xml . Para obter orientação sobre essas configurações, consulte Valores de potência .
Dentro de um perfil de potência, o consumo de energia é especificado em miliamperes (mA) de consumo de corrente em uma tensão nominal e pode ser um valor fracionário especificado em microamperes (uA). O valor deve ser o mA consumido na bateria e não um valor aplicável a um barramento de alimentação que não corresponda à corrente consumida da bateria.
Por exemplo, um perfil de potência do display especifica o mA de corrente necessária para manter o display ligado com brilho mínimo e brilho máximo. Para determinar o custo de energia (ou seja, a bateria descarregada pelo componente da tela) para manter a tela ligada, a estrutura monitora o tempo gasto em cada nível de brilho e depois multiplica esses intervalos de tempo por um custo de brilho da tela interpolado.
A estrutura também multiplica o tempo de CPU de cada aplicativo pelo mA necessário para executar a CPU em uma velocidade específica. Este cálculo estabelece uma classificação comparativa de quanta bateria um aplicativo consome ao executar o código da CPU (o tempo como o aplicativo em primeiro plano e o tempo total, incluindo a atividade em segundo plano, são relatados separadamente).