Geräteleistung messen

Sie können den Stromverbrauch von Android-Geräten mit einer Ladestandanzeige ermitteln wie Summit SMB347 oder Maxim MAX17050 (verfügbar auf vielen Nexus-Geräten). Systeminterne wenn keine externen Messgeräte verfügbar oder nur umständlich eine Verbindung zu einem Gerät herstellen (z. B. bei der mobilen Nutzung)

Zu den Messungen gehören der sofortige Strom, die verbleibende Ladung und die Akkukapazität zu Beginn des Tests und "end" sowie weitere je nach den unterstützten Eigenschaften des Geräts (siehe unten). Für optimale Ergebnisse der Messung der Geräteleistung bei A/B-Tests mit langer Ausführungszeit, bei denen dasselbe Gerät verwendet wird mit derselben Kraftstoffanzeige und demselben aktuellen Sensorwiderstand. Prüfen, ob der Akku zu Beginn geladen ist ist für jedes Gerät gleich, um unterschiedliches Verhalten der Kraftstoffanzeige an verschiedenen Stellen im Akkuentladungskurve.

Selbst bei identischen Testumgebungen können wir nicht garantieren, dass die Messungen hoch absolut sind. Genauigkeit. Die meisten Ungenauigkeiten, die für die Anzeige des Kraftstoffstands und den Sensorwiderstand gelten, sind jedoch konsistent. zwischen Testläufen, sodass Vergleiche zwischen identischen Geräten hilfreich sind. Wir empfehlen, Mehrere Tests in verschiedenen Konfigurationen, um erhebliche Unterschiede und die relative Leistungsfähigkeit zu ermitteln Verbrauch zwischen Konfigurationen.

Energieverbrauch lesen

Fügen Sie API-Aufrufe in den Testcode ein, um Daten zum Stromverbrauch zu lesen.

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 Eigenschaften

Android unterstützt die folgenden Eigenschaften der Kraftstoffanzeige:

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 Attribute werden aus den Kernelattributen „power_supply“ mit ähnlichen Namen gelesen. Die genauen Eigenschaften, die Auflösung der Eigenschaftswerte und die Aktualisierungshäufigkeit für ein bestimmtes Gerät verfügbar sind, hängt von folgenden Faktoren ab:

  • Hardware der Kraftstoffanzeige, z. B. Summit SMB347 oder Maxim MAX17050
  • Verbindung des Kraftstoffmessgeräts zum System, z. B. der Wert externer Strommesswiderstände.
  • Softwarekonfiguration des Kraftstoffanzeige-Chips, z. B. ausgewählte Werte für die Berechnung des durchschnittlichen Stroms Intervalle im Kernel-Treiber.

Weitere Informationen finden Sie in den Eigenschaften für Nexus-Geräte.

Maximale Kraftstoffanzeige

Zur Bestimmung des Akkuzustands über einen längeren Zeitraum (MAX17050, BC15) korrigiert Coulomb-Zähler-Offsetmessungen. Für Messungen über einen (wie z. B. Tests zur Messung des Stromverbrauchs), Korrekturen, sodass der Offset zur primären Fehlerquelle wird, wenn die aktuellen Messwerte zu klein sind. (obwohl der Offset-Fehler in keiner Zeit vollständig eliminiert werden kann).

Bei einem typischen 10-mOhm-Sensorwiderstand sollte der Offsetstrom besser sein als 1,5 mA, d.h.jede Messung ist +/-1,5 mA (PCboard-Layout kann sich ebenfalls auf diesen Wert auswirken) Variante). Bei der Messung eines hohen Stroms (200 mA) Folgendes:

  • 2 mA (1% Steigerungsfehler von 200 mA aufgrund von Verstärkungsfehler bei Kraftstoffanzeige)
  • +2 mA (1% Steigerungsfehler von 200 mA aufgrund eines Fehlers beim Messwiderstand)
  • +1,5 mA (Fehler beim Versatz der aktuellen Sensoren von der Kraftstoffanzeige)

Der Gesamtfehler beträgt 5,5 mA (2,75%). Vergleichen Sie dies mit einem mittleren Strom (50 mA), bei dem der Fehlerprozentsätze ergeben einen Gesamtfehler von 7% oder einen kleinen Strom (15 mA), wobei +/-1,5 mA ergibt einen Gesamtfehler von 10%.

Für optimale Ergebnisse empfehlen wir eine Messung mit mehr als 20 mA. Fehler bei der Messung der Zuwächse systematisch und wiederholbar, sodass Sie ein Gerät in mehreren Modi testen und saubere relative Daten erhalten. (mit Ausnahmen für den 1,5-mA-Versatz).

