Vous pouvez déterminer la consommation d'énergie des appareils Android qui incluent un indicateur de niveau de batterie, comme un Summit SMB347 ou un Maxim MAX17050 (disponible sur de nombreux appareils Nexus). Utilisez la jauge du système lorsque l'équipement de mesure externe n'est pas disponible ou qu'il est difficile de le connecter à un appareil (par exemple, en cas d'utilisation mobile).
Les mesures peuvent inclure le courant instantané, la charge restante, la capacité de la batterie au début et à la fin du test, etc., en fonction des propriétés compatibles de l'appareil (voir ci-dessous). Pour de meilleurs résultats, effectuez des mesures de la puissance de l'appareil lors de tests A/B de longue durée qui utilisent le même type d'appareil avec le même indicateur de niveau de carburant et la même résistance de mesure du courant. Assurez-vous que la charge de la batterie de départ est la même pour chaque appareil afin d'éviter que le comportement de l'indicateur de carburant ne soit différent à différents points de la courbe de décharge de la batterie.
Même avec des environnements de test identiques, la précision absolue des mesures n'est pas garantie. Toutefois, la plupart des inexactitudes spécifiques au niveau du voyant de carburant et de la résistance de détection sont cohérentes entre les séries de tests, ce qui permet de comparer des appareils identiques. Nous vous recommandons d'effectuer plusieurs tests dans différentes configurations afin d'identifier les différences significatives et la consommation d'énergie relative entre les configurations.
Lire la consommation d'énergie
Pour lire les données de consommation d'énergie, insérez des appels à 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 est compatible avec les propriétés suivantes de l'indicateur de niveau de batterie:
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 d'attributs de sous-système power_supply du kernel portant des noms similaires. Toutefois, les propriétés exactes, la résolution des valeurs des propriétés et la fréquence de mise à jour disponibles pour un appareil spécifique dépendent des éléments suivants:
- Matériel de jauge à carburant, tel qu'un Summit SMB347 ou un Maxim MAX17050.
- Connexion du voyant de niveau de carburant au système, comme la valeur des résistances de détection de courant externes.
- Configuration logicielle du chip de jauge à carburant, telles que les valeurs choisies pour les intervalles de calcul de courant moyen dans le pilote du noyau.
Pour en savoir plus, consultez les propriétés disponibles pour les appareils Nexus.
Jauge à carburant Maxim
Lors de la détermination de l'état de charge de la batterie sur une longue période, le voyant de carburant Maxim (MAX17050, BC15) corrige les mesures de décalage du compteur de coulombs. Pour les mesures effectuées sur une courte période (telles que les tests de mesure de la consommation d'énergie), le voyant de carburant ne corrige pas les mesures, ce qui fait que le décalage est la principale source d'erreur lorsque les mesures actuelles sont trop faibles (bien que le temps ne puisse pas éliminer complètement l'erreur de décalage).
Pour une conception de résistance de mesure de 10 mOhm typique, le courant de décalage doit être supérieur à 1,5 mA, ce qui signifie que toute mesure est comprise entre ±1,5 mA (la disposition de la carte PCB peut également affecter cette variation). Par exemple, lorsque vous mesurez un courant élevé (200 mA), vous pouvez vous attendre aux résultats suivants:
- 2 mA (erreur de gain de 1% de 200 mA en raison d'une erreur de gain du niveau de carburant)
- +2 mA (erreur de gain de 1% sur 200 mA en raison d'une erreur de résistance de détection)
- +1,5 mA (erreur de décalage de la mesure du courant de la jauge à carburant)
L'erreur totale est de 5,5 mA (2,75%). Comparez cela à un courant moyen (50 mA), où les mêmes pourcentages d'erreur donnent une erreur totale de 7 %, ou à un courant faible (15 mA), où +/- 1,5 mA donne une erreur totale de 10%.
Pour obtenir les meilleurs résultats, nous vous recommandons de mesurer une valeur supérieure à 20 mA. Les erreurs de mesure du gain sont systématiques et reproductibles, ce qui vous permet de tester un appareil dans plusieurs modes et d'obtenir des mesures relatives nettes (à l'exception du décalage de 1,5 mA).
Pour les mesures relatives de +/- 100 µA, le temps de mesure requis dépend des facteurs suivants:
- Bruit d'échantillonnage de l'ADC Le MAX17050 avec sa configuration d'usine normale produit une variation d'environ +/- 1,5 mA d'un échantillon à l'autre en raison du bruit, chaque échantillon étant fourni à 175,8 ms. Vous pouvez vous attendre à une variation d'environ +/- 100 µA pour une période de test d'une minute et un bruit propre de 3 sigma inférieur à 100 µA (ou un bruit de 1 sigma à 33 µA) pour une période de test de six minutes.
- Aliasage d'échantillon en raison de la variation de la charge. La variation exagère les erreurs. Par conséquent, pour les échantillons présentant une variation inhérente au chargement, envisagez d'utiliser une période de test plus longue.
Appareils Nexus compatibles
Nexus 5
Modèle | Nexus 5 |
---|---|
Jauge à carburant | Jauge à carburant Maxim MAX17048 (ModelGauge, sans compteur de coulombs) |
Propriétés | BATTERY_PROPERTY_CAPACITY |
Mesures | Le niveau de carburant n'accepte aucune autre mesure que l'état de charge de la batterie avec une résolution de %/256 (1/256e de pour cent de la capacité de la batterie). |
Nexus 6
Modèle | Nexus 6 |
---|---|
Jauge à carburant | Jauge à carburant Maxim MAX17050 (compteur de coulombs avec réglages Maxim ModelGauge) et résistance de détection de courant 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 | Résolution CURRENT_NOW : 156,25 µA, période de mise à jour : 175,8 ms.Résolution CURRENT_AVERAGE : 156,25 µA, période de mise à jour configurable entre 0,7 s et 6,4 h, par défaut : 11,25 s.Résolution CHARGE_COUNTER (courant cumulé, précision non étendue) : 500 µAh (lecture brute du compteur de coulombs, non ajustée par le voyant de niveau de carburant pour le décalage du compteur de coulombs, plus les entrées de l'algorithme m3 ModelGauge, y compris la compensation à vide).CHARGE_COUNTER_EXT (précision étendue dans le noyau) résolution 8 nAh.ENERGY_COUNTER est CHARGE_COUNTER_EXT à une tension nominale de 3,7 V. |
Nexus 9
Modèle | Nexus 9 |
---|---|
Jauge de carburant | Jauge à carburant Maxim MAX17050 (compteur de coulombs avec réglages Maxim ModelGauge) et résistance de détection de courant 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 | Résolution CURRENT_NOW de 156,25 µA, période de mise à jour de 175,8 ms.Résolution CURRENT_AVERAGE de 156,25 µA, période de mise à jour configurable de 0,7 s à 6,4 h, par défaut 11,25 s.La résolution CHARGE_COUNTER (courant cumulé, précision non étendue) est de 500 µAh.CHARGE_COUNTER_EXT (précision étendue dans le noyau) résolution 8 nAh.ENERGY_COUNTER est CHARGE_COUNTER_EXT à une tension nominale de 3,7 V.Période de mise à jour du courant cumulée de 175,8 ms. ADC échantillonné à une quantification de 175 ms avec une période d'échantillonnage de 4 ms. Peut ajuster le cycle de service. |
Nexus 10
Modèle | Nexus 10 |
---|---|
Jauge de carburant | Indicateur de niveau de carburant DS2784 de Dallas Semiconductor (compteur de coulombs), avec une résistance de mesure du courant 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 | La résolution de la mesure du courant (instantanée et moyenne) est de 156,3 µA.La période de mise à jour du courant instantané CURRENT_NOW est de 3,5 secondes.La période de mise à jour CURRENT_AVERAGE est de 28 secondes (non configurable).La résolution de CHARGE_COUNTER (courant cumulé, précision non étendue) est de 625 µAh.La résolution CHARGE_COUNTER_EXT (précision étendue dans le noyau) est de 144 nAh.ENERGY_COUNTER est CHARGE_COUNTER_EXT à une tension nominale de 3,7 V.La période de mise à jour pour tous est de 3,5 secondes. |