Die Leistung ist ein wichtiger Aspekt bei Wear OS-Apps, da viele Wear OS-Geräte im Vergleich zu größeren Mobilgeräten nur begrenzte CPU- und GPU-Ressourcen haben. Mit der Einführung von umfangreicheren Animationen und dynamischen Effekten in Material 3 Expressive sollten Sie die Leistung der wichtigsten Arbeitsabläufe Ihrer App validieren und verbessern.
Im Leitfaden zur Leistung in Jetpack Compose erfahren Sie, wie Sie Ihre App mit Jetpack Compose für eine optimale Leistung konfigurieren und entwickeln. In diesem Dokument werden einige der dort beschriebenen Techniken vorgestellt.
Außerdem sollten Sie Strategien zur Leistungsmessung entwickeln und befolgen, um zu prüfen, ob die in diesem Dokument beschriebenen Techniken für Ihre App wie erwartet funktionieren.
Wichtige Techniken zur Leistungssteigerung
Beginnen Sie mit den wirkungsvollsten Leistungstools: Baseline-Profilen (einschließlich Startprofilen) und dem R8-Codeoptimierer.
Bevor Sie beginnen, empfehlen wir Ihnen, die Compose-Abhängigkeit auf mindestens Version 1.8 zu aktualisieren. In dieser Version wurden mehrere wichtige neue Funktionen eingeführt und die allgemeine Stabilität der Bibliothek wurde verbessert. Eine Anleitung zum Aktualisieren finden Sie unter Abhängigkeiten deklarieren. Weitere Informationen finden Sie in unserem Blogbeitrag zur Version 1.8 und im I/O-Vortrag „What’s New in Compose“.
Baseline-Profile
Baseline-Profile verwenden, um die Leistung Ihrer App zu verbessern. Gruppieren Sie die Klassen und Methoden, die die wichtigsten Workflows Ihrer App darstellen, die das System mithilfe eines Baseline-Profils vorkompilieren kann. Das kann die Startzeiten verkürzen, die Anzahl der ruckelnden Frames reduzieren und die Leistung insgesamt verbessern.
Jede Jetpack Compose-Bibliothek wird mit eigenen Profilregeln ausgeliefert. Wenn Ihre App von einer Bibliothek abhängt, werden die Profilregeln der Bibliothek automatisch zusammengeführt und mit dem APK Ihrer App zur Vorabkompilierung verteilt.
Prüfen Sie Ihre Baseline-Profile mit den folgenden Methoden:
- Verwenden Sie Makrobenchmark-Tests.
- Verwenden Sie bestimmte ADB-Befehle, um den Status der Profilkonfiguration Ihrer App zu prüfen.
Die Schritte für beide Techniken werden im Leitfaden Leistungsmessung und ‑validierung beschrieben.
Start-up-Profile
Startprofile sind eine Teilmenge von Baseline-Profilen und optimieren die darin enthaltenen Klassen und Methoden weiter, um die Startlatenz der App zu verringern.
Wenn Sie ein Startprofil hinzufügen, erhöht sich die APK-Größe Ihrer App. Bevor Sie ein Startprofil in Ihre Produktionsversion aufnehmen, sollten Sie daher die Auswirkungen auf die APK-Größe und die Startlatenz abwägen.
Wenn Sie mit der Einrichtung Ihrer Baseline-Profile vertraut sind, lesen Sie den Artikel Startup-Profil erstellen.
R8
Verwenden Sie den R8-Compiler, um Apps zu verkleinern und zu optimieren. R8 entfernt nicht verwendeten Code und nicht verwendete Ressourcen, schreibt Code neu, um die Laufzeitleistung zu optimieren, und vieles mehr.
Sehen Sie sich in den Anleitungen zur Leistungsverbesserung – Übersicht die Überlegungen zu R8 an, einschließlich der wichtigsten Schritte zum Entfernen nicht verwendeter Ressourcen.
Leistungsmessung und ‑validierung
Allgemeine Strategien zur Leistungsmessung unter Android finden Sie unter App-Leistung messen. Dieser Abschnitt enthält einige der in dieser Dokumentation beschriebenen Techniken.
Build-Variante für Messungen auswählen
Der Debug-Modus ist zwar nützlich, um viele Probleme zu erkennen, erfordert aber einen erheblichen Leistungsaufwand, verwendet keine Baseline-Profile und kann es erschweren, Code-Probleme zu erkennen, die die Leistung beeinträchtigen.
Um die Leistung Ihrer App genau zu analysieren, sollten Sie sie im Release-Modus ausführen.
Endgültige Schlussfolgerungen zur Leistung sollten Sie nur auf Grundlage von Tests ziehen, die mit Apps durchgeführt wurden, die mit Release-Build-Optionen auf echten Geräten ausgeführt werden.
Verwenden Sie beim Benchmark-Testen jedoch die Benchmark-Build-Variante, die einige wichtige Unterschiede zum Release-Debugging aufweist. Weitere Informationen finden Sie im Einrichtungsleitfaden für Macrobenchmarks.
Baseline-Profile Ihrer App validieren
Prüfen Sie zuerst den Status Ihres Profils:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
Wenn der Status nicht status=speed-profile
lautet, wurden Profilregeln noch nicht angewendet, um die App zu optimieren.
Regeln werden über einen Hintergrundjob angewendet, der ausgeführt wird, wenn das Gerät aufgeladen wird und sich im Leerlauf befindet. Sie können dies manuell auslösen, indem Sie den folgenden Befehl ausführen, nachdem die App gestartet wurde und genügend Zeit verstrichen ist, damit der Profilinstaller das Profil im Hintergrund booten kann. Das dauert in der Regel etwa 40 Sekunden.
adb shell cmd package bg-dexopt-job
Sie können den vorherigen Befehl dann noch einmal ausführen, um zu prüfen, ob der Status jetzt speed-profile
ist.
Informationen dazu, wann die Optimierung bei der Installation erfolgt, finden Sie unter Baseline-Profil per Sideloading bereitstellen.
UI Automator API
Mit der UI Automator API können Sie einzelne UI-Elemente benchmarken, wenn Sie Nutzeraktionen auf potenzielle Optimierungen untersuchen.
Dabei werden Benutzeroberflächeninteraktionen programmatisch automatisiert.
Macrobenchmark-Tests
Mit Makrobenchmarks werden größere Anwendungsfälle Ihrer App getestet, insbesondere das Starten der App und komplexe UI-Manipulationen. Implementierungsleitfaden
Ein Beispiel für die Verwendung von Makrobenchmarks zur Validierung der Leistung von Baseline-Profilen finden Sie in den Leistungsbeispielen auf GitHub.
JankStats-Bibliothek
Mit der JankStats-Bibliothek können Sie Leistungsprobleme in Anwendungen verfolgen und analysieren.
Ein Beispiel finden Sie im JankStats-Beispiel auf GitHub.
System Tracing
Mit den neuen Animationstypen, die mit Material 3 Expressive eingeführt wurden, können Sie die Funktion System Trace in Android Studio verwenden, um Latenz in potenziell problematischen Nutzeraktionen zu untersuchen und zu diagnostizieren. Anhand dieser Informationen können Sie dann den Inhalt Ihrer Baseline-Profile überprüfen und Ihren Code nach Stellen mit potenziellen Ineffizienzen durchsuchen.
Zusätzliche Tools
Neben Tools zur Leistungssteigerung gibt es weitere Tools, mit denen Entwickler ihre Produktivität und ihren Workflow verbessern können.
Android Studio-Produktivitätstools
Android Studio bietet mehrere Tools, mit denen Sie weniger Zeit für die Suche nach Möglichkeiten zur Leistungssteigerung aufwenden müssen.
Mit Tools wie Live Edit und Composable Previews können Sie beispielsweise ruckelnde Benutzeroberflächen und die zugehörigen Bereiche im Code Ihrer App identifizieren, um die Leistung zu verbessern.
Führen Sie alle finalen Leistungstests auf einer Reihe von physischen Wear OS-Geräten aus, die Ihre Zielgruppe genau repräsentieren.
Das ist besonders wichtig, wenn Sie zu Material 3 Expressive migrieren, da diese Version Funktionen wie flexible Schriftarten und Form-Morphing in Ihre App einführt.
Wenn Sie von Ansichten migrieren, sollten Sie sich unseren Migrationsleitfaden und unsere Best Practices für die Leistung von Jetpack Compose ansehen, um zu prüfen, ob die Benutzeroberflächen Ihrer App mit Jetpack Compose leistungsstark sind.
Weitere Informationen
Aktuelle Nachrichten und Videos im Leitfaden zur App-Leistung.