Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Las pilas de llamadas son útiles para identificar los hotspots de la CPU, es decir, las secciones de código que tardan mucho en ejecutarse. Las pilas de llamadas te ayudan a comprender qué parte del código se ejecutó y el motivo de la invocación.
Descripción general de la muestra de pila de llamadas
Para tomar muestras del registro de pila de llamadas, selecciona la tarea Find CPU Hotspots (Callstack Sample) en la pestaña Home del Generador de perfiles de Android Studio. Después de analizar la grabación, verás los siguientes elementos visuales:
Para complementar los cronogramas de Uso de CPU y Interacciones, la sección Subprocesos muestra fotogramas para cada llamada que realizan tu app y el sistema. A continuación, se incluyen algunas sugerencias para navegar por la muestra de la pila de llamadas:
Expande el subproceso que te interese y usa combinaciones de teclas para navegar por los marcos de pila. Haz clic en un marco de pila para obtener detalles sobre el evento y las llamadas relacionadas en el panel Análisis.
Para filtrar por ciertos tipos de marcos de pila, haz clic en Contraer marcos y marca los tipos de marcos que quieras ocultar. Si se contraen los fotogramas, se quitan de las secciones Threads y Analysis. Según tu investigación, es posible que desees contraer los fotogramas de la máquina virtual de Java (por ejemplo, android::AndroidRuntime::start y art::{...}) y el kernel del sistema (por ejemplo, [kernel.kallsyms]+{offset}). Por lo general, esto corresponde a contraer los fotogramas relacionados con [kernel.kallsyms], /apex/ y /system/*.
Dado que un programa Java/Kotlin generalmente se ejecuta a través de una máquina virtual de Java, cuando Android Studio recopila la pila de llamadas para un programa Java/Kotlin, la pila de llamadas generalmente incluye no solo el código Java/Kotlin, sino también el código nativo necesario para ejecutar el programa en sí y para que el programa se comunique con el sistema y el hardware.
Para saltar al código fuente asociado con un marco de pila, haz clic con el botón derecho en el marco y, luego, en Jump to source.
Para destacar el marco de pila asociado a un evento en la tabla de eventos, haz clic en el evento.
De forma interna, Android Studio usa simpleperf para rastrear el código nativo de tu app. Si deseas especificar opciones adicionales para Simpleperf, como muestrear CPU de dispositivos específicos o especificar duraciones de muestreo con una alta precisión, puedes usar simpleperf desde la línea de comandos.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)."]]