Android性能(时间)分析工具-TraceView的使用

来源:互联网 发布:淘宝教程我要自学网 编辑:程序博客网 时间:2024/05/08 17:53

因最近查项目的初始化耗时问题,使用到了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.分析过程

1).列出代码做的事:(以项目初始化为例)
    1.模式判断;
    2.读取配置文件;
    3.初始化DB;
    4.XXXXXXX;
    5.XXXXXXX.
大家这里就可以列出所有做的事,后面通过分析具体的trace文件把每项的耗时都记录下来,那么自然就知道什么最耗时了,这样也就想出具体的优化方案了。
 
2).耗时分析:
    这里就是分析生成的trace文件,从最外层的代码一步一步进入看具体每件事的耗时,如下:

 这里的handleMessage就是最外层的方法,而这里的a.d()就是handleMessage里面的方法,点击a.d()就能进一步看起里面的耗时。这样一步步深入下去就能看到每件事的耗时了。
3).优化方案:
       这里就是根据具体的耗时分析具体的优化方案,不过一般就是使用延时处理的策略,把一些不重要的事情延后在处理,当时只处理紧急的事情使得函数能快速返回而不影响UI。

       这里,也告诉我们尽量不要在初始化方法中做比较复杂的事情,因为初始化方法一般都是在Application中调的(尤其像SDK这种的),事情做得过多就会导致应用启动很慢。所以不必要的事情可以延时在处理,尽量不影响应用启动。

       按照所说的方法,多试几次大家就会发现TraceView是一个非常简单实用的工具。

0 0
原创粉丝点击