Mit den folgenden Best Practices können Sie Ihre App optimieren, ohne Abstriche bei der Qualität zu machen.
Baseline-Profile verwenden
Baseline-Profile können die Ausführungsgeschwindigkeit von Code ab dem ersten Start um 30% verbessern und alle Nutzerinteraktionen wie App-Start, Navigation zwischen Bildschirmen oder Scrollen durch Inhalte ab der ersten Ausführung reibungsloser gestalten. Durch die Erhöhung der Geschwindigkeit und Reaktionsfähigkeit einer App können Sie die Anzahl der aktiven Nutzer pro Tag und die durchschnittliche Rückkehrrate steigern.
Startprofil verwenden
Ein Startprofil ähnelt einem Baseline-Profil, wird aber zur Kompilierzeit ausgeführt, um das DEX-Layout für einen schnelleren App-Start zu optimieren.
App Startup-Bibliothek verwenden
Mit der App Startup-Bibliothek können Sie Komponenteninitialisierer definieren, die einen einzelnen Content-Provider verwenden, anstatt separate Content-Provider für jede Komponente zu definieren, die Sie initialisieren müssen. Dadurch kann die Startzeit der App erheblich verkürzt werden.
Bibliotheken verzögert laden oder die automatische Initialisierung deaktivieren
Apps verwenden viele Bibliotheken, von denen einige für den Start erforderlich sein können. Es gibt jedoch viele Bibliotheken, bei denen die Initialisierung bis nach dem Zeichnen des ersten Frames verzögert werden kann. Bei einigen Bibliotheken kann die automatische Initialisierung beim Start deaktiviert werden oder es gibt eine On-Demand-Initialisierung. Mit dieser Option können Sie die Initialisierung aufschieben, bis sie erforderlich ist, um die Leistung zu steigern. Sie können beispielsweise die On-Demand-Initialisierung verwenden, um WorkManager nur aufzurufen, wenn die Komponente benötigt wird.
Status in Composables verwenden
Der Status umfasst alle Daten, die sich im Laufe der Zeit ändern können und die bestimmen, was in der Benutzeroberfläche angezeigt wird oder wie sie sich verhält. Da Compose deklarativ ist, wird der Bildschirm nicht automatisch aktualisiert, es sei denn, die Benutzeroberfläche beobachtet explizit Änderungen am Status und reagiert darauf.
Verwenden Sie die bedingte Komposition, um das Laden von Teilen der Benutzeroberfläche zu verzögern, die beim Start nicht sofort sichtbar sind, z. B. Fehlerbildschirme, optionale Details oder sekundäre Tabs. Wenn Sie rechenintensive Komponenten in eine einfache Statusprüfung einbetten, vermeiden Sie, dass ihre Kompositionslogik während des kritischen Startzeitfensters ausgeführt wird. So bleibt Ihr anfängliches Layout schlank.
var shouldLoad by remember {mutableStateOf(false)}
if (shouldLoad) {
MyComposable()
}
Laden Sie die Composables im bedingten Block, indem Sie shouldLoad ändern:
LaunchedEffect(Unit) {
shouldLoad = true
}
Dadurch wird eine Neukomposition ausgelöst, die den Code im bedingten Block im ersten Snippet enthält. Weitere Informationen finden Sie unter Status in Composables.
Splash-Screen optimieren
Ladebildschirme sind ein wichtiger Bestandteil des App-Starts. Ein gut gestalteter Ladebildschirm kann dazu beitragen, den gesamten App-Start zu optimieren. In Android 12 (API‑Level 31) und höher ist ein Startbildschirm enthalten, der die Leistung verbessern soll. Weitere Informationen finden Sie unter Begrüßungsbildschirm.
Skalierbare Bildtypen verwenden
Wir empfehlen, für Bilder Vektorgrafiken zu verwenden. Wenn das nicht möglich ist, verwenden Sie WebP-Bilder. WebP ist ein Bildformat, das eine hervorragende verlustfreie und verlustbehaftete Komprimierung von Bildern im Web ermöglicht. Sie können vorhandene BMP-, JPG-, PNG- oder statische GIF-Bilder mit Android Studio in das WebP-Format konvertieren. Weitere Informationen finden Sie unter WebP-Bilder erstellen.
Außerdem sollten Sie die Anzahl und Größe der beim Start geladenen Bilder minimieren.
Leistungs-APIs verwenden
Die Leistungs-API für die Medienwiedergabe ist ab Android 12 (API-Level 31) verfügbar. Mit dieser API können Sie die Gerätefunktionen ermitteln und entsprechende Vorgänge ausführen.
Traces für Kaltstarts priorisieren
Ein Kaltstart bezieht sich auf den Neustart einer App. Der App-Prozess wird dann noch nicht vom Systemprozess erstellt. Ihre App wird in der Regel kalt gestartet, wenn Sie sie zum ersten Mal seit dem Booten des Geräts oder seit dem erzwungenen Beenden der App durch das System starten. Kaltstarts sind viel langsamer, da die App und das System mehr Arbeit leisten müssen als bei anderen Starttypen wie Warm- und Heißstarts. Mit dem System-Tracing von Kaltstarts erhalten Sie einen besseren Überblick über die App-Leistung.
Empfehlungen für Sie
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Analyse und Optimierung des App-Starts
- App-Startzeit
- Eingefrorene Frames