Die Informationen zur Akkunutzung stammen aus Statistiken zur Akkunutzung und aus den Werten des Energieprofils.
Statistiken zur Akkunutzung
Das Framework ermittelt automatisch Statistiken zur Akkunutzung, indem es erfasst, wie lange sich die Gerätekomponenten in verschiedenen Status befinden. Wenn Komponenten (WLAN-Chipsatz, Mobilfunkradio, Bluetooth, GPS, Display, CPU) ihren Status ändern (AUS/AN, Inaktivität/volle Leistung, niedrige/hohe Helligkeit usw.), meldet der steuernde Dienst dem Framework-Dienst „BatteryStats“ entsprechende Informationen. BatteryStats erhebt Informationen im Laufe der Zeit und speichert sie für die Verwendung nach Neustarts. Der Dienst erfasst nicht direkt den Akkustromverbrauch, sondern sammelt stattdessen Zeitinformationen, mit denen sich der Akkuverbrauch durch verschiedene Komponenten ungefähr bestimmen lässt.
Das Framework erfasst Statistiken mit den folgenden Methoden:
- Push: Dienste, die über Komponentenänderungen informiert sind, leiten Statusänderungen an den BatteryStats-Dienst weiter.
- Pull. Für Komponenten wie die CPU-Auslastung durch Apps ruft das Framework die Daten an Übergangspunkten (z. B. beim Starten oder Beenden einer Aktivität) automatisch ab, um einen Snapshot zu erstellen.
Der Ressourcenverbrauch wird der Anwendung zugeordnet, die die Ressource verwendet. Wenn mehrere Anwendungen gleichzeitig eine Ressource verwenden (z. B. Wakelocks, die verhindern, dass das System in den Ruhemodus versetzt wird), verteilt das Framework den Verbrauch auf diese Anwendungen, nicht unbedingt gleichmäßig.
Damit Nutzungsstatistiken bei einem Herunterfahren nicht verloren gehen, was auf Probleme mit dem Akkuverbrauch hinweisen kann (d.h. Herunterfahren, weil der Akku eine verbleibende Kapazität von null erreicht hat), werden die Statistiken im Framework ungefähr alle 30 Minuten aktualisiert.
Statistiken zur Akkunutzung werden vollständig vom Framework verarbeitet und erfordern keine OEM-Änderungen.
Werte für Energieprofile
Achtung:Gerätehersteller müssen ein Komponenten-Energieprofil angeben, das den aktuellen Verbrauchswert der Komponente und die ungefähre Akkuentladung definiert, die durch die Komponente im Laufe der Zeit verursacht wird. Dieses Profil ist in platform/frameworks/base/core/res/res/xml/power_profile.xml definiert. Weitere Informationen zu diesen Einstellungen finden Sie unter Leistungswerte.
Innerhalb eines Energieprofils wird der Energieverbrauch in Milliamperen (mA) der Stromaufnahme bei einer Nennspannung angegeben. Er kann auch ein Bruchteilwert in Mikroamperen (uA) sein. Der Wert sollte der am Akku verbrauchte Strom in Milliampere sein und nicht ein Wert, der für eine Versorgungsschiene gilt und nicht dem Strom entspricht, der vom Akku verbraucht wird.
In einem Display-Energieprofil wird beispielsweise der Strom in Milliampere angegeben, der erforderlich ist, um das Display bei minimaler und maximaler Helligkeit eingeschaltet zu halten. Um die Leistungskosten (d. h. den Akkuverbrauch durch die Displaykomponente) zu ermitteln, die durch das Einschalten des Displays entstehen, erfasst das Framework die Zeit, die bei jeder Helligkeitsstufe verbracht wird, und multipliziert diese Zeitintervalle dann mit einem interpolierten Displayhelligkeitswert.
Außerdem multipliziert das Framework die CPU-Zeit für jede Anwendung mit den mA, die erforderlich sind, um die CPU mit einer bestimmten Geschwindigkeit auszuführen. Anhand dieser Berechnung wird ein Vergleichsranking der Akkunutzung einer Anwendung durch die Ausführung von CPU-Code erstellt. Die Zeit als App im Vordergrund und die Gesamtzeit einschließlich Hintergrundaktivitäten werden separat erfasst.