Android 进阶之工具的使用 TraceView
Trace View 是Android 开发环境提供的一个性能分析工具,它能够通过图形化的方式对要分析的进程进行跟踪,并且展现的粒度可以达到方法级别。
1.使用方法
使用方法有两种
一种是通过界面的形式:
- Android Studio -> Tool -> Android -> Android Device Manger -> 打开
- 选择一个待分析的进程,点击start Method profiling 就开始工作了。
- 执行要分析的某个操作,最好是进行单个动作的分析。不要大范围的动作输入,以免增加分析的困难。
- 点击stop profiling profiling 过一小段时间就可以看得到TraceView的主视图。
一种是在代码中使用:
startMethodTracing();
stopMethodTracing();
注意这种情况下需要访问到SD卡,所以需要赋予SD卡读写权限.
运行Trace View后会生成一个.trace文件。从手机中导出这个文件
运行traceview xxx.trace 就会自动打开图形界面,就可以对这个数据进行分析了。
2.界面介绍
整个TraceView的主视图分成上下两个部分
上面是你测试进程的每个线程的时间轴,每个线程占用一行,线宽度代表了执行该函数本身操作所用的时间,
下面是捕获到的每个方法执行的各个性能指标。这里包括JDK中的方法,Android SDK中的方法,native方法以及我们自己实现的方法。
这些方法的前面有一个序号,是按照Inclu CPU时间来排序的。每点击一项就会展开成两项,一个是Children一个是Parents,分别表示这个方法中的子方法,以及当前这个方法正在被哪个方法调用。
3.重要指标
在了解重要指标之前需要先弄懂两个基本概念:
Exclusive time 表示的是该方法本身基本操作,不包括子函数调用的时间
Inclusive time 表示该方法调用所用的时间,包括子方法的调用的时间。
一些重要指标的意义:
incl CPU time: 这个方法以及这个方法的子方法的总共执行时间,以及在整个Mothod Tracing Time的百分比。
excl CPU time: 这个方法的总共执行时间,减去里面子方法的执行时间。
Call + RecurCall: 这个方法的调用次数以及递归调用的次数
CPU time call: 每次执行的时间