Sie können den Geräteenergieverbrauch für Android-Geräte mit einem Akkustandsanzeigegerät ermitteln, z. B. Summit SMB347 oder Maxim MAX17050 (auf vielen Nexus-Geräten verfügbar). Verwenden Sie die im System integrierte Messanzeige, wenn keine externen Messgeräte verfügbar sind oder die Verbindung zu einem Gerät nicht einfach möglich ist (z. B. bei der mobilen Nutzung).
Die Messungen können je nach unterstützten Eigenschaften des Geräts (siehe unten) unter anderem den momentanen Strom, die verbleibende Akkukapazität und die Akkukapazität zu Beginn und Ende des Tests umfassen. Die besten Ergebnisse erzielen Sie, wenn Sie die Gerätestrommessungen während langwieriger A/B-Tests durchführen, bei denen derselbe Gerätetyp mit derselben Tankanzeige und demselben Strommesswiderstand verwendet wird. Achten Sie darauf, dass der Akkustand bei jedem Gerät gleich ist, um unterschiedliches Verhalten der Tankanzeige an verschiedenen Punkten der Akkuentladungskurve zu vermeiden.
Selbst bei identischen Testumgebungen ist nicht garantiert, dass die Messungen absolut genau sind. Die meisten Abweichungen bei der Tankanzeige und dem Messwiderstand sind jedoch zwischen den Tests konstant, sodass Vergleiche zwischen identischen Geräten sinnvoll sind. Wir empfehlen, mehrere Tests in verschiedenen Konfigurationen durchzuführen, um signifikante Unterschiede und den relativen Energieverbrauch zwischen den Konfigurationen zu ermitteln.
Stromverbrauch ablesen
Wenn Sie Daten zum Energieverbrauch lesen möchten, fügen Sie in Ihren Testcode Aufrufe der API ein.
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");
Verfügbare Unterkünfte
Android unterstützt die folgenden Eigenschaften der Akkuanzeige:
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
Die meisten Eigenschaften werden aus Attributen des Kernel-Subsystems „power_supply“ mit ähnlichen Namen gelesen. Die genauen Eigenschaften, die Auflösung der Eigenschaftenwerte und die Aktualisierungshäufigkeit, die für ein bestimmtes Gerät verfügbar sind, hängen jedoch von folgenden Faktoren ab:
- Hardware für die Tankanzeige, z. B. Summit SMB347 oder Maxim MAX17050
- Verbindung zwischen Tankanzeige und System, z. B. der Wert externer Strommesswiderstände.
- Softwarekonfiguration des Tankmesschips, z. B. Werte, die für Intervalle zur Berechnung des durchschnittlichen Stromverbrauchs im Kerneltreiber ausgewählt wurden.
Weitere Informationen finden Sie in den Artikeln zu den Eigenschaften, die für Nexus-Geräte verfügbar sind.
Maxim-Kraftstoffanzeige
Bei der Bestimmung des Akkustands über einen längeren Zeitraum korrigiert der Maxim-Tankanzeiger (MAX17050, BC15) die Abweichungen der Coulombzählermessung. Bei Messungen über einen kurzen Zeitraum (z. B. bei Tests zur Messung des Energieverbrauchs) werden keine Korrekturen an der Tankanzeige vorgenommen. Daher ist der Fehler bei aktuellen Messungen zu klein, um den Fehler vollständig zu beseitigen.
Bei einem typischen 10-mOhm-Sensorwiderstand sollte der Offsetstrom unter 1,5 mA liegen, was bedeutet, dass jede Messung +/- 1,5 mA beträgt. Das Layout der Platine kann sich auch auf diese Abweichung auswirken. Wenn Sie beispielsweise einen hohen Strom (200 mA) messen, ist Folgendes zu erwarten:
- 2 mA (1% Anstiegsfehler von 200 mA aufgrund des Anstiegsfehlers der Tankanzeige)
- +2 mA (1% Anstiegsfehler von 200 mA aufgrund eines Fehlers des Messwiderstands)
- +1,5 mA (Offsetfehler des Stromsensors von der Tankanzeige)
Der Gesamtfehler beträgt 5,5 mA (2,75%). Vergleichen Sie dies mit einem mittleren Strom (50 mA), bei dem dieselben Fehlerprozentsätze einen Gesamtfehler von 7% ergeben, oder mit einem kleinen Strom (15 mA), bei dem +/- 1,5 mA einen Gesamtfehler von 10 % ergeben.
Für optimale Ergebnisse empfehlen wir, einen Wert von über 20 mA zu messen. Fehler bei der Verstärkungsmessung sind systematisch und wiederholbar.So können Sie ein Gerät in mehreren Modi testen und saubere relative Messungen erhalten (mit Ausnahme des 1, 5-mA-Offset).
Bei relativen Messungen von +/- 100 µA hängt die erforderliche Messzeit von folgenden Faktoren ab:
- ADC-Stichprobenrauschen Der MAX17050 in seiner normalen Werkskonfiguration erzeugt aufgrund von Rauschen eine Abweichung von +/- 1,5 mA zwischen den einzelnen Samples, wobei jedes Sample mit 175,8 ms geliefert wird. Bei einem Testzeitraum von 1 Minute können Sie mit einer Abweichung von etwa +/- 100 µA rechnen. Bei einem Testzeitraum von 6 Minuten ist das Rauschen mit weniger als 100 µA (oder 1-Sigma-Rauschen bei 33 µA) unter Kontrolle.
- Aliasing bei Stichproben aufgrund von Lastschwankungen Abweichungen verstärken Fehler. Bei Stichproben mit Schwankungen beim Laden sollten Sie daher ein längeres Testfenster verwenden.
Unterstützte Nexus-Geräte
Nexus 5
Modell | Nexus 5 |
---|---|
Kraftstoffanzeige | Maxim MAX17048-Kraftstoffanzeige (ModelGauge, kein Coulombzähler) |
Properties | BATTERY_PROPERTY_CAPACITY |
Messungen | Der Kraftstofftank enthält keine anderen Messwerte als den Akkustand mit einer Auflösung von %/256 (1/256 % der vollen Akkukapazität). |
Nexus 6
Modell | Nexus 6 |
---|---|
Kraftstoffanzeige | Maxim MAX17050-Tankanzeige (ein Coulomb-Zähler mit Maxim ModelGauge-Anpassungen) und ein 10-mOhm-Strommesswiderstand. |
Properties | BATTERY_PROPERTY_CAPACITY BATTERY_PROPERTY_CURRENT_NOW BATTERY_PROPERTY_CURRENT_AVERAGE BATTERY_PROPERTY_CHARGE_COUNTER BATTERY_PROPERTY_ENERGY_COUNTER |
Messungen | CURRENT_NOW Auflösung: 156,25 µA, Aktualisierungsintervall: 175,8 ms.CURRENT_AVERAGE Auflösung: 156,25 µA, konfigurierbares Aktualisierungsintervall: 0,7 s bis 6,4 h, Standardwert: 11,25 Sekunden.CHARGE_COUNTER Auflösung (kumulierter Strom, nicht erweiterte Genauigkeit): 500 µAh (rohe Coulomb-Zählerablesung, nicht durch den Tankanzeige-Coulomb-Zähler-Offset angepasst, einschließlich Eingaben vom ModelGauge-M3-Algorithmus einschließlich Leerlaufkompensation).CHARGE_COUNTER_EXT (erweiterte Genauigkeit im Kernel) Auflösung 8 nAh.ENERGY_COUNTER beträgt CHARGE_COUNTER_EXT bei einer Nennspannung von 3,7 V. |
Nexus 9
Modell | Nexus 9 |
---|---|
Kraftstoffanzeige | Maxim MAX17050-Tankanzeige (ein Coulomb-Zähler mit Maxim ModelGauge-Anpassungen) und ein 10-mOhm-Strommesswiderstand. |
Properties | BATTERY_PROPERTY_CAPACITY BATTERY_PROPERTY_CURRENT_NOW BATTERY_PROPERTY_CURRENT_AVERAGE BATTERY_PROPERTY_CHARGE_COUNTER BATTERY_PROPERTY_ENERGY_COUNTER |
Messungen | CURRENT_NOW Auflösung: 156,25 µA, Aktualisierungsintervall: 175,8 ms.CURRENT_AVERAGE Auflösung: 156,25 µA, konfigurierbares Aktualisierungsintervall: 0,7 s bis 6,4 h, Standard: 11,25 Sekunden.CHARGE_COUNTER (akkumulierter Strom, nicht erweiterte Genauigkeit) Auflösung: 500 µAh.CHARGE_COUNTER_EXT (erweiterte Genauigkeit im Kernel) Auflösung 8 nAh.ENERGY_COUNTER ist CHARGE_COUNTER_EXT bei einer Nennspannung von 3,7 V.Aktueller Aktualisierungszeitraum für den Akku: 175,8 ms. ADC mit 175 ms Quantisierung und 4 ms Abtastzeit. Sie können den Arbeitszyklus anpassen. |
Nexus 10
Modell | Nexus 10 |
---|---|
Kraftstoffanzeige | Dallas Semiconductor DS2784-Tankanzeige (ein Coulomb-Zähler) mit einem 10-mOhm-Strommesswiderstand. |
Properties | BATTERY_PROPERTY_CAPACITY BATTERY_PROPERTY_CURRENT_NOW BATTERY_PROPERTY_CURRENT_AVERAGE BATTERY_PROPERTY_CHARGE_COUNTER BATTERY_PROPERTY_ENERGY_COUNTER |
Messungen | Die Auflösung der Strommessung (Momentan- und Durchschnittswert) beträgt 156,3 µA.CURRENT_NOW Die Aktualisierungszeit für den aktuellen Strom beträgt 3,5 Sekunden.Das Aktualisierungsintervall von CURRENT_AVERAGE beträgt 28 Sekunden und kann nicht konfiguriert werden.Die Auflösung von CHARGE_COUNTER (aufgesummierter Strom, nicht erweiterte Genauigkeit) beträgt 625 µAh.Die Auflösung von (erweiterte Genauigkeit im Kernel) beträgt 144 nAh. CHARGE_COUNTER_EXT ENERGY_COUNTER ist CHARGE_COUNTER_EXT bei einer Nennspannung von 3,7 V.Die Aktualisierungsdauer für alle ist 3,5 Sekunden. |