Energieverbrauch mit Battery Historian analysieren

Das Tool „Akkuhistorian“ bietet einen Einblick in den Akkuverbrauch eines Geräts im Zeitverlauf. Auf systemweiter Ebene visualisiert das Tool leistungsbezogene Ereignisse aus den Systemlogs in einer HTML-Darstellung. Auf App-spezifischer Ebene liefert das Tool eine Vielzahl von Daten, mit denen Sie das Verhalten einer App ermitteln können, die den Akku stark belastet.

In diesem Dokument werden einige Möglichkeiten beschrieben, wie Sie mit dem Akkuverlauf mehr über Akkuverbrauchsmuster erfahren können. Zunächst wird erläutert, wie die systemweiten Daten von „Akku Historian“ zu lesen sind. Dann werden Möglichkeiten vorgestellt, mit denen Sie den Akkuverlauf verwenden können, um das Verhalten Ihrer eigenen App in Bezug auf den Akkuverbrauch zu diagnostizieren und Fehler zu beheben. Zu guter Letzt finden Sie hier noch einige Tipps zu Szenarien, in denen der Akku Historian besonders nützlich sein kann.

Systemweite Ansicht verwenden

Mit dem Tool „Akku Historian“ lassen sich verschiedene Verhaltensweisen von Apps und Systemen sowie deren Korrelation mit dem Akkuverbrauch im Zeitverlauf systemweit visualisieren. Diese in Abbildung 1 dargestellte Ansicht kann Ihnen bei der Diagnose und Identifizierung von Problemen mit dem Energieverbrauch Ihrer Anwendung helfen.

Akku Historian zeigt systemweite Ereignisse an, die sich auf den Stromverbrauch auswirken.
Abbildung 1. Anzeige der systemweiten Ereignisse, die sich auf den Stromverbrauch auswirken.

Von besonderem Interesse an dieser Abbildung ist die schwarze, horizontale Trendlinie nach unten, die den Akkustand darstellt, gemessen auf der y-Achse. Zum Beispiel zeigt die Visualisierung zu Beginn der Linie für den Akkustand etwa 6:50 Uhr einen relativ starken Abfall des Akkuladestands.

Abbildung 2 zeigt eine Nahaufnahme dieses Teils des Displays.

Eine Nahaufnahme der Zeitachse der Akkulaufzeit von ungefähr 6:50 bis 7:20 Uhr.
Abbildung 2. Eine Nahaufnahme der Zeitachse der Akkulaufzeit von ungefähr 6:50 bis 7:20 Uhr.

Ganz am Anfang der Linie für den Akkustand zeigt das Display drei Dinge an, wenn der Akku stark abnimmt: Die CPU wird ausgeführt, eine App hat einen Ruhemodus und der Bildschirm ist eingeschaltet. So hilft Ihnen „Akkuhistorian“, zu verstehen, welche Ereignisse bei einem hohen Akkuverbrauch auftreten. Anschließend können Sie Ihre App auf diese Verhaltensweisen ausrichten und herausfinden, ob entsprechende Optimierungen möglich sind.

Die systemweite Visualisierung kann noch weitere Hinweise liefern. Wenn sich daraus z. B. ergibt, dass die Mobilfunkverbindung häufig aus- und eingeschaltet wird, bietet es sich unter Umständen an, dieses Verhalten mithilfe von intelligenten Planungs-APIs wie JobScheduler oder Firebase Job Dispatcher zu optimieren.

Im nächsten Abschnitt wird erläutert, wie Sie Verhaltensweisen und Ereignisse untersuchen, die für Ihre App spezifisch sind.

App-spezifische Daten ansehen

Zusätzlich zu den Daten auf Makroebene, die von der systemweiten Ansicht bereitgestellt werden, bietet der Akkuverlauf auch Tabellen und eine Visualisierung von Daten, die für jede App auf Ihrem Gerät spezifisch sind. Die tabellarischen Daten umfassen:

  • Der geschätzte Stromverbrauch der App.
  • Netzwerkinformationen.
  • Wakelocks.
  • Dienste
  • Informationen verarbeiten.

