因最近查项目的初始化耗时问题,使用到了TraceView工具,这里就来介绍下TraceView工具的使用以及如何分析耗时。
1.TraceView的使用
TraceView的使用共有下面4步:
a.工程中加入标志TraceView开始和结束的代码:
1).在怀疑耗时的代码前加入这行代码:Debug.startMethodTracing("XX");其中XX是trace文件的名称,该文件自动存于手机的/sdcard/目录下,所以没有sdcard或sdcard损坏的手机无法使用该功能。
2).在怀疑耗时的代码后加入这行代码:Debug.stopMethodTracing();
以项目的初始化耗时为例就是:
在项目初始化前调用开始trace的方法,而停止trace的方法放到onDestory()方法中,这样就能获取更多方法的耗时。其实google推荐的比这个更广:
开始看到google的推荐做法是在onCreate中开始trace,在onDestory中结束trace,这样基本就能获取所有的方法的耗时了。
b.运行工程并正常结束工程:
运行工程是为了生成trace文件,其自动存于/sdcard/目录下。
c.拷贝/sdcard/XX.trace文件到电脑上:
电脑上的路径随意,我以E:\temp\为例,那么我的文件路径就是E:\temp\XX.trace。
d.命令行进入Android SDK目录的tools目录下:
运行:traceview E:\temp\XX.trace.就会出现类似如下的窗口:
2.分析过程
这里,也告诉我们尽量不要在初始化方法中做比较复杂的事情,因为初始化方法一般都是在Application中调的(尤其像SDK这种的),事情做得过多就会导致应用启动很慢。所以不必要的事情可以延时在处理,尽量不影响应用启动。
按照所说的方法,多试几次大家就会发现TraceView是一个非常简单实用的工具。