Mesurer la puissance de l'appareil

Vous pouvez déterminer la consommation d'énergie des appareils Android dotés d'une jauge de batterie par exemple Summit SMB347 ou Maxim MAX17050 (disponible sur de nombreux appareils Nexus). Utiliser l'intégration au système déterminer quand un équipement de mesure externe n'est pas disponible ou s'il est gênant se connecter à un appareil (lors d'une utilisation mobile, par exemple) ;

Les mesures peuvent inclure le courant instantané, la charge restante et la capacité de la batterie au début du test et la fin, etc. selon les propriétés prises en charge de l'appareil (voir ci-dessous). Pour un meilleur les résultats, mesurer la puissance de l'appareil lors de tests A/B de longue durée utilisant le même appareil avec la même jauge de carburant et la même résistance de détection de courant. Assurez-vous que le niveau de charge de la batterie au démarrage est identique pour chaque appareil, afin d'éviter que la jauge de carburant ne change à différents endroits de la la courbe de décharge de la batterie.

Même dans des environnements de test identiques, il n'est pas garanti que les mesures aient un niveau absolu élevé précision. Cependant, la plupart des imprécisions propres à la jauge de carburant et à la résistance de détection sont constantes. entre les exécutions de test, ce qui facilite les comparaisons entre des appareils identiques. Nous vous recommandons d'exécuter plusieurs tests dans différentes configurations pour identifier les différences importantes et la puissance relative de consommation entre les configurations.

Lire la consommation d'énergie

Pour lire les données de consommation d'énergie, insérez des appels vers l'API dans votre code de test.

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

Propriétés disponibles

Android accepte les propriétés suivantes pour la jauge de carburant:

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 plupart des propriétés sont lues à partir des attributs du sous-système power_supply du noyau. Toutefois, les propriétés exactes, la résolution des valeurs de propriétés et la fréquence de mise à jour disponibles pour un appareil spécifique dépendent des facteurs suivants:

  • Matériel de jauge de carburant, tel que Summit SMB347 ou Maxim MAX17050
  • Connexion entre la jauge de carburant et le système, par exemple la valeur des résistances de détection de courant externe.
  • Configuration logicielle d'une puce de jauge de carburant, par exemple des valeurs choisies pour le calcul de courant moyen dans le pilote du noyau.

Pour en savoir plus, consultez les propriétés disponibles pour les appareils Nexus.

Jauge de carburant maximale

