Eine Anwendung wird als leistungsschwach eingestuft, wenn sie langsam reagiert, abgehackte Animationen zeigt, sich aufhängt oder zu viel Strom verbraucht. Zur Behebung von Leistungsproblemen musst du Bereiche identifizieren, in denen Ressourcen wie CPU, Arbeitsspeicher, Grafik, Netzwerk oder Geräteakku in deiner App ineffizient genutzt werden.
Verwenden Sie die in diesem Thema beschriebenen Tools und Verfahren zur Profilerstellung und zum Benchmarking, um diese Probleme zu finden und zu beheben. Techniken zum Messen der Leistung und Beispiele für die Verwendung dieser Techniken zur Lösung bestimmter Probleme finden Sie unter Leistung messen.
Android Studio bietet verschiedene Tools zur Profilerstellung, mit denen Sie potenzielle Probleme leichter erkennen und visualisieren können:
- CPU-Profiler hilft beim Aufspüren von Leistungsproblemen bei der Laufzeit.
- Arbeitsspeicher-Profiler unterstützt das Verfolgen von Arbeitsspeicherzuweisungen.
- Der Energie-Profiler zeichnet den Energieverbrauch auf, was zur Entladung des Akkus beitragen kann.
Diese Tools sind mit Android 5.0 (API-Level 21) und höher kompatibel. Weitere Informationen zu den Tools finden Sie auf den anderen Seiten in diesem Abschnitt des Nutzerhandbuchs.
Mit den Jetpack Benchmark-Bibliotheken können verschiedene wichtige Vorgänge in Ihrer Anwendung gemessen werden:
- Makro-Benchmark: Messen Sie wichtige Anwendungsfälle zur Leistung wie das Starten und Neuzeichnen von Anwendungen, die durch Aktionen wie UI-Animationen oder Scrollen ausgelöst werden.
- Mikro-Benchmark: Messen Sie die CPU-Kosten bestimmter Funktionen.
Weitere Informationen zu diesen Bibliotheken finden Sie auf der Seite Benchmarking Ihrer App.
Profilierbare Anwendungen
Profileable
ist eine in Android Q eingeführte Manifestkonfiguration. Sie kann angeben, ob der Nutzer des Geräts mithilfe von Tools wie Android Studio, Simpleperf und Perfetto für diese Anwendung ein Profil erstellen kann.
Vor dem profileable
konnten die meisten Entwickler nur ein Profil für Debug-fähige Apps auf Android erstellen, was zu erheblichen Leistungskosten führte. Diese Leistungskosten können die Ergebnisse der Profilerstellung verfälschen, insbesondere wenn sie zeitabhängig sind. In Tabelle 1 sind die Unterschiede zwischen debug-fähigen und profilfähigen Anwendungen zusammengefasst.
Funktion | Debug-fähig | Profilierbar |
---|---|---|
Speicher-Profiler | Voll |
Ja: Nein:
|
CPU-Profiler | Voll |
Ja:
Nein:
|
Netzwerk-Profiler | Ja | Nein |
Energie-Profiler | Ja | Nein |
Strom-Profiler | Ja | Ja |
Ereignisüberwachung | Ja | Nein |
Profileable
wurde eingeführt, damit Entwickler zulassen können, dass ihre Anwendungen Informationen für Profilerstellungstools freigeben, wobei sehr geringe Leistungskosten anfallen. Ein APK, für das ein Profil erstellt werden kann, ist im Wesentlichen ein Release-APK mit der Zeile <profileable android:shell="true"/>
, die im Abschnitt <application>
der Manifestdatei hinzugefügt wird.
Profilfähige App automatisch erstellen und ausführen
Sie können eine profilfähige App mit einem Klick konfigurieren, erstellen und ausführen. Für diese Funktion ist ein virtuelles oder physisches Testgerät erforderlich, auf dem API-Level 29 oder höher ausgeführt wird und auf dem Google Play installiert ist. Klicken Sie zur Verwendung der Funktion auf den Pfeil neben dem Symbol für die Profil-App und wählen Sie eine der beiden Optionen aus:
Profil „app“ mit geringem Aufwand startet die CPU- und Arbeitsspeicher-Profiler. Im Arbeitsspeicher-Profiler ist nur die Option Native Zuweisungen aufzeichnen aktiviert.
Profil „app“ mit vollständigen Daten erstellen startet die CPU-, Arbeitsspeicher- und Energie-Profiler.
Profilfähige App manuell erstellen und ausführen
Wenn Sie eine profilfähige Anwendung manuell erstellen möchten, müssen Sie zuerst eine Release-Anwendung erstellen und dann deren Manifestdatei aktualisieren. Dadurch wird die Release-Anwendung in eine profilfähige Anwendung umgewandelt. Nachdem Sie die profilfähige Anwendung konfiguriert haben, starten Sie den Profiler und wählen Sie einen profilfähigen Prozess zum Analysieren aus.
Release-App erstellen
So erstellen Sie eine Releaseanwendung zur Profilerstellung:
-
Signieren Sie Ihre Anwendung mit dem Fehlerbehebungsschlüssel. Fügen Sie dazu der Datei
build.gradle
Ihrer Anwendung die folgenden Zeilen hinzu. Wenn Sie bereits eine funktionierende Release-Build-Variante haben, können Sie mit dem nächsten Schritt fortfahren.buildTypes { release { signingConfig signingConfigs.debug } }
-
Wählen Sie in Android Studio Build > Build Variant... (Build-Variante auswählen...) und dann die Release-Variante aus.
Release in „Profilierbar“ ändern
-
Konvertieren Sie die obige Release-Anwendung in eine Anwendung, für die ein Profil erstellt werden kann. Öffnen Sie dazu die Datei
AndroidManifest.xml
und fügen Sie Folgendes in<application>
ein. Weitere Informationen finden Sie unter Anwendung für den Release erstellen.<profileable android:shell="true"/>
-
Je nach SDK-Version müssen Sie der Datei
build.gradle
der Anwendung möglicherweise die folgenden Zeilen hinzufügen.aaptOptions { additionalParameters =["--warn-manifest-validation"] }
Profil für eine Anwendung erstellen, für die ein Profil erstellt werden kann
So erstellen Sie ein Profil für eine profilfähige App:
-
Starten Sie die App im Entwicklungsemulator oder auf dem Gerät.
-
Starten Sie den Profiler in Android Studio, indem Sie Ansicht > Tool-Fenster > Profiler auswählen.
-
Klicken Sie nach dem Start der Anwendung im Profiler auf die Schaltfläche , um das Drop-down-Menü aufzurufen. Wählen Sie Ihr Gerät und dann unter Andere profilfähige Prozesse den Eintrag der Anwendung aus.
-
Der Profiler sollte eine Verbindung zur Anwendung herstellen. Nur die CPU- und Speicher-Profiler sind mit eingeschränkten Funktionen für den Speicher-Profiler verfügbar.
Sitzungen
Sie können Profiler-Daten als Sitzungen speichern. Diese werden beibehalten, bis Sie Android Studio beenden. Durch das Aufzeichnen von Profilinformationen in mehreren Sitzungen und das Wechseln zwischen ihnen können Sie die Ressourcennutzung in verschiedenen Szenarien vergleichen.
- Klicken Sie zum Starten einer neuen Sitzung auf die Schaltfläche Neue Profilerstellungssitzung starten und wählen Sie aus dem angezeigten Drop-down-Menü einen Anwendungsprozess aus.
- Wenn Sie ein Trace aufzeichnen oder einen Heap-Dump erfassen, fügt Android Studio diese Daten (zusammen mit der Netzwerkaktivität Ihrer App) als separaten Eintrag zur aktuellen Sitzung hinzu.
- Wenn Sie keine Daten mehr in die aktuelle Sitzung aufnehmen möchten, klicken Sie auf Aktuelle Profilerstellungssitzung beenden .
- Klicken Sie zum Importieren eines Trace, das aus einer früheren Ausführung von Android Studio exportiert wurde, auf Neue Profiler-Sitzung starten und wählen Sie Aus Datei laden aus.
Zusätzliche Unterstützung für ältere Geräte aktivieren (API-Level < 26)
Damit Ihnen auf einem Gerät mit Android 7.1 oder niedriger zusätzliche Profildaten angezeigt werden können, muss Android Studio Überwachungslogik in Ihre kompilierte App einfügen. Diese zusätzlichen Profildaten umfassen Folgendes:
- Die Ereigniszeitachse in allen Profiler-Fenstern
- Die Anzahl der zugewiesenen Objekte in Memory Profiler
- Ereignisse für die automatische Speicherbereinigung in Memory Profiler
- Details zu allen übertragenen Dateien in Network Profiler
So aktivieren Sie die zusätzliche Unterstützung für ältere Geräte:
- Wählen Sie Run > Edit Configurations (Ausführen > Konfigurationen bearbeiten) aus.
- Wählen Sie im linken Bereich Ihr App-Modul aus.
- Klicken Sie auf den Tab Profilerstellung und klicken Sie dann auf das Kästchen Zusätzliche Unterstützung für ältere Geräte aktivieren (API-Ebene < 26).
- Erstellen Sie Ihre Anwendung noch einmal und führen Sie sie aus.
Das Aktivieren der zusätzlichen Unterstützung für ältere Geräte verlangsamt den Build-Prozess. Sie sollten sie daher nur aktivieren, wenn Sie mit der Profilerstellung für Ihre Anwendung beginnen möchten.
Eigenständige Profiler ausführen
Mit den eigenständigen Android Studio Profilers können Sie ein Profil für Ihre App erstellen, ohne die vollständige Android Studio IDE ausführen zu müssen.
So führen Sie die eigenständigen Profiler aus:
- Stellen Sie sicher, dass der Profiler derzeit nicht in Android Studio ausgeführt wird.
Gehen Sie zum Installationsverzeichnis und zum Verzeichnis
bin
:Windows/Linux:
studio-installation-folder/bin
macOS: Die Verwendung von eigenständigen Profilern wird unter macOS nicht unterstützt.
- Führen Sie je nach Betriebssystem
profiler.exe
oderprofiler.sh
aus. Der Ladebildschirm von Android Studio wird angezeigt. Nach dem Verschwinden des Ladebildschirms wird ein Profiler-Fenster geöffnet.