Você pode determinar o consumo de energia do dispositivo Android que inclui um medidor de carga da bateria, como Summit SMB347 ou Maxim MAX17050 (disponível em muitos dispositivos Nexus). Use o medidor no sistema quando o equipamento de medição externo não estiver disponível ou for inconveniente para conectar a um dispositivo (como no uso móvel).
As medições podem incluir corrente instantânea, carga restante, capacidade da bateria no início e no final do teste e muito mais, dependendo das propriedades suportadas do dispositivo (veja abaixo). Para obter melhores resultados, realize medições de potência do dispositivo durante testes A/B de longa duração que usam o mesmo tipo de dispositivo com o mesmo medidor de combustível e o mesmo resistor de detecção de corrente. Certifique-se de que a carga inicial da bateria seja a mesma para cada dispositivo para evitar diferentes comportamentos do medidor de combustível em diferentes pontos da curva de descarga da bateria.
Mesmo com ambientes de teste idênticos, não é garantido que as medições tenham alta precisão absoluta. No entanto, a maioria das imprecisões específicas do medidor de combustível e do resistor de detecção são consistentes entre os testes, tornando úteis comparações entre dispositivos idênticos. Recomendamos a execução de vários testes em configurações diferentes para identificar diferenças significativas e consumo relativo de energia entre configurações.
Leia o consumo de energia
Para ler dados de consumo de energia, insira chamadas à API no seu código de teste.
import android.os.BatteryManager; import android.content.Context; BatteryManager mBatteryManager = (BatteryManager)Context.getSystemService(Context.BATTERY_SERVICE); Long energy = mBatteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER); Slog.i(TAG, "Remaining energy = " + energy + "nWh");
Propriedades disponíveis
O Android oferece suporte às seguintes propriedades do medidor de carga da bateria:
BATTERY_PROPERTY_CHARGE_COUNTER Remaining battery capacity in microampere-hours BATTERY_PROPERTY_CURRENT_NOW Instantaneous battery current in microamperes BATTERY_PROPERTY_CURRENT_AVERAGE Average battery current in microamperes BATTERY_PROPERTY_CAPACITY Remaining battery capacity as an integer percentage BATTERY_PROPERTY_ENERGY_COUNTER Remaining energy in nanowatt-hours
A maioria das propriedades são lidas a partir de atributos do subsistema power_supply do kernel com nomes semelhantes. No entanto, as propriedades exatas, a resolução dos valores das propriedades e a frequência de atualização disponíveis para um dispositivo específico dependem de:
- Hardware de medidor de combustível, como Summit SMB347 ou Maxim MAX17050.
- Conexão do medidor de combustível ao sistema, como o valor dos resistores externos de detecção de corrente.
- Configuração do software do chip do medidor de combustível, como valores escolhidos para intervalos médios de cálculo atuais no driver do kernel.
Para obter detalhes, consulte as propriedades disponíveis para dispositivos Nexus .
Medidor de combustível máximo
Ao determinar o estado de carga da bateria durante um longo período de tempo, o medidor de combustível Maxim (MAX17050, BC15) corrige as medições de deslocamento do contador de Coulomb. Para medições feitas durante um curto período de tempo (como testes de medição de consumo de energia), o medidor de combustível não faz correções, tornando o deslocamento a principal fonte de erro quando as medições de corrente são muito pequenas (embora nenhuma quantidade de tempo possa eliminar o erro de deslocamento completamente).
Para um projeto típico de resistor de detecção de 10 mOhm, a corrente de deslocamento deve ser melhor que 1,5 mA, o que significa que qualquer medição é +/- 1,5 mA (o layout da placa de circuito impresso também pode afetar essa variação). Por exemplo, ao medir uma corrente grande (200 mA), você pode esperar o seguinte:
- 2 mA (erro de ganho de 1% de 200 mA devido ao erro de ganho do medidor de combustível)
- +2 mA (erro de ganho de 1% de 200 mA devido ao erro do resistor de detecção)
- +1,5 mA (erro de compensação de detecção de corrente do medidor de combustível)
O erro total é de 5,5 mA (2,75%). Compare isso com uma corrente média (50 mA), onde as mesmas porcentagens de erro fornecem um erro total de 7% ou com uma corrente pequena (15 mA), onde +/- 1,5 mA fornece um erro total de 10%.
Para melhores resultados, recomendamos medir mais de 20 mA. Os erros de medição de ganho são sistemáticos e repetíveis, permitindo testar um dispositivo em vários modos e obter medições relativas limpas (com exceções para o deslocamento de 1,5 mA).
Para medições relativas de +/-100 uA, o tempo de medição necessário depende de:
- Ruído de amostragem ADC . O MAX17050 com sua configuração normal de fábrica produz variação de +/-1,5 mA amostra a amostra devido ao ruído, com cada amostra entregue a 175,8 ms. Você pode esperar um valor aproximado de +/- 100 uA para uma janela de teste de 1 minuto e um ruído limpo de 3 sigma inferior a 100 uA (ou ruído de 1 sigma a 33 uA) para uma janela de teste de 6 minutos.
- Exemplo de alias devido à variação de carga . A variação exagera os erros, portanto, para amostras com variação inerente ao carregamento, considere usar uma janela de teste mais longa.
Dispositivos Nexus compatíveis
Nexus 5
Modelo | Nexus 5 |
---|---|
Medidor de combustível | Medidor de combustível Maxim MAX17048 (ModelGauge, sem contador coulomb) |
Propriedades | BATTERY_PROPERTY_CAPACITY |
Medidas | O medidor de combustível não suporta quaisquer medições além do estado de carga da bateria com uma resolução de %/256 (1/256 de um percentual da capacidade total da bateria). |
Nexus 6
Modelo | Nexus 6 |
---|---|
Medidor de combustível | Medidor de combustível Maxim MAX17050 (um contador coulomb com ajustes Maxim ModelGauge) e um resistor de detecção de corrente de 10 mohm. |
Propriedades | BATTERY_PROPERTY_CAPACITY BATTERY_PROPERTY_CURRENT_NOW BATTERY_PROPERTY_CURRENT_AVERAGE BATTERY_PROPERTY_CHARGE_COUNTER BATTERY_PROPERTY_ENERGY_COUNTER |
Medidas | Resolução CURRENT_NOW 156,25 uA, período de atualização é 175,8 ms.Resolução CURRENT_AVERAGE 156,25 uA, período de atualização configurável 0,7s - 6,4 h, padrão 11,25 segundos.A resolução CHARGE_COUNTER (corrente acumulada, precisão não estendida) é de 500 uAh (leitura do contador coulomb bruto, não ajustada pelo medidor de combustível para deslocamento do contador coulomb, mais entradas do algoritmo ModelGauge m3 incluindo compensação vazia).CHARGE_COUNTER_EXT (precisão estendida no kernel) resolução 8 nAh.ENERGY_COUNTER é CHARGE_COUNTER_EXT na tensão nominal de 3,7 V. |
Nexus 9
Modelo | Nexus 9 |
---|---|
Medidor de combustível | Medidor de combustível Maxim MAX17050 (um contador coulomb com ajustes Maxim ModelGauge) e um resistor de detecção de corrente de 10 mohm. |
Propriedades | BATTERY_PROPERTY_CAPACITY BATTERY_PROPERTY_CURRENT_NOW BATTERY_PROPERTY_CURRENT_AVERAGE BATTERY_PROPERTY_CHARGE_COUNTER BATTERY_PROPERTY_ENERGY_COUNTER |
Medidas | Resolução CURRENT_NOW 156,25 uA, período de atualização é 175,8 ms.Resolução CURRENT_AVERAGE 156,25 uA, período de atualização configurável 0,7s - 6,4 h, padrão 11,25 segundos.A resolução CHARGE_COUNTER (corrente acumulada, precisão não estendida) é de 500 uAh.CHARGE_COUNTER_EXT (precisão estendida no kernel) resolução 8 nAh.ENERGY_COUNTER é CHARGE_COUNTER_EXT na tensão nominal de 3,7 V.Período de atualização atual acumulado 175,8 ms. ADC amostrado em quantização de 175 nbsp;ms com um período de amostragem de 4 ms. Pode ajustar o ciclo de trabalho. |
Nexus 10
Modelo | Nexus 10 |
---|---|
Medidor de combustível | Medidor de combustível Dallas Semiconductor DS2784 (um contador de coulomb), com um resistor de detecção de corrente de 10 mohm. |
Propriedades | BATTERY_PROPERTY_CAPACITY BATTERY_PROPERTY_CURRENT_NOW BATTERY_PROPERTY_CURRENT_AVERAGE BATTERY_PROPERTY_CHARGE_COUNTER BATTERY_PROPERTY_ENERGY_COUNTER |
Medidas | A resolução da medição atual (instantânea e média) é de 156,3 uA. O período de atualização atual instantânea CURRENT_NOW é de 3,5 segundos.O período de atualização CURRENT_AVERAGE é de 28 segundos (não configurável).A resolução CHARGE_COUNTER (corrente acumulada, precisão não estendida) é de 625 uAh.A resolução CHARGE_COUNTER_EXT (precisão estendida no kernel) é 144 nAh.ENERGY_COUNTER é CHARGE_COUNTER_EXT na tensão nominal de 3,7 V.O período de atualização para todos é de 3,5 segundos. |