Die Tabellen enthalten zwei Datendimensionen zu Ihrer App. Zuerst können Sie nachsehen, wo die Energienutzung Ihrer App im Vergleich zu anderen Apps steht. Klicken Sie dazu unter Tabellen auf die Tabelle Schätzungen zur Geräteleistung. In diesem Beispiel wird eine fiktive App namens Pug Power untersucht.

Es wird untersucht, welche Apps den meisten Strom verbrauchen.
Abbildung 3. Es wird untersucht, welche Apps den meisten Strom verbrauchen.

Die Tabelle in Abbildung 3 zeigt, dass Pug Power der neuntgrößte Akkuverbraucher dieses Geräts und die drittgrößte App ist, die nicht Teil des Betriebssystems ist. Diese Daten deuten darauf hin, dass diese App eine eingehendere Untersuchung erfordert.

Wenn Sie die Daten für eine bestimmte App aufrufen möchten, geben Sie den Paketnamen unter App-Auswahl unten in den beiden Drop-down-Menüs ein. Dieser befindet sich unterhalb der linken Seite der Visualisierung.

Es wird eine bestimmte App eingegeben, deren Daten angezeigt werden sollen.
Abbildung 4. Es wird eine bestimmte App eingegeben, deren Daten angezeigt werden sollen.

Wenn Sie eine bestimmte App auswählen, ändern sich die folgenden Kategorien der Datenvisualisierung, um App-spezifische Daten anstelle von systemweiten Daten anzuzeigen:

  • SyncManager.
  • Vordergrundprozess.
  • Userspace-Wakelock.
  • Top-App
  • JobScheduler
  • Aktivitätsmanager-Prozess

Die Visualisierungen von SyncManager und JobScheduler machen sofort ersichtlich, ob Ihre Anwendung Synchronisierungen durchführt und Jobs häufiger als nötig ausführt. So können sie schnell eine Möglichkeit aufzeigen, wie du das Verhalten deiner App optimieren kannst, um die Akkuleistung zu verbessern.

Sie können auch ein weiteres appspezifische Visualisierungsdaten abrufen: Userspace Wakelock. Um diese Informationen in den Fehlerbericht aufzunehmen, geben Sie den folgenden Befehl in Ihr Terminalfenster ein:

$ adb shell dumpsys batterystats --enable full-wake-history

Abbildungen 5 und 6 zeigen Daten für Pug Power: Abbildung 5 zeigt die Visualisierung der app-spezifischen Daten und Abbildung 6 zeigt die entsprechenden tabellarischen Daten.

Visualisierung von Daten für die fiktive App Pug Power.
Abbildung 5. Visualisierung von Daten für die fiktive App Pug Power.


Tabellarische Daten für die fiktive Pug Power-App.

Abbildung 6: Tabellarische Daten für die fiktive Pug Power-App.

Ein Blick auf die Visualisierung zeigt nichts sofort Offensichtliches. Aus der Zeile „JobScheduler“ geht hervor, dass für die Anwendung keine Jobs geplant sind. Aus der Zeile „SyncManager“ geht hervor, dass die App noch keine Synchronisierungen durchgeführt hat.

Die Untersuchung des Wakelocks-Segments der tabellarischen Daten zeigt jedoch, dass Pug Power Wakelocks von insgesamt über einer Stunde erhält. Dieses ungewöhnliche und kostspielige Verhalten kann für den hohen Stromverbrauch der App verantwortlich sein. Mithilfe dieser Information kann der Entwickler die Ausrichtung auf ein Gebiet vornehmen, in dem eine Optimierung mit großer Wahrscheinlichkeit sehr hilfreich ist. Warum erhält die App so viel Wakelock-Zeit und wie kann der Entwickler dieses Verhalten verbessern?

Andere Fälle, in denen der Akku-Historian helfen kann

Es gibt viele weitere Fälle, in denen der Akku Historian Ihnen bei der Diagnose von Möglichkeiten zur Verbesserung des Akkuverhaltens helfen kann. Akku Historian teilt Ihnen beispielsweise mit, ob Ihre App

  • Zu häufiges Auslösen von Weckalarmen (alle 10 Sekunden oder weniger)
  • Dauerhafte GPS-Sperre
  • Jobs alle 30 Sekunden oder weniger planen.
  • Die geplante Synchronisierung wird alle 30 Sekunden oder weniger durchgeführt.
  • Sie nutzen Mobilfunk häufiger als erwartet.