Android性能检测工具——traceview

时间:2023-03-09 08:18:54
Android性能检测工具——traceview

之前的几篇文章中介绍了android中常用的一些工具,今天介绍的工具也是比较实用和方便的,它可以用量化的指标告诉我们哪个方法执行的时间最长,被调用的次数最多,有没有重复调用。下面我们就来看看它是怎么为我们所用的。

一、标注测试的代码区域

如果我们想要测试gridView设置适配器这段代码,该怎么做呢?很简单,用两行代码夹住它~

原始的代码:

mPhotoWall.setAdapter(mAdapter);

标注为测试的代码:

        Debug.startMethodTracing("my_trace_file");  

        mPhotoWall.setAdapter(mAdapter);

        Debug.stopMethodTracing();         

这样我们就表明了,我们的测试是从setAdapter前开始,到它之后结束的。这里有个文件名,my_trace_file,这是我们测试后,得到测试报告的名字,一会再说。

PS:记得要加上权限:

    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

二、查看测试报告

运行程序后,我们会在sdcard文件夹下找到我们的测试报告文件

Android性能检测工具——traceview

如果我们想要查看的话,可以通过命令行,把它移动到d盘

adb pull /sdcard/my_trace_file.trace d:/

Android性能检测工具——traceview

接着调用

adb pull /sdcard/my_trace_file.trace d:/

即可打开测试报告的图形界面:

Android性能检测工具——traceview

Android性能检测工具——traceview

三、表头中各个参数的意义

nl Cpu Time%:方法在运行期间被调用的时间占总时间的百分比。

Incl Cpu Time:方法执行的总时间(包括调用子函数所消耗的时间):调用该方法每次所需要消耗的时间*执行次数。

Excl Cpu Time%:方法自身所消耗的时间(不包括调用其他方法所消耗的时间)占总时间的百分比。

Excl Cpu Time:方法自身所消耗的时间。

Incl Real Time%:方法真正执行的时间占总时间的百分比。

Incl Real Time:方法真正被执行的时间。

Excl Real Time%:方法真正被执行的时间占总时间的百分比

Excl Real Time:方法真正被执行的所消耗的时间

Calls+RecurCalls/Total:方法被调用的次数+重复调用的次数

Cpu Time/Call:方法每次被执行的时间

Real Time/Call:方法真实被执行的时间

PS:一般在activity的onCreate()中添加Debug.startMethodTracing(“Test”), 在onStop()中来调用Debug.stopMethodTracing()。这样当我们切换到其它activity或者点击home键的时候onStop()就会被调用,我们也就可以得到完整的trace file。

参考自:

http://blog.csdn.net/wwj_748/article/details/8913862