Jetpack Compose-Leistung unter Wear OS

Die Leistung ist ein wichtiger Faktor für 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 in diesem Leitfaden beschriebenen Techniken vorgestellt.

Erstellen Sie Strategien zur Leistungsmessung und folgen Sie ihnen, um zu prüfen, ob diese Techniken für Ihre App wie erwartet funktionieren.

Wichtige Techniken zur Leistungssteigerung

Beginnen Sie mit den effektivsten Leistungstools: Baseline-Profilen (einschließlich Startprofilen) und dem R8-Codeoptimierer.

Aktualisieren Sie die Compose-Abhängigkeit auf Version 1.8 oder höher. In dieser Version wurden mehrere wichtige neue Funktionen eingeführt und die allgemeine Stabilität der Bibliothek wurde verbessert. Eine Anleitung dazu finden Sie unter Abhängigkeiten deklarieren. Weitere Informationen finden Sie in unserem Blogpost zur Version 1.8 und im I/O-Vortrag zu Neuerungen in Compose.

Baseline-Profile

Um die Leistung Ihrer App zu verbessern, können Sie Baseline-Profile verwenden. Gruppieren Sie die Klassen und Methoden, die die wichtigsten Arbeitsabläufe 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 Konfigurationsstatus des Profils Ihrer App zu validieren. 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 reduzieren.

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.

Lesen Sie zuerst 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.

Lesen Sie in den Anleitungen unter Leistung verbessern – Übersicht die Überlegungen zu R8, 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. In diesem Abschnitt werden einige der in dieser Dokumentation beschriebenen Techniken erläutert.

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 sich auf die Leistung auswirken.

Um die Leistung Ihrer App genau zu analysieren, führen Sie sie im Release-Modus aus.

Endgültige Schlussfolgerungen zur Leistung sollten nur aus Tests gezogen werden, die mit Apps durchgeführt wurden, die mit Release-Build-Optionen und auf echten Geräten ausgeführt werden.

Verwenden Sie für Benchmarktests jedoch die Benchmark-Build-Variante, die sich in einigen wichtigen Punkten vom Release-Debugging unterscheidet. 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. Um dies manuell auszulösen, führen Sie den folgenden Befehl aus, nachdem die App gestartet wurde und genügend Zeit vergangen ist, damit das Profil im Hintergrund eingerichtet werden kann. Dieser Vorgang dauert in der Regel etwa 40 Sekunden.

adb shell cmd package bg-dexopt-job

Führen Sie dann den vorherigen Befehl noch einmal aus, um zu prüfen, ob der Status speed-profile ist.

Informationen zu Situationen, in denen die Optimierung bei der Installation erfolgt, finden Sie unter Baseline-Profil per Sideloading installieren.

UI Automator API

Mit der UI Automator API lassen sich Interaktionen programmatisch automatisieren. Mit dieser API können Sie einzelne UI-Elemente vergleichen, wenn Sie Nutzerpfade auf potenzielle Optimierungen untersuchen.

Macrobenchmark-Tests

Mit Makrobenchmarks werden größere Anwendungsfälle Ihrer App getestet, insbesondere das Starten der App und komplexe UI-Manipulationen. Weitere Informationen finden Sie im 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 die Latenz in potenziell problematischen Nutzerpfaden zu untersuchen und zu diagnostizieren. Mit diesen Informationen können Sie den Inhalt Ihrer Baseline-Profile überprüfen und potenzielle Ineffizienzen in Ihrer Codelogik identifizieren.

Zusätzliche Tools

Zusätzlich zu den Tools zur Leistungssteigerung können Sie auch andere Tools verwenden, um Ihre Produktivität und Ihren Workflow zu verbessern.

Android Studio-Produktivitätstools

Android Studio bietet mehrere Tools, mit denen Sie den Zeitaufwand für die Identifizierung von Leistungsverbesserungen reduzieren können.

Mit Tools wie Live Edit und Composable Previews können Sie beispielsweise ruckelnde UI-Elemente sowie 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.