Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Callstacks sind nützlich, um CPU-Hotspots zu identifizieren, also Codeabschnitte, deren Ausführung lange dauert. Mithilfe von Callstacks können Sie nachvollziehen, welcher Teil des Codes ausgeführt wurde und warum er aufgerufen wurde.
Zur Ergänzung der Zeitachse für CPU-Nutzung und Interaktionen werden im Bereich Threads Frames für jeden Aufruf angezeigt, den Ihre App und das System ausführen. Hier sind einige Tipps zur Navigation im Callstack-Beispiel:
Maximieren Sie den gewünschten Thread und verwenden Sie Tastenkombinationen, um durch die Stackframes zu navigieren. Klicken Sie auf einen Stapelframe, um im Bereich Analyse Details zum Ereignis und zugehörigen Aufrufen zu erhalten.
Wenn Sie nach bestimmten Arten von Stackframes filtern möchten, klicken Sie auf Frames minimieren und setzen Sie ein Häkchen bei den Frametypen, die Sie ausblenden möchten. Wenn Sie Frames minimieren, werden sie sowohl aus dem Bereich Threads als auch aus dem Bereich Analyse entfernt. Je nach Untersuchung kann es sinnvoll sein, Frames aus der Java Virtual Machine (z. B. android::AndroidRuntime::start und art::{...}) und dem Systemkernel (z. B. [kernel.kallsyms]+{offset}) zu minimieren. Normalerweise entspricht das dem Minimieren von Frames, die mit [kernel.kallsyms], /apex/ und /system/* zusammenhängen.
Da ein Java-/Kotlin-Programm in der Regel über eine Java Virtual Machine ausgeführt wird, enthält der Callstack, den Android Studio für ein Java-/Kotlin-Programm erfasst, in der Regel nicht nur den Java-/Kotlin-Code, sondern auch den nativen Code, der für die Ausführung des Programms selbst und für die Kommunikation des Programms mit dem System und der Hardware erforderlich ist.
Wenn Sie zum Quellcode eines Stackframes springen möchten, klicken Sie mit der rechten Maustaste auf den Frame und dann auf Zum Quellcode springen.
Wenn Sie den mit einem Ereignis verknüpften Stackframe in der Ereignistabelle hervorheben möchten, klicken Sie auf das Ereignis.
Intern verwendet Android Studio simpleperf, um den nativen Code Ihrer App zu analysieren. Wenn Sie zusätzliche Optionen für Simpleperf angeben möchten, z. B. das Sampling bestimmter Geräte-CPUs oder das Festlegen von Sampling-Dauern mit hoher Genauigkeit, können Sie Simpleperf über die Befehlszeile verwenden.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Sample the callstack\n\nCallstacks are useful for identifying *CPU hot spots*, or sections of code that\ntake a long time to execute. Callstacks help you understand which part of the\ncode has been executed, and why it was invoked.\n| **Note:** To sample the callstack, you must deploy your app to a device running Android 8.0 (API level 26) or higher.\n\nCallstack sample overview\n-------------------------\n\nTo sample the callstack,\n[select the **Find CPU Hotspots (Callstack Sample)** task](/studio/profile#start-profiling)\nfrom the Android Studio Profiler **Home** tab. After the recording is parsed you\nsee the following visuals:\n\nTo supplement the\n[**CPU Usage** and **Interactions** timelines](/studio/profile/cpu-profiler),\nthe **Threads** section shows frames for every call that your app and the system\nmakes. Here are some tips for navigating the callstack sample:\n\n- Expand the thread of interest and use [keyboard shortcuts](/studio/profile/cpu-profiler#ui-shortcuts) to navigate the stack frames. Click a stack frame to get details about the event and related calls in the **Analysis** pane.\n- To filter to certain types of stack frames, click **Collapse frames** and check the frame types you want to hide. Collapsing frames removes them from both the **Threads** and **Analysis** sections. Depending on your investigation, you might want to collapse frames from the Java virtual machine (for example `android::AndroidRuntime::start` and `art::{...}`), and the system kernel (for example `[kernel.kallsyms]+{offset}`). Usually this corresponds to collapsing frames related to `[kernel.kallsyms]`, `/apex/`, and `/system/*`.\n\nBecause a Java/Kotlin program typically executes through a Java virtual machine,\nwhen Android Studio collects the callstack for a Java/Kotlin program, the\ncallstack usually includes not just the Java/Kotlin code but also the native\ncode required to run the program itself and for the program to talk with the\nsystem and hardware.\n\n- To jump to the source code associated with a stack frame, right-click the frame and click **Jump to source**.\n- To highlight the stack frame associated with an event in the event table, click the event.\n\nFor information about the other visuals, see\n[Record a system trace](/studio/profile/cpu-profiler) and the\n[chart glossary](/studio/profile/chart-glossary/flame-chart).\n\nSample native code using the command line\n-----------------------------------------\n\nInternally, Android Studio uses [simpleperf](/ndk/guides/simpleperf) to trace\nyour app's native code. If you want to specify additional options for\nSimpleperf, such as sampling specific device CPUs or specifying sampling\ndurations at a high accuracy, you can\n[use simpleperf from the command line](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/doc/README.md)."]]