Eine App gilt als schlecht, wenn sie langsam reagiert, abgehackte Animationen anzeigt hängt oder verbraucht zu viel Strom. Zur Behebung von Leistungsproblemen müssen zur ineffizienten Nutzung von Ressourcen wie CPU, Arbeitsspeicher, Grafik, Netzwerk oder des Geräteakkus.
Verwenden Sie zum Finden und Beheben dieser Probleme die Profilerstellungs- und Benchmarking-Tools und -Techniken, die beschrieben in diesem Thema. Um Techniken zur Leistungsmessung zu erlernen, und Beispiele für deren Verwendung zur Lösung bestimmter Probleme erhalten Sie unter Messen Leistung.
Android Studio bietet mehrere Profilerstellungstools, mit denen Sie potenzielle Probleme finden und visualisieren können:
- Mit dem CPU-Profiler lassen sich Probleme mit der Laufzeitleistung aufspüren.
- Der Memory Profiler unterstützt das Verfolgen von Arbeitsspeicherzuweisungen.
- Der Energie-Profiler erfasst den Energieverbrauch, der zur Akkuleistung beitragen kann. Abfluss.
Diese Tools sind mit Android 5.0 (API-Level 21) und höher kompatibel. Weitere Informationen zu finden Sie auf den anderen Seiten in diesem Abschnitt des Nutzerhandbuchs.
Mit den Jetpack Benchmark-Bibliotheken kann Ihre Anwendung verschiedene wichtige Vorgänge messen:
- Makro-Benchmark: Messen Sie wichtige Anwendungsfälle für die Leistung, einschließlich Anwendungsstart. und Neuzeichnungen, die durch Aktionen wie UI-Animationen oder Scrollen ausgelöst werden.
- Mikrobenchmark: Zum Messen der CPU-Kosten bestimmter Funktionen.
Weitere Informationen zu diesen Bibliotheken finden Sie in der Benchmark App-Seite finden Sie weitere Informationen.
Profilierbare Anwendungen
Profileable
ist ein Manifest
in Android Q eingeführt. Damit kann angegeben werden, ob der Nutzer
des Geräts kann über Tools wie Android Studio, Simpleperf und
Perfekt.
Vor dem profileable
konnten die meisten Entwickler nur Profile erstellen
Debug-fähige Apps unter Android mit erheblichen Leistungskosten
als Nebeneffekt ein. Diese Leistungskosten könnten die Profilerstellungsergebnisse beeinträchtigen, insbesondere wenn sie
auf den Zeitplan bezogen. In Tabelle 1 sind die Unterschiede zwischen debug-fähigen und profilierbaren Werten zusammengefasst.
Apps.
Funktion | Debug-fähig | Profilierbar |
---|---|---|
Speicher-Profiler | Voll |
Ja: Nein:
|
CPU-Profiler | Voll |
Ja:
Nein:
|
Netzwerk-Profiler | Ja | Nein |
Energie-Profiler | Ja | Nein |
Leistungsprofiler | Ja | Ja |
Ereignismonitor | Ja | Nein |
Profileable
wurde eingeführt, damit Entwickler ihren Apps erlauben können, Informationen offenzulegen
Profiling-Tools zu verwenden, bei denen die Leistungskosten gering sind. Ein profilierbares APK
ist im Grunde ein Release-APK mit der Zeile <profileable android:shell="true"/>
.
im Abschnitt <application>
der Manifestdatei hinzugefügt.
Profilfähige Anwendung automatisch erstellen und ausführen
Sie können eine profilierbare Anwendung mit nur einem Klick konfigurieren, erstellen und ausführen. Für diese Funktion ist ein virtuelles oder physisches Testgerät, auf dem API-Level 29 oder höher ausgeführt wird und das Google Play hat. So verwenden Sie die klicken Sie auf den Pfeil neben dem Symbol für die Profil-App und wählen Sie zwischen zwei Optionen:
Profil für „App“ mit geringem Overhead startet die CPU und der Arbeitsspeicher Profiler. Im Memory Profiler Native Zuweisungen erfassen aktiviert ist.
Profil für „App“ mit vollständigen Daten die CPU, den Arbeitsspeicher und Energieprofiler
Profilfähige Anwendung manuell erstellen und ausführen
Um eine profilierbare Anwendung manuell zu erstellen, müssen Sie zuerst eine Release-Anwendung erstellen und Aktualisieren Sie dann die Manifestdatei, die die Release-Anwendung in eine profilierbare Anwendung verwandelt. Starten Sie nach der Konfiguration der profilierbaren Anwendung den Profiler und wählen Sie eine profilierbare Anwendung aus. zu analysieren.
Release-App erstellen
So erstellen Sie eine Release-Anwendung für die Profilerstellung:
-
Signieren Sie Ihre Anwendung mit dem Schlüssel zur Fehlerbehebung, indem Sie folgende Zeilen zum
build.gradle
-Datei. Wenn Sie bereits eine funktionierende Release-Build-Variante haben, fahren Sie mit dem nächsten Schritt fort.buildTypes { release { signingConfig signingConfigs.debug } }
-
Wählen Sie in Android Studio Build > Wählen Sie unter Build-Variante... die Option Release-Variante.
Release in profilierbar ändern
-
Konvertieren Sie Ihre Release-Anwendung von oben in eine profilfähige Anwendung, indem Sie die
AndroidManifest.xml
-Datei und fügen Sie Folgendes innerhalb von<application>
. Weitere Informationen finden Sie unter Anwendung für die Veröffentlichung erstellen<profileable android:shell="true"/>
-
Je nach SDK-Version müssen Sie in der Datei
build.gradle
-Datei.aaptOptions { additionalParameters =["--warn-manifest-validation"] }
Profil für eine profilierbare Anwendung erstellen
So erstellen Sie ein Profil für eine App, für die ein Profil erstellt werden kann:
-
Starten Sie die App im Entwicklungsemulator oder auf dem Gerät.
-
Starten Sie den Profiler in Android Studio, indem Sie Ansicht > Tool-Fenster > Profiler:
-
Klicken Sie nach dem Starten der Anwendung auf das Symbol im Profiler, um das Dropdown-Menü anzuzeigen. Wählen Sie Ihr Gerät und dann den unter Andere profilierbare Prozesse den Eintrag der Anwendung.
-
Der Profiler sollte an die Anwendung angehängt werden. Nur CPU- und Arbeitsspeicher-Profiler sind verfügbar. mit eingeschränkten Funktionen für den Memory Profiler.
Sitzungen
Sie können Profiler-Daten als Sitzungen speichern. Diese werden aufbewahrt, bis Sie beenden Sie Android Studio. Durch das Aufzeichnen von Profilinformationen in mehreren Sitzungen und können Sie die Ressourcennutzung in verschiedenen Szenarien vergleichen.
- Klicken Sie zum Starten einer neuen Sitzung auf die Schaltfläche Neue Profilerstellungssitzung starten. Schaltfläche „“ und wählen Sie im Drop-down-Menü einen App-Prozess aus.
- Wenn Sie Trace aufzeichnen oder erfassen: Heap-Dump hinzufügen, fügt Android Studio diese Daten (zusammen mit dem Netzwerk Ihrer App Aktivität) als separaten Eintrag für die aktuelle Sitzung hinzufügen.
- Wenn Sie der aktuellen Sitzung keine Daten mehr hinzufügen möchten, klicken Sie auf Aktuelle Sitzung beenden Profilerstellungssitzung
- Um einen Trace zu importieren, der aus einer früheren Ausführung von Android Studio exportiert wurde, klicken Sie 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)
Wenn Sie ein Gerät mit Android 7.1 oder niedriger ausführen, können Sie zusätzliche Profildaten anzeigen. Studio muss Monitoring-Logik in die kompilierte App einfügen. Zu diesen zusätzlichen Profildaten gehören: Folgendes:
- 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 zusätzliche Unterstützung für ältere Geräte:
- Wählen Sie Ausführen > Konfigurationen bearbeiten.
- Wählen Sie im linken Bereich Ihr App-Modul aus.
- Klicken Sie auf den Tab Profilerstellung und aktivieren Sie das Kontrollkästchen Zusätzliche Unterstützung für ältere Geräte (API-Level < 26).
- Erstellen Sie die Anwendung und führen Sie sie noch einmal aus.
Wenn Sie zusätzliche Unterstützung für ältere Geräte aktivieren, wird der Build-Prozess gestartet. Daher sollten Sie sie nur aktivieren, wenn Sie mit der Profilerstellung für Ihre Anwendung beginnen möchten.
<ph type="x-smartling-placeholder">Eigenständige Profiler ausführen
Mit den eigenständigen Android Studio Profilers können Sie ein Profil für Ihre App erstellen, ohne die gesamte Studio-IDE
So führen Sie die eigenständigen Profiler aus:
- Achten Sie darauf, dass der Profiler nicht in Android Studio ausgeführt wird.
Wechseln Sie in das Installationsverzeichnis und in das Verzeichnis
bin
:Windows/Linux:
studio-installation-folder/bin
macOS: Die Verwendung eigenständiger Profiler wird unter macOS nicht unterstützt.
- Führen Sie je nach Betriebssystem
profiler.exe
oderprofiler.sh
aus. Das Android- Der Ladebildschirm von Studio wird angezeigt. Nach dem Ausblenden des Ladebildschirms wird ein Profiler-Fenster geöffnet.