Energieverbrauch mit Energy Profiler prüfen

Mit dem Energy Profiler können Sie ermitteln, wo Ihre App mehr Energie als nötig verbraucht.

Der Energy Profiler überwacht die Nutzung des CPU-, Netzwerkradio- und GPS-Sensors und zeigt eine Visualisierung an, wie viel Energie jede dieser Komponenten verbraucht. Der Energy Profiler zeigt Ihnen auch Systemereignisse wie Schlösser, Alarme, Jobs und Standortanfragen, die sich auf den Energieverbrauch auswirken können.

Der Energy Profiler misst den Energieverbrauch nicht direkt. Stattdessen wird ein Modell verwendet, das den Energieverbrauch für jede Ressource auf dem Gerät schätzt.

Energy Profiler – Übersicht

Der Energy Profiler wird im Fenster Profiler als Zeile angezeigt, wenn Sie Ihre App auf einem verbundenen Gerät oder einem Android-Emulator mit Android 8.0 (API 26) oder höher ausführen.

So öffnen Sie den Energie-Profiler:

  1. Wählen Sie Ansicht > Toolfenster > Profiler aus oder klicken Sie in der Symbolleiste auf Profil .

    Wenn Sie im Dialogfeld Bereitstellungsziel auswählen dazu aufgefordert werden, wählen Sie das Gerät aus, auf dem Ihre Anwendung für die Profilerstellung bereitgestellt werden soll. Wenn Sie ein Gerät über USB verbunden haben, es aber nicht in der Liste sehen, prüfen Sie, ob das USB-Debugging aktiviert ist.

  2. Klicken Sie auf eine beliebige Stelle in der Energiezeitachse, um den Energie-Profiler zu öffnen.

Wenn Sie den Energy Profiler öffnen, wird sofort der geschätzte Energieverbrauch Ihrer App angezeigt. Die Abbildung sollte in etwa wie Abbildung 1 aussehen.

Abbildung 1: Zeitachsen im Energy Profiler.

Wie in Abbildung 1 dargestellt, umfasst die Standardansicht des Energie-Profilers die folgenden Zeitpläne:

  1. Ereigniszeitachse:Zeigt die Aktivitäten in Ihrer App an, während sie die verschiedenen Status in ihrem Lebenszyklus durchlaufen. Diese Zeitachse zeigt auch Nutzerinteraktionen mit dem Gerät an, einschließlich Bildschirmdrehungsereignissen.
  2. Energiezeitachse:Zeigt den geschätzten Energieverbrauch Ihrer App an.
  3. Systemzeitachse:Zeigt Systemereignisse an, die sich auf den Energieverbrauch auswirken können.

Bewegen Sie den Mauszeiger auf einen Balken in der Energy-Zeitachse, um eine Aufschlüsselung des Energieverbrauchs nach CPU, Netzwerk- und Standortressourcen (GPS) sowie relevanten Systemereignissen zu sehen.

Systemereignisse prüfen: Wakelocks, Jobs und Alarme

Sie können den Energy Profiler verwenden, um Systemereignisse zu finden, die sich auf den Energieverbrauch auswirken können, einschließlich Wakelocks, Jobs und Alarme:

  • Eine Wakelock-Funktion ist ein Mechanismus, mit dem die CPU oder der Bildschirm eingeschaltet bleibt, wenn das Gerät andernfalls in den Ruhemodus wechseln würde. Eine App, die Videos abspielt, kann beispielsweise einen Wakelock verwenden, damit der Bildschirm eingeschaltet bleibt, wenn der Nutzer nicht mit dem Gerät interagiert. Das Anfordern eines Wakelocks ist keine energieintensive Aktion. Wenn Sie einen Wakelock nicht freigeben, kann das jedoch dazu führen, dass der Bildschirm oder die CPU länger als nötig eingeschaltet bleibt, wodurch sich der Akku schnell entleert. Weitere Informationen finden Sie in der Anleitung zum Arbeiten mit Wakelocks.

  • Sie können Alarme verwenden, um Hintergrundaufgaben außerhalb des Kontexts Ihrer App in regelmäßigen Abständen auszuführen. Wenn ein Alarm ausgelöst wird, kann es sein, dass das Gerät aktiviert und energieintensiver Code ausgeführt wird. Weitere Informationen finden Sie in der Anleitung zur Arbeit mit Alarmen.

  • Sie können Jobs verwenden, um Aktionen unter bestimmten Bedingungen auszuführen, z. B. wenn das Netzwerk verfügbar ist. Sie erstellen Jobs mit JobBuilder und planen sie mit JobScheduler. In vielen Fällen empfiehlt es sich, Jobs mit JobScheduler anstelle von Weckern oder Wakelocks zu verwenden.

  • Bei Standortanfragen wird der GPS-Sensor verwendet, der viel Energie verbrauchen kann. Informationen zum Senden von energieeffizienten Standortanfragen finden Sie unter Standort für Akku optimieren.

Mit dem Energy Profiler lässt sich leicht ermitteln, wo Ihre App diese Funktionen nutzt. So können Sie fundierte Entscheidungen zur Nutzung treffen.

Der Energy Profiler zeigt in der Zeitleiste System unterhalb der Energiezeitachse einen farbcodierten Balken für den Zeitraum an, in dem ein Systemereignis aktiv ist. Wakelocks werden durch einen roten Balken dargestellt, Jobs und Alarme werden mit einem gelben Balken und Standortereignisse durch einen helllila Balken dargestellt.

Abbildung 2 zeigt, wie der Energy Profiler und der Code-Editor für den Quellcode geöffnet sind, der für einen unveröffentlichten Wakelock verantwortlich ist.

Abbildung 2: Energy Profiler verwenden, um einen Wakelock zu finden

  1. Wählen Sie einen Zeitraum in der Energie-Zeitachse aus, um den Bereich Systemereignis zu öffnen und Details zu Ereignissen wie Wakelocks anzuzeigen.
  2. Um den Bereich Wakelock-Details zu öffnen und Details zu einem bestimmten Wakelock anzuzeigen, wählen Sie den Wakelock im Bereich Systemereignis aus.
  3. Wenn Sie den Code-Editor öffnen und zum Quellcode für einen Wakelock springen möchten, doppelklicken Sie im Bereich Wakelock-Details oben im Aufrufstack auf den Eintrag für die aufrufende Methode.
  4. Der Aufruf zum Abrufen des Wakelocks wird im Quelleditor hervorgehoben.

Die Anleitung zum Anzeigen von Details für andere Systemereignisse ist im Wesentlichen die gleiche wie für Wakelocks. Der Detailbereich enthält spezifische Informationen für jede Art von Ereignis. Im Bereich Jobdetails werden beispielsweise Aufrufstacks für die Codeabschnitte angezeigt, in denen der Job geplant und wo der Job abgeschlossen wurde.