Wenn Sie die Java-/Kotlin-Methoden aufzeichnen, die während der Ausführung des Codes Ihrer App aufgerufen werden, können Sie den Callstack und die CPU-Nutzung zu einem bestimmten Zeitpunkt sehen, gefiltert nach Java-/Kotlin-Methoden. Diese Daten sind nützlich, um Codeabschnitte zu identifizieren, deren Ausführung lange dauert oder die viele Systemressourcen beanspruchen. Wenn Sie den gesamten Callstack einschließlich der nativen Callframes sehen möchten, verwenden Sie die Profiling-Aufgabe Callstack-Beispiel.
Wenn Sie Java-/Kotlin-Methoden mit dem Android Studio-Profiler aufzeichnen, können Sie den Aufzeichnungstyp auswählen:
Tracing: Instrumentiert Ihre App zur Laufzeit, um am Anfang und Ende jedes Methodenaufrufs einen Zeitstempel aufzuzeichnen. Zeitstempel werden erfasst und verglichen, um Daten zur Methodenverfolgung zu generieren, einschließlich Zeitinformationen. Sie sollten Tracing verwenden, wenn Sie wissen möchten, welche Methoden genau aufgerufen werden. Da das Tracing ein intensiver Prozess ist, sollten Sie bei Verwendung dieser Option Ihre Aufnahme auf etwa fünf Sekunden oder weniger beschränken.
Sampling (Legacy): Erfasst den Callstack Ihrer App in regelmäßigen Abständen während der Ausführung des Java- oder Kotlin-basierten Codes Ihrer App. Der Profiler vergleicht erfasste Datensätze, um Informationen zu Zeit und Ressourcennutzung für die Ausführung von Java- oder Kotlin-basiertem Code in Ihrer App abzuleiten. Sampling ist sinnvoll, wenn Sie mehr Wert auf das Timing als auf die genauen Methoden legen, die aufgerufen werden.
Übersicht über Java-/Kotlin-Methoden
Nachdem Sie den Task CPU-Hotspots suchen ausgeführt haben, stellt der Android Studio Profiler die folgenden Informationen bereit:
- CPU-Auslastung: Zeigt die CPU-Auslastung Ihrer App als Prozentsatz der insgesamt verfügbaren CPU-Kapazität im Zeitverlauf an. Die CPU-Auslastung umfasst nicht nur Java-/Kotlin-Methoden, sondern auch nativen Code. Markieren Sie einen Abschnitt der Zeitachse, um die Details für diesen Zeitraum zu filtern.
- Interaktionen: Hier werden Nutzerinteraktionen und App-Lebenszyklus-Ereignisse auf einer Zeitachse dargestellt.
- Threads: Hier werden die Threads angezeigt, auf denen Ihre App ausgeführt wird. In den meisten Fällen sollten Sie sich zuerst auf den obersten Thread konzentrieren, der Ihre App repräsentiert.
Verwenden Sie das Flammendiagramm oder das Top-down-Diagramm, um die Methoden oder Callstacks zu ermitteln, die am meisten Zeit in Anspruch nehmen.