Jetpack Compose bietet von Haus aus eine hervorragende Leistung. Konfigurieren Sie Ihre App anhand von Best Practices, um häufige Fehler zu vermeiden und die Leistung Ihrer Compose-Anwendung zu optimieren.
Android-Fähigkeiten
Auf GitHub ansehenJetpack Compose-Leistung
android skills add jetpack-compose-performanceBenchmarking für Jetpack Compose
Um die Leistung von Jetpack Compose im Vergleich zu Ansichten zu validieren, verwenden wir Hero-Benchmarks. Das sind Benchmarks, die sich auf wichtige, reale User Journeys konzentrieren, z. B. 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 in Bezug auf Ruckler beim Scrollen erreichen.
Weitere Messwerte und Informationen zu unseren Methoden finden Sie unter Hero-Benchmarks.
Wichtige Konzepte
Dies sind einige der wichtigsten Konzepte für die Leistung in Compose:
- Phasen: Es ist wichtig, die Phasen der Komposition, des Layouts und des Zeichnens zu verstehen, um die Aktualisierung der Benutzeroberfläche durch Compose zu optimieren.
- Baseline-Profile: Diese Profile kompilieren wichtigen Code vorab, was zu schnelleren App-Starts und reibungsloseren Interaktionen führt.
- Stabilität: Hier erfahren Sie, wie Compose Parameter während der Neuzusammensetzung vergleicht, damit Sie unnötige Arbeit vermeiden können, ohne teure Gleichheitsprüfungen einzuführen.
App richtig konfigurieren
Wenn die Leistung Ihrer App schlecht ist, liegt möglicherweise ein Konfigurationsproblem vor. Ein guter erster Schritt ist, die folgenden Konfigurationsoptionen zu prüfen:
- Im Releasemodus mit R8 erstellen:Versuchen Sie, Ihre App im Releasemodus auszuführen. Der Debug-Modus ist nützlich, um viele Probleme zu erkennen, beeinträchtigt jedoch die Leistung und kann es erschweren, andere Probleme zu erkennen. Außerdem sollten Sie 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 Code für wichtige Nutzerpfade vorkompiliert wird. Compose enthält ein Standardprofil, aber idealerweise sollten Sie auch ein App-spezifisches Profil erstellen. Weitere Informationen zu Baseline-Profilen in der allgemeinen Dokumentation zur Android-Leistung
Tools
Machen Sie sich mit den Tools vertraut, mit denen Sie die Leistung Ihrer Compose-App messen und analysieren können.
Best Practices
Beachten Sie bei der Entwicklung Ihrer App mit Compose die folgenden Best Practices:
- Aufwendige Berechnungen vermeiden: Verwenden Sie
remember, um die Ergebnisse aufwendiger Berechnungen im Cache zu speichern. - Lazy Layouts unterstützen: Geben Sie stabile
key- undcontentType-Parameter für Lazy Layouts an, um unnötige Neuzusammensetzungen zu minimieren und die Wiederverwendung von Slots zu ermöglichen. - Unnötige Neuzusammensetzungen begrenzen: Verwenden Sie
computedStateOf(in Compose 1.13 und höher) oderderivedStateOf, um Neuzusammensetzungen beim Lesen von sich schnell ändernden Zuständen zu begrenzen. - Zustandslesevorgänge verzögern: Verzögern Sie Zustandslesevorgänge so lange wie möglich, indem Sie sie in Lambda-Funktionen verpacken.
- Lambda-Modifikatoren zum Ändern des Status verwenden: Verwenden Sie Lambda-basierte Modifikatoren wie
Modifier.offset { ... }für häufig wechselnde Statusvariablen. - Rückwärtsschreiben vermeiden: Schreiben Sie niemals in einen Status, der bereits in einer zusammensetzbaren Funktion gelesen wurde.
Weitere Informationen finden Sie im Leitfaden zu Best Practices.
Aufrufe
Wenn Sie mit Ansichten statt mit Compose arbeiten, lesen Sie den speziellen Leitfaden Layoutleistung verbessern.
Zusätzliche Ressourcen
- Leitfaden zur App-Leistung: Hier finden Sie Best Practices, Bibliotheken und Tools zur Verbesserung der Leistung unter Android.
- Leistung prüfen: Hier können Sie die App-Leistung prüfen.
- Benchmarking:Benchmark-Analyse zur App-Leistung
- App-Start:Optimieren Sie den App-Start.
- Baseline-Profile: Informationen zu Baseline-Profilen.