Pour déterminer le niveau de charge de la batterie sur une longue période, la jauge Maximale (MAX17050, BC15) corrige les mesures de décalage du compteur coulomb. Pour les mesures effectuées sur pour une courte période (tests de mesure de la consommation d'énergie, par exemple), la jauge n'est pas corrections, ce qui fait du décalage la principale source d'erreur lorsque les mesures actuelles sont trop faibles (bien qu'aucune durée ne puisse complètement éliminer l'erreur de décalage).

Pour une conception de résistance de sens de 10 mOhm type, le courant décalé doit être meilleur que 1,5 mA, ce qui signifie que toute mesure est de +/-1,5 mA (la mise en page du PCBoard peut également affecter ce . Par exemple, lorsque vous mesurez un courant élevé (200 mA), attendez-vous suivantes:

  • 2 mA (1% d'erreur de gain de 200 mA due à une erreur de gain de la jauge de carburant)
  • +2 mA (1% d'erreur de gain de 200 mA due à une erreur de résistance de détection)
  • +1,5 mA (erreur de décalage de détection actuelle par la jauge de carburant)

L'erreur totale est de 5,5 mA (2,75%). Comparez ceci à un courant moyen (50 mA) où le les mêmes pourcentages d'erreur donnent une erreur totale de 7% ou à un courant faible (15 mA), où +/-1,5 mA donne un taux d'erreur total de 10%.

Pour obtenir de meilleurs résultats, nous vous recommandons de mesurer plus de 20 mA. Les erreurs de mesure du gain sont systémiques et reproductibles, ce qui vous permet de tester un appareil dans plusieurs modes et d'obtenir un résultat propre (à l'exception du décalage de 1,5 mA).

Pour les mesures relatives de +/-100 uA, la durée de mesure requise dépend des éléments suivants:

  • Bruit d'échantillonnage ADC. Avec sa configuration d'usine standard, le MAX17050 Variation de +/-1,5 mA d'échantillon à échantillon en raison du bruit, chaque échantillon étant délivré en 175,8 ms. Vous pouvez vous attendre à un volume approximatif de +/-100 uA pour une fenêtre de test d'une minute et à un bruit propre de 3 sigma en moins. supérieure à 100 uA (soit un bruit de 1 sigma à 33 uA) pour une fenêtre de test de six minutes.
  • Exemple d'alias en raison de la variation de charge. Les variations exagérées les erreurs, donc pour les échantillons en raison des variations inhérentes au chargement, envisagez d'utiliser une fenêtre de test plus longue.

Appareils Nexus compatibles

Nexus 5
Modèle Nexus 5
Jauge de carburant Jauge de carburant Maxim MAX17048 (ModelGauge, sans compteur de surface)
Propriétés BATTERY_PROPERTY_CAPACITY
Mesures La jauge de carburant ne permet d'effectuer aucune autre mesure que l'état de charge de la batterie résolution de %/256 (1/256e de pourcentage de la capacité totale de la batterie).
Nexus 6
Modèle Nexus 6
Jauge de carburant Jauge de carburant Maxim MAX17050 (compteur avec réglage Maxim ModelGauge) et Résistance de détection actuelle de 10 Mohm.
Propriétés BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Mesures CURRENT_NOW Résolution de 156,25 uA. La période de mise à jour est de 175,8 ms.
Résolution de CURRENT_AVERAGE : 156,25 uA, période de mise à jour configurable De 0,7 s à 6,4 h, 11,25 s par défaut
La résolution de CHARGE_COUNTER (précision actuelle cumulée et non étendue) est 500 uAh (lecture du compteur coulomb brut, non ajustée par la jauge de carburant pour le décalage du compteur coulomb, ainsi que les entrées de l'algorithme m3 ModelGauge, y compris la compensation vide).
Résolution de CHARGE_COUNTER_EXT (précision étendue dans le noyau) 8 nAh.
ENERGY_COUNTER est CHARGE_COUNTER_EXT avec une tension nominale de 3,7 V.
Nexus 9
Modèle Nexus 9
Jauge de carburant Jauge de carburant Maxim MAX17050 (compteur avec réglage Maxim ModelGauge) et Résistance de détection actuelle de 10 Mohm.
Propriétés BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Mesures CURRENT_NOW Résolution de 156,25 uA. La période de mise à jour est de 175,8 ms.
Résolution de CURRENT_AVERAGE : 156,25 uA, période de mise à jour configurable 0,7 s à 6,4 h, 11,25 s par défaut
La résolution de CHARGE_COUNTER (précision actuelle cumulée et non étendue) est 500 uAh.
Résolution de CHARGE_COUNTER_EXT (précision étendue dans le noyau) 8 nAh.
ENERGY_COUNTER est CHARGE_COUNTER_EXT pour une tension nominale de 3,7 V.
Période de mise à jour actuelle cumulée : 175,8 ms.
ADC échantillonné à une quantification de 175 nbsp; ms avec une période d'échantillonnage de 4 ms. Peut ajuster le cycle d'utilisation.
Nexus 10
Modèle Nexus 10
Jauge de carburant Jauge de carburant Dallas Semiconductor DS2784 (compteur coulomb), avec un sens du courant à 10 mohms résistante.
Propriétés BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Mesures La résolution actuelle des mesures (instantanées et moyennes) est de 156,3 uA.
La période de mise à jour instantanée actuelle de CURRENT_NOW est de 3,5 secondes.
La période de mise à jour de CURRENT_AVERAGE est de 28 secondes (non configurable).
La résolution de CHARGE_COUNTER (précision actuelle cumulée et non étendue) est 625 uAh.
La résolution de CHARGE_COUNTER_EXT (précision étendue dans le noyau) est de 144 nAh.
ENERGY_COUNTER est CHARGE_COUNTER_EXT pour une tension nominale de 3,7 V.
La période de mise à jour globale est de 3,5 secondes.