Sie können potenzielle Engpässe identifizieren und die Gesamtleistung der App verbessern, indem Sie die Geräteaktivität über einen kurzen Zeitraum aufzeichnen und Traces der Startphase Ihrer App erfassen. Auf dieser Seite wird beschrieben, wie Sie Ihre Umgebung für Leistungstests einrichten.
MacroBenchmark-Bibliothek verwenden
Die MacroBenchmark-Bibliothek erfasst umfangreichere Endnutzerinteraktionen wie Start, Interaktion mit der Benutzeroberfläche und Animationen. Die Bibliothek bietet die direkte Kontrolle über die Leistungsumgebung, die Sie testen. Damit können Sie das Kompilieren, Starten und Beenden Ihrer Anwendung steuern, um die genaue Startzeit der Anwendung direkt zu messen. Außerdem werden dadurch das Rauschen und die Unterschiede zwischen den Testläufen minimiert.
Geräte der mittleren Preisklasse verwenden, um potenzielle Leistungsprobleme zu erkennen
Teste die Leistung auf allen relevanten Gerätetypen. High-End-Geräte mit schnellen Komponenten können Leistungsprobleme auf Geräten mit älteren, langsameren oder langsamen RAM-Geräten verdecken. Auf Low-End-Geräten kann das Laden von Daten oder das Ausführen von Code länger dauern, sodass Engpässe leichter identifiziert werden können. Die Leistungsoptimierung für Low-End-Geräte wird normalerweise auch für High-End-Geräte von Vorteil.
Geräusche reduzieren
- Netzwerk: Testen Sie Ihre Apps oder Prozesse mit starken und stabilen Internet-WLAN-Geschwindigkeiten. Wenn die Startzeit der Anwendung eine Netzwerkanfrage enthält, kann dies zu Schwankungen führen.
- RAM-Nutzung: Während des Testens der App-Startleistung sollten keine anderen Apps im Hintergrund des Geräts ausgeführt werden.
- Akku: Achte darauf, dass dein Gerät aufgeladen ist, um eine hardwarespezifische Leistungsdrosselung mit geringem Energieverbrauch zu vermeiden.
Release-Builds testen
Teste die Leistung mit Release-Builds. Debug-Builds sind nicht für das Debuggen der Leistung geeignet, da sie keine Kompilierungsoptimierung ermöglichen und die Leistung erheblich beeinträchtigen.
Es ist jedoch in Ordnung, einen nicht verschleierten Release-Build zu verwenden, um Klassen und Vorgangsnamen zu identifizieren. Wir empfehlen insbesondere, Minify (R8) zu aktivieren und die Verschleierung mit -dontobfuscate
in der Proguard-Datei zu deaktivieren.
Es ist einfacher, Layouts, Assets und Ressourcen zu identifizieren, wenn der Build nicht verschleiert ist.
Fügen Sie das Flag profileable in das Manifest ein, damit Ihre benutzerdefinierten Ereignisse in Builds sichtbar sind, die sich nicht debuggen lassen. Dieses Flag ist ab Android 10 (API-Level 29) verfügbar.
Anwendungsvorgängen benutzerdefinierte Traces hinzufügen
Fügen Sie Ihrer Anwendung benutzerdefinierte Traces hinzu, damit Sie leichter erkennen können, welche Vorgänge von Ihrer Anwendung im Vergleich zu anderen Bibliotheken ausgeführt werden. So erhalten Sie jederzeit mehr Kontext darüber, was die App gerade tut.