Profil der App-Leistung erstellen

Eine App hat eine schlechte Leistung, wenn sie langsam reagiert, ruckelige Animationen zeigt, einfriert oder zu viel Strom verbraucht. Zur Behebung von Leistungsproblemen müssen Sie Ihre App profilieren oder Bereiche ermitteln, in denen Ihre App Ressourcen wie CPU, Arbeitsspeicher, Grafik oder Akku des Geräts ineffizient nutzt. In diesem Thema werden die Android Studio-Tools und -Methoden beschrieben, mit denen sich häufige Leistungsprobleme beheben lassen.

Informationen zum Ausführen eigenständiger Profiler ohne die gesamte Android Studio IDE (nur Windows oder Linux) finden Sie unter Eigenständigen Profiler ausführen.

Voraussetzungen

Für das Erstellen eines App-Profils empfehlen wir Folgendes:

  • Eine App mit einer Release-Build-Variante, für die die Manifestkonfiguration profileable aktiviert ist. Diese Apps werden auch als profilierbare Apps bezeichnet. Standardmäßig ist diese Konfiguration für Apps auf „wahr“ gesetzt. Wenn Sie diese Konfiguration prüfen oder ändern möchten, öffnen Sie die Manifest- oder AndroidManifest.xml-Datei Ihrer App und suchen Sie im Abschnitt <application> nach der Manifestkonfiguration profileable:

    <profileable android:shell="true" />
    
  • Ein virtuelles oder physisches Testgerät mit API-Level 29 oder höher und Google Play

  • Android Gradle Plugin 7.3 oder höher

Apps, die profiliert werden können, und Apps, die debuggt werden können

Mit einer profilierbaren App können Sie die meisten gängigen Profiling-Aufgaben ausführen. Wenn Sie jedoch Java-/Kotlin-Allokationen aufzeichnen oder einen Heap-Dump erfassen möchten, sollten Sie stattdessen eine debuggbare App verwenden. Wenn Sie einen debuggbaren App-Prozess und ein Gerät mit API-Level 26 oder höher verwenden, können Sie in den entsprechenden Aufgabenansichten auch die Zeitachse Interaktion aufrufen. Dort werden Nutzerinteraktionen und Ereignisse des App-Lebenszyklus angezeigt.

Eine debugfähige App basiert auf der debug-Buildvariante Ihrer App und ermöglicht die Verwendung von Entwicklungstools wie dem Debugger. Dies geht jedoch mit einigen Leistungseinbußen einher. Eine App, die sich profilieren lässt, basiert auf der release-Buildvariante Ihrer App und ermöglicht eine Reihe gängiger Profiling-Aufgaben ohne den Leistungsoverhead des Debug-Builds.

App erstellen und ausführen, die profiliert werden kann

So erstellen und führen Sie eine App, die sich profilieren lässt, in Android Studio aus:

  1. Erstellen Sie eine Ausführungs-/Debug-Konfiguration, falls Sie noch keine haben.
  2. Wählen Sie die Release-Buildvariante aus (Build > Buildvariante auswählen).
  3. Klicken Sie auf Weitere Aktionen > Profil „app“ mit geringem Overhead oder Profil „app“ mit vollständigen Daten („app“ ist der Name der Ausführungskonfiguration und kann bei Ihnen variieren). Informationen zur Auswahl zwischen den beiden Optionen finden Sie unter Anforderungen. Die App wird auf Ihrem Testgerät geöffnet und der Bereich Profiler wird in Android Studio geöffnet.

Wenn diese Anleitung nicht funktioniert, lesen Sie den Hilfeartikel Profilierbare App manuell erstellen und ausführen.

Profiling starten

So starten Sie eine Profilierungsaufgabe:

  1. Wählen Sie im Bereich Profiler auf dem Tab Start einen Prozess aus der Liste aus. In den meisten Fällen sollten Sie den obersten Prozess auswählen, der Ihre App darstellt.

    Tab „Startseite“ des Profilers
  2. Wählen Sie im Bereich Aufgaben eine Profiling-Aufgabe aus. Weitere Informationen zu den Aufgaben finden Sie auf den anderen Seiten in diesem Abschnitt. Nicht alle Profiling-Aufgaben sind für jeden Prozess verfügbar. Wenn Sie nicht wissen, wo Sie anfangen sollen, können Sie sich einen Überblick über die Leistungsaktivitäten verschaffen, indem Sie Ihre App live prüfen.

  3. Wählen Sie im Drop-down-Menü Profiler-Aufgabe starten von aus, ob die Profiler-Aufgabe beim Starten gestartet oder dem laufenden Prozess angehängt werden soll. Wenn Sie die Startzeit Ihrer App verbessern oder einen Prozess erfassen möchten, der beim Start der App ausgeführt wird, sollten Sie den Start einbeziehen. Andernfalls können Sie mit dem Profiling im aktuellen Zustand Ihrer App beginnen.

  4. Klicken Sie auf Profiler-Aufgabe starten. Die Aufgabe wird in einem eigenen Tab gestartet.

  5. Interagieren Sie mit Ihrer App, damit Aktivitäten ausgelöst werden.

  6. Beenden Sie gegebenenfalls die Aufzeichnung, warten Sie, bis die Daten analysiert wurden, und sehen Sie sich die Ergebnisse an.

Traces vergleichen, exportieren und importieren

Wenn Sie eine Profiling-Aufgabe beenden, wird sie automatisch auf dem Tab Frühere Aufzeichnungen im Bereich Profiler gespeichert. Anhand dieser aufgezeichneten Daten können Sie die Ressourcennutzung in verschiedenen Szenarien vergleichen. Die Aufnahmen werden für die Dauer der aktuellen Android Studio-Sitzung gespeichert. Wenn Sie sie länger aufbewahren möchten, exportieren Sie sie, indem Sie auf Aufnahme exportieren klicken. Nicht alle Trace-Typen können exportiert werden.

Wenn Sie einen Trace importieren möchten, z. B. aus einem vorherigen Android Studio-Lauf, klicken Sie auf dem Tab Frühere Aufzeichnungen auf Aufzeichnung importieren und wählen Sie die Tracedatei aus. Sie können eine Datei auch per Drag-and-drop in das Android Studio-Editorfenster ziehen.

Aufnahmekonfiguration bearbeiten

Klicken Sie auf die Profiler-Einstellungen , um die Konfiguration der Aufzeichnung von Profiler-Aufgaben zu bearbeiten. Es gibt zwei Haupteinstellungen, die Sie aktivieren oder deaktivieren können:

  • Bei Aufgaben mit Stichprobenerhebung gibt das Abtastintervall die Zeit zwischen den einzelnen Stichproben an. Je kürzer das Intervall ist, desto schneller wird die maximale Dateigröße für die aufgezeichneten Daten erreicht.
  • Die maximal zulässige Dateigröße gibt die Datenmenge an, die auf das verbundene Gerät geschrieben werden kann. Wenn Sie die Aufzeichnung beenden, werden diese Daten von Android Studio analysiert und im Profilerfenster angezeigt. Wenn Sie das Limit erhöhen und eine große Menge an Daten erfassen, dauert es in Android Studio viel länger, die Datei zu parsen, und das Programm reagiert möglicherweise nicht mehr.