Bei relativen Messungen von +/-100 uA hängt die erforderliche Messdauer von folgenden Faktoren ab:

  • ADC-Stichprobenrauschen. Der MAX17050 erzeugt in seiner normalen Werkskonfiguration +/-1,5 mA Abweichung von Stichproben zu Probe aufgrund von Rauschen, wobei jede Probe mit 175,8 ms geliefert wird. Für ein einminütiges Testfenster sind etwa +/-100 uA und ein sauberes 3-Sigma-Rauschen zu erwarten. als 100 UA (oder 1-Sigma-Rauschen bei 33 UA) für ein 6-minütiges Testfenster.
  • Beispiel für Aliasing aufgrund von Lastvariationen. Die Variation macht Fehler deutlich. Bei Stichproben mit Abweichungen, sollten Sie ein längeres Testfenster verwenden.

Unterstützte Nexus-Geräte

Nexus 5
Modell Nexus 5
Kraftstoffanzeige Maxim MAX17048 Kraftstoffanzeige (ModelGauge, kein Coulomb-Zähler)
Properties BATTERY_PROPERTY_CAPACITY
Messungen Die Kraftstoffanzeige unterstützt keine anderen Messungen als der Ladezustand des Akkus in einem Auflösung von %/256 (1/256stel von der vollen Akkukapazität)
Nexus 6
Modell Nexus 6
Kraftstoffanzeige Maxim MAX17050 Kraftstoffanzeige (ein Coulomb-Zähler mit Maxim ModelGauge-Anpassungen) und ein 10-mohm-Stromwiderstand.
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 UA, Aktualisierungszeitraum beträgt 175,8 ms.
CURRENT_AVERAGE-Auflösung 156,25 UA, Aktualisierungszeitraum konfigurierbar 0,7 s bis 6,4 h, Standard 11,25 Sekunden
Die Auflösung von CHARGE_COUNTER (akkumulierte aktuelle, nicht nächste Genauigkeit) ist 500 uAh (Roh-Culomb-Zählermesswert, nicht durch Kraftstoffanzeige für Coulomb-Zähler-Offset angepasst, plus Eingaben aus dem ModelGauge-m3-Algorithmus, einschließlich leerer Kompensation).
CHARGE_COUNTER_EXT (erweiterte Genauigkeit im Kernel) – Auflösung 8 nAh.
ENERGY_COUNTER entspricht CHARGE_COUNTER_EXT bei einer Nennspannung von 3,7 V.
Nexus 9
Modell Nexus 9
Kraftstoffanzeige Maxim MAX17050 Kraftstoffanzeige (ein Coulomb-Zähler mit Maxim ModelGauge-Anpassungen) und ein 10-mohm-Stromwiderstand.
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 UA, Aktualisierungszeitraum beträgt 175,8 ms.
CURRENT_AVERAGE-Auflösung 156,25 UA, Aktualisierungszeitraum konfigurierbar 0,7 s bis 6,4 h, Standard 11,25 Sekunden
Die Auflösung von CHARGE_COUNTER (akkumulierte aktuelle, nicht erweiterte Genauigkeit) ist 500 uAh.
CHARGE_COUNTER_EXT (erweiterte Genauigkeit im Kernel) – Auflösung 8 nAh.
ENERGY_COUNTER entspricht CHARGE_COUNTER_EXT bei einer Nennspannung von 3,7 V.
Akkumulierter aktueller Updatezeitraum: 175,8 ms.
ADC entnahm eine Stichprobe mit einer Quantisierung von 175 nbsp;ms und einem Stichprobenzeitraum von 4 ms. Arbeitszyklus kann angepasst werden.
Nexus 10
Modell Nexus 10
Kraftstoffanzeige Dallas Semiconductor DS2784-Kraftstoffanzeige (Coulomb-Zähler) mit einem Stromverbrauch von 10 MOhm Widerstand.
Properties BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Messungen Die aktuelle Messauflösung (sofort und durchschnittlich) beträgt 156,3 uA.
Der aktuelle Zeitraum für die sofortige Aktualisierung von CURRENT_NOW beträgt 3,5 Sekunden.
Der Aktualisierungszeitraum für CURRENT_AVERAGE beträgt 28 Sekunden (nicht konfigurierbar).
Die Auflösung von CHARGE_COUNTER (akkumulierte aktuelle, nicht nächste Genauigkeit) ist 625 uAh.
Die Auflösung von CHARGE_COUNTER_EXT (erweiterte Genauigkeit im Kernel) beträgt 144 nAh.
ENERGY_COUNTER entspricht CHARGE_COUNTER_EXT bei einer Nennspannung von 3,7 V.
Der Aktualisierungszeitraum beträgt für alle 3,5 Sekunden.