Mide la energía del dispositivo

Puedes determinar el consumo de energía de los dispositivos Android que incluyan un indicador de combustible de batería. como un Summit SMB347 o Maxim MAX17050 (disponible en muchos dispositivos Nexus). Usa la versión integrada del sistema cuando un equipo de medición externo no está disponible o es inconveniente para conectarse a un dispositivo (como en el uso de dispositivos móviles).

Las mediciones pueden incluir corriente instantánea, carga restante y capacidad de la batería al inicio de la prueba. y mucho más, según las propiedades admitidas del dispositivo (consulta a continuación). Lo mejor medir la potencia del dispositivo durante pruebas A/B de larga duración que utilizan el mismo dispositivo con el mismo medidor de combustible y la misma resistencia de detección de corriente. Asegúrate de que la carga inicial de la batería es la misma para cada dispositivo, para evitar distintos comportamientos del indicador de combustible en distintos puntos de la curva de descarga de la batería.

Incluso con entornos de prueba idénticos, no se garantiza que las mediciones sean de valores absolutos exactitud. Sin embargo, la mayoría de las imprecisiones específicas del medidor de combustible y la resistencia del sensor son coherentes. entre ejecuciones de prueba, por lo que las comparaciones entre dispositivos idénticos son útiles. Recomendamos ejecutar varias pruebas en distintas configuraciones para identificar diferencias significativas y la potencia relativa el consumo entre parámetros de configuración.

Leer consumo de energía

Para leer los datos de consumo de energía, inserta llamadas a la API en el código de prueba.

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");

Propiedades disponibles

Android admite las siguientes propiedades del indicador de combustible de la batería:

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

La mayoría de las propiedades se leen desde los atributos del subsistema de suministro de energía del kernel con nombres similares. Sin embargo, las propiedades exactas, la resolución de los valores de las propiedades y la frecuencia de actualización disponibles para un dispositivo específico dependen de

  • Hardware del indicador de combustible, como el Summit SMB347 o Maxim MAX17050
  • Conexión del medidor de combustible al sistema, como el valor de las resistencias de detección de corriente externas.
  • Configuración de software del chip del medidor de combustible, como los valores elegidos para el cálculo actual promedio intervalos en el controlador del kernel.

Para conocer los detalles, consulta las propiedades disponibles para los dispositivos Nexus.

Medidor de combustible máximo

Al determinar el estado de carga de la batería durante un período prolongado, el indicador de combustible Maxim (MAX17050, BC15) corrige las mediciones de desplazamiento del contador de Coulomb. Para las mediciones realizadas durante un un período breve (como las pruebas de medición del consumo de energía), el indicador de combustible no hará correcciones, lo que hace que la compensación sea la principal fuente de error cuando las mediciones actuales son demasiado pequeñas (aunque ninguna cantidad de tiempo puede eliminar por completo el error de compensación).

Para un diseño típico de resistencia de detección de 10 mOhm, la corriente de desplazamiento debería ser mejor que 1.5 mA, lo que significa que cualquier medición es +/-1.5 mA (el diseño de PCBoard también puede afectar esto variación). Por ejemplo, al medir una corriente grande (200 mA), puedes esperar que lo siguiente:

  • 2 mA (error de ganancia del 1% de 200 mA debido a un error de ganancia del indicador de combustible)
  • +2 mA (error de ganancia del 1% de 200 mA debido al error de detección de resistencia)
  • +1.5 mA (error de compensación actual del sensor de combustible)

El error total es 5.5 mA (2.75%). Compara esto con una corriente media (50 mA), en la que la los mismos porcentajes de error dan un error total del 7% o a una corriente pequeña (15 mA), donde +/-1.5 mA da un error total del 10%.

Para obtener mejores resultados, te recomendamos medir más de 20 mA. Los errores en la medición de ganancias sistemática y repetible, lo que te permite probar un dispositivo en múltiples modos y obtener relativas de salida (excepto para el desplazamiento de 1.5 mA).

