Informationen zur Akkunutzung werden aus Statistiken zur Akkunutzung und Werten des Energieprofils abgeleitet.
Statistiken zur Akkunutzung
Das Framework ermittelt automatisch Statistiken zur Akkunutzung, indem es erfasst, wie lange sich Gerätekomponenten in verschiedenen Status befinden. Wenn sich der Status von Komponenten (WLAN-Chipsatz, Mobilfunkmodul, Bluetooth, GPS, Display, CPU) ändert (AUS/AN, Leerlauf/volle Leistung, niedrige/hohe Helligkeit usw.), meldet der steuernde Dienst dies an den BatteryStats-Dienst des Frameworks. BatteryStats erfasst Informationen im Laufe der Zeit und speichert sie für die Verwendung nach Neustarts. Der Dienst erfasst nicht direkt den aktuellen Akkuverbrauch, sondern sammelt Zeitinformationen, mit denen der Akkuverbrauch verschiedener Komponenten geschätzt werden kann.
Im Rahmen des Frameworks werden Statistiken mit den folgenden Methoden erhoben:
- Push Dienste, die über Komponentenänderungen informiert sind, übertragen Statusänderungen an den BatteryStats-Dienst.
- Pull Bei Komponenten wie der CPU-Nutzung durch Apps ruft das Framework die Daten automatisch an Übergangspunkten (z. B. beim Starten oder Beenden einer Aktivität) ab, um eine Momentaufnahme zu erstellen.
Der Ressourcenverbrauch ist mit der Anwendung verknüpft, die die Ressource verwendet. Wenn mehrere Anwendungen gleichzeitig eine Ressource verwenden (z. B. Wakelocks, die verhindern, dass das System in den Ruhezustand wechselt), verteilt das Framework den Verbrauch auf diese Anwendungen, wenn auch nicht unbedingt gleichmäßig.
Damit Nutzungsstatistiken für ein Herunterfahren nicht verloren gehen, das auf Probleme mit dem Akkuverbrauch hinweisen kann (z.B. Herunterfahren, weil der Akku leer ist), werden die Statistiken vom Framework etwa alle 30 Minuten gespeichert.
Statistiken zur Akkunutzung werden vollständig vom Framework verarbeitet und erfordern keine OEM-Änderungen.
Werte für das Energieprofil
Achtung:Gerätehersteller müssen ein Komponentenleistungsprofil bereitstellen, das den Stromverbrauchswert für die Komponente und den ungefähren Akkuverbrauch durch die Komponente im Zeitverlauf definiert. Dieses Profil ist in platform/frameworks/base/core/res/res/xml/power_profile.xml definiert. Weitere Informationen zu diesen Einstellungen finden Sie unter Leistungswerte.
In einem Energieprofil wird der Stromverbrauch in Milliampere (mA) bei einer Nennspannung angegeben. Er kann auch als Bruchwert in Mikroampere (uA) angegeben werden. Der Wert sollte die am Akku verbrauchten Milliampere sein und nicht ein Wert, der für eine Stromschiene gilt, die nicht dem vom Akku verbrauchten Strom entspricht.
In einem Display-Energieprofil wird beispielsweise angegeben, wie viel Strom in Milliampere (mA) erforderlich ist, um das Display bei minimaler und maximaler Helligkeit eingeschaltet zu lassen. Um die Energiekosten (d. h. den Akkuverbrauch durch die Displaykomponente) für das eingeschaltete Display zu ermitteln, erfasst das Framework die Zeit, die auf jeder Helligkeitsstufe verbracht wird, und multipliziert diese Zeitintervalle dann mit einem interpolierten Kostenwert für die Displayhelligkeit.
Außerdem wird die CPU-Zeit für jede Anwendung mit dem mA multipliziert, das zum Ausführen der CPU mit einer bestimmten Geschwindigkeit erforderlich ist. Bei dieser Berechnung wird ein vergleichendes Ranking erstellt, wie viel Akku eine Anwendung durch die Ausführung von CPU-Code verbraucht. Die Zeit als Vordergrund-App und die Gesamtzeit einschließlich Hintergrundaktivität werden separat angegeben.