Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
As pilhas de chamadas são úteis para identificar pontos críticos da CPU ou seções de código que
demoram muito para serem executadas. As pilhas de chamadas ajudam você a entender qual parte do
código foi executada e por que ela foi invocada.
Para complementar as linhas do tempo de uso da CPU e interações, a seção Linhas de execução mostra frames para cada chamada feita pelo app e pelo sistema. Confira algumas dicas para navegar pela amostra de callstack:
Expanda a linha de execução de interesse e use
atalhos de teclado
para navegar pelos frames de pilha. Clique em um frame de pilha para ver detalhes sobre o evento e as chamadas relacionadas no painel Análise.
Para filtrar determinados tipos de frames de pilha, clique em Reduzir frames e marque os tipos que você quer ocultar. Ao recolher frames, eles são removidos das seções Threads e Analysis. Dependendo da sua investigação, talvez seja interessante recolher frames da máquina virtual Java (por exemplo, android::AndroidRuntime::start e art::{...}) e do kernel do sistema (por exemplo, [kernel.kallsyms]+{offset}). Normalmente, isso corresponde a recolher frames relacionados a [kernel.kallsyms], /apex/ e /system/*.
Como um programa Java/Kotlin normalmente é executado em uma máquina virtual Java,
quando o Android Studio coleta a pilha de chamadas de um programa Java/Kotlin, ela
inclui não apenas o código Java/Kotlin, mas também o código
nativo necessário para executar o programa e para que ele se comunique com o
sistema e o hardware.
Para acessar o código-fonte associado a um frame de pilha, clique com o botão direito do mouse no
frame e clique em Acessar origem.
Para destacar o frame de pilha associado a um evento na tabela de eventos, clique nele.
Exemplo de código nativo usando a linha de comando
Internamente, o Android Studio usa o simpleperf para rastrear o código nativo do seu app. Caso queira especificar mais opções para
o Simpleperf, como amostragem de CPUs específicas do dispositivo ou especificação de durações de amostragem
com alta precisão, use o Simpleperf na linha de comando.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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)."]]