Jetpack Compose bietet von Haus aus eine hervorragende Leistung. Konfiguriere deine App anhand von Best Practices, um häufige Fehler zu vermeiden und die Leistung deiner Compose-Anwendung zu optimieren.
Benchmark-Analyse von Jetpack Compose
Um die Leistung von Jetpack Compose mit der von Views zu vergleichen, verwenden wir Hero-Benchmarks. Diese konzentrieren sich auf wichtige, realistische Nutzerpfade wie den Kaltstart einer App oder das Scrollen durch eine Liste oder ein Raster mit Bildern. Wir führen diese Benchmarks mit der Open-Source-App Pokedex durch und vergleichen die Implementierungen von Views und Compose.
Diese Benchmarks zeigen, dass Compose 1.9 und höher die Leistung von Views bei Rucklern beim Scrollen erreicht.
Weitere Messwerte und Informationen zu unseren Methoden findest du unter Hero Benchmarks.
Wichtige Konzepte
Hier sind einige der wichtigsten Konzepte für die Leistung in Compose:
- Phasen: Das Verständnis der Phasen für Komposition, Layout und Zeichnen ist entscheidend, um zu optimieren, wie Compose die UI aktualisiert.
- Baseline-Profile: Diese Profile vorkompilieren wichtigen Code, was zu schnelleren App-Starts und reibungsloseren Interaktionen führt.
- Stabilität: Erhöhe die Stabilität deiner App, um unnötige Neukompositionen effizienter zu überspringen und so die Leistung zu verbessern.
App richtig konfigurieren
Wenn die Leistung deiner App schlecht ist, liegt möglicherweise ein Konfigurationsproblem vor. Ein guter erster Schritt ist, die folgenden Konfigurationsoptionen zu prüfen:
- Im Release-Modus mit R8 erstellen: Versuche, deine App im Release Modus auszuführen. Der Debug-Modus ist nützlich, um viele Probleme zu erkennen, aber er verursacht Leistungseinbußen und kann es erschweren, andere Probleme zu finden. Du solltest auch die Optimierung und Verkleinerung mit dem R8-Compiler aktivieren, um einen leistungsstarken und effizienten Release-Build zu erhalten.
- Baseline-Profile verwenden:Baseline-Profile verbessern die Leistung, indem sie Code für kritische Nutzerpfade vorkompilieren. Compose enthält ein Standardprofil, aber idealerweise solltest du auch ein appspezifisches Profil erstellen. Weitere Informationen zu Baseline-Profilen findest du in der allgemeinen Android-Dokumentation zur Leistung.
Tools
Mache dich mit den Tools vertraut, mit denen du die Leistung deiner Compose-App messen und analysieren kannst.
Best Practices
Beachte bei der Entwicklung deiner App mit Compose die folgenden Best Practices:
- Aufwendige Berechnungen vermeiden: Verwende
remember, um die Ergebnisse aufwendiger Berechnungen im Cache zu speichern. - **Lazy Layouts unterstützen**: Gib stabile Schlüssel für Lazy Layouts mit dem
keyParameter an, um unnötige Neukompositionen zu minimieren. - Unnötige Neukompositionen begrenzen: Verwende
derivedStateOf, um Neukompositionen bei schnellen Zustandsänderungen zu begrenzen. - Zustandslesevorgänge verzögern: Verzögere Zustandslesevorgänge so lange wie möglich, indem du sie in Lambda-Funktionen einbindest.
- Lambda-Modifikatoren zum Ändern des Zustands verwenden: Verwende lambdabasierte
Modifikatoren wie
Modifier.offset { ... }für häufig geänderte Zustands variablen. - **Rückwärtsschreibvorgänge vermeiden**: Schreibe niemals in einen Zustand, der bereits in einem Composable gelesen wurde.
Weitere Informationen findest du im Best Practices-Leitfaden.
Aufrufe
Wenn du mit Views anstelle von Compose arbeitest, lies die Anleitung Layoutleistung verbessern.
Zusätzliche Ressourcen
- Leitfaden zur App-Leistung: Best Practices, Bibliotheken und Tools zur Verbesserung der Leistung unter Android.
- App-Leistung prüfen: App-Leistung prüfen.
- Benchmarking: App-Leistung benchmarken.
- App-Start: App-Start optimieren.
- Baseline-Profile: Informationen zu Baseline-Profilen.