Para las mediciones relativas de +/-100 uA, el tiempo de medición requerido depende de lo siguiente:

  • Ruido de muestreo de ADC. El MAX17050 con su configuración de fábrica normal produce +/-1.5 mA de variación de muestra a muestra debido al ruido, cada muestra se entrega a 175.8 ms. Puedes esperar una temperatura aproximada de +/-100 uA en un período de prueba de 1 minuto y un ruido limpio de 3 sigma menos. inferior a 100 uA (o un ruido de 1-sigma a 33 uA) durante un período de prueba de 6 minutos.
  • Asignación de alias de muestra debido a la variación de carga. La variación exagera los errores, así que para las muestras con variación inherente a la carga, considera usar un período de prueba más largo.

Dispositivos Nexus compatibles

Nexus 5
Modelo Nexus 5
Medidor de combustible Medidor de combustible Maxim MAX17048 (ModelGauge, sin contador de Coulomb)
Propiedades BATTERY_PROPERTY_CAPACITY
Mediciones El medidor de combustible no admite ninguna medición que no sea el estado de carga de la batería en una resolución de %/256 (1/256 de un porcentaje de capacidad completa de la batería).
Nexus 6
Modelo Nexus 6
Medidor de combustible medidor de combustible Maxim MAX17050 (un contador de Coulomb con ajustes de Maxim ModelGauge) y un Resistencia de detección de corrientes de 10 mAh.
Propiedades BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Mediciones Resolución de CURRENT_NOW de 156.25 uA; período de actualización de 175.8 ms.
Resolución de CURRENT_AVERAGE de 156.25 uA, período de actualización configurable De 0.7 s a 6.4 h; el valor predeterminado es de 11.25 s.
La resolución de CHARGE_COUNTER (actualidad acumulada, precisión no extendida) es 500 uAh (lectura de contador de cóulomb sin procesar, no ajustada por el indicador de combustible para el desplazamiento del contador de cóulomb) además de las entradas del algoritmo ModelGauge m3, incluida la compensación vacía).
Resolución de CHARGE_COUNTER_EXT (precisión extendida en el kernel) de 8 nAh.
ENERGY_COUNTER es CHARGE_COUNTER_EXT a un voltaje nominal de 3.7 V.
Nexus 9
Modelo Nexus 9
Medidor de combustible medidor de combustible Maxim MAX17050 (un contador de Coulomb con ajustes de Maxim ModelGauge) y un Resistencia de detección de corrientes de 10 mAh.
Propiedades BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Mediciones Resolución de CURRENT_NOW de 156.25 uA; período de actualización de 175.8 ms.
Resolución de CURRENT_AVERAGE de 156.25 uA, período de actualización configurable De 0.7 s a 6.4 h; 11.25 s de forma predeterminada
La resolución de CHARGE_COUNTER (actualidad acumulada, precisión no extendida) es 500 uAh.
Resolución de CHARGE_COUNTER_EXT (precisión extendida en el kernel) de 8 nAh.
ENERGY_COUNTER es CHARGE_COUNTER_EXT a un voltaje nominal de 3.7 V.
Período de actualización actual acumulado: 175.8 ms.
ADC muestreada a una cuantización de 175 ms con un período de muestra de 4 ms. Puede ajustar el ciclo de trabajo.
Nexus 10
Modelo Nexus 10
Medidor de combustible Medidor de combustible Dallas Semiconductor DS2784 (un contador de Coulomb), con sentido de corriente de 10 mohm de resistencia.
Propiedades BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Mediciones La resolución de la medición actual (instantánea y promedio) es de 156.3 uA.
El período de actualización actual instantáneo de CURRENT_NOW es de 3.5 segundos.
El período de actualización de CURRENT_AVERAGE es de 28 segundos (no configurable).
La resolución de CHARGE_COUNTER (actualidad acumulada, precisión no extendida) es 625 uAh.
La resolución de CHARGE_COUNTER_EXT (precisión extendida en el kernel) es de 144 nAh.
ENERGY_COUNTER es CHARGE_COUNTER_EXT a un voltaje nominal de 3.7 V.
El período de actualización para todas las partes es de 3.5 segundos.