TraceView
图形的形式展示执行时间、调用栈等
信息全面,包含所有线程
使用方式
1 | // 开始 |
生成的文件在sd卡:Android/data/packagename/files
解析文件
将生成的trace文件导出后,通过Android studio内置的Profile工具进行加载

快捷键:
W:放大
S:缩小
A:左移
D:右移
说明:
Thread Chart:函数调用图- 绿色:自身代码
- 橙色:系统
api - 蓝色:三方
api(包括Java API)
Flame Chart:火焰图,会把所有相同函数聚合在一起Top Down:函数调用链表Bottom up:谁调用了该函数Wall Clock Time:程序执行时间Thread Time:cpu消耗时间
新方式
新版本 Android studio 可使用 cpu profiler 捉取信息

Sample Java Methods- 频繁捕获应用的堆栈信息,对运行时性能开销较小,但有可能记录不准确
Trace Java Methods- 会记录方法的详细执行时间和CPU信息,对运行时性能开销较大
Sample C/C++ Functions- 需要
Android 8.0及以上的设备,内部使用simpleperf跟踪应用的native代码
- 需要
Trace System Calls- 需要
Android 7.0及以上的设备,捕获非常详细的应用运行和应用与系统资源交互情况
- 需要
总结
TraceView
通过代码进行埋点,可控性更高
运行时开销严重,整体都会变慢,可能会带偏优化方向
cpu profiler
- 可通过
IDE随时捕捉线程信息