记录应用代码执行期间调用的 Java/Kotlin 方法,可以让您查看特定时间的调用栈和 CPU 使用情况,并针对 Java/Kotlin 方法进行过滤。此数据有助于识别执行耗时长或占用大量系统资源的代码段。如果您需要包含原生调用帧在内的完整调用栈视图,请使用调用栈采样 (callstack sample) 分析任务。
当您使用 Android Studio 分析器记录 Java/Kotlin 方法时,可以选择记录类型
跟踪 (Tracing):在运行时对您的应用进行插桩,以记录每个方法调用开始和结束时的时间戳。系统会收集这些时间戳并进行比较,从而生成包含时序信息的方法跟踪数据。当您关注具体调用了哪些方法时,应使用跟踪。由于跟踪是一个非常耗资源的过程,建议在使用此选项时将记录时间控制在五秒或更短。
采样 (Sampling)(旧版):在应用执行 Java 或 Kotlin 代码期间,以固定的时间间隔捕获应用的调用栈。分析器会通过比较捕获到的数据集,推导出应用在执行 Java 或 Kotlin 代码时的时序和资源使用信息。如果您更关注时序而非具体的调用方法,则应使用采样。
Java/Kotlin 方法概览
在您运行“查找 CPU 热点”(Find CPU Hotspots) 任务后,Android Studio 分析器会提供以下信息

- CPU 使用率 (CPU Usage):按时间显示应用占用的 CPU 资源占总可用 CPU 容量的百分比。请注意,CPU 使用率不仅包含 Java/Kotlin 方法,还包含原生代码。选中时间轴上的某一段区域,可以针对该时间段的详细信息进行过滤。
- 交互 (Interactions):在时间轴上显示用户交互和应用生命周期事件。
- 线程 (Threads):显示应用运行所在的线程。在大多数情况下,您首先需要关注代表应用的最顶层线程。
若要识别耗时最长的方法或调用栈,请使用火焰图 (flame chart) 或自上而下 (top down) 图表。