TraceView 简介
在 Android 开发中,UI 卡顿或性能瓶颈往往难以定位。TraceView 是 Android SDK 提供的一款经典性能分析工具,它通过图形化的方式展示程序运行时的性能数据,甚至能具体到每一个 Method 的执行耗时。
需要注意的是,TraceView 本身只负责数据的可视化分析,实际的数据采集需要依赖 Android SDK 中的 Debug 类或者借助 DDMS(Dalvik Debug Monitor Server)工具来完成。
数据采集方式
1. 使用 Debug 类
这是最直接的代码埋点方式。在需要分析的代码段前后分别调用 startMethodTracing 和 stopMethodTracing。
Debug.startMethodTracing("TestApp");
// ... 执行需要分析的业务逻辑 ...
Debug.stopMethodTracing();
注意:startMethodTracing 会阻塞当前线程直到 tracing 完成,且生成的文件默认保存在 SD 卡根目录,记得及时清理以免占用空间。
2. 利用 DDMS 工具
如果你不想修改代码,可以通过 DDMS 界面直接启动 Trace 功能。这通常用于分析整个应用的生命周期或特定进程的性能表现。

TraceView 分析界面介绍
打开 TraceView 后,界面主要分为两个核心部分:时间面板和分析面板。
- 时间面板:以树状结构展示方法调用的层级关系,直观反映调用栈的深浅。
- 分析面板:右侧区域,显示具体的性能指标统计。

TraceView 关键指标解读
在分析面板中,我们会看到一系列性能指标,理解它们对于定位问题至关重要。

其中,以下几个指标在实际排查中最常用:
- Excl CPU Time(排除 CPU 时间):该方法自身消耗的 CPU 时间,不包括其子方法调用的时间。这是判断某个方法是否'重'的核心指标。
- Calls + Recur Calls / Total(调用次数占比):该方法被调用的总次数占所有方法调用次数的比例,帮助识别高频热点。
- Cpu Time / Call(单次平均耗时):该方法每次执行的平均耗时,结合调用次数可以算出总耗时。


