1、TraceView 的简介
TraceView 是 AndroidSDK 里面自带的工具,用于对 Android 的应用程序以及 Framework 层的代码进行性能分析。TraceView 是图形化的工具,它最终会产生一个图表,用于对性能分析进行说明,可以跟踪到具体的 method。
2、TraceView 的原理
TraceView 通过修改 code ,在需要调试的起始位置加入调试函数,程序运行之后会在 SD 的根目录下产生 *.trace 文件来保存运行时的数据,然后把 *.trace 文件考到 PC 机上,通过 traceview 命令对 *.trace 文件进行分析。
3、TraceView 的使用
使用 TraceView 的前提是无论手机或者模拟器,都要有 SD 卡的支持,因为它产生的数据文件将会存到 SD 卡上。对于手机需要插入 SD 卡,对于模拟器需要在建立/启动模拟器的时候加入 SD卡的支持就可以了。
要想 TraceView 起作用就必须在程序当中加入代码,以便生成 *.trace 文件,有了这个 *.trace 文件才可以将其转化为图形。
要添加的代码如下:
// start tracing to "/sdcard/yourActivityTrace.trace" Debug.startMethodTracing("yourActivityTrace"); // stop tracing Debug.stopMethodTracing();
Google Dev Guide 中说可以在 Activity 的 onCreate() 方法中添加 Debug.startMethodTracing(),而在 onDestroy() 方法中添加 Debug.stopMethodTracing(),但是在实际的测试中发现这种方式其实并不好用,因为通常情况下我们Activity 中的 onDestroy() 方法是由系统决定何时调用的,因此可能等了很长时间都不会得到这个 *.trace 文件。因此决定在 onStop() 方法中来调用 Debug.stopMethodTracing()。这样当我们切换到其它 Activity 或者点击 Home 键的时候 onStop() 方法就会被调用,我们也就可以得到完整的 *.trace文件。
通过命令traceview *.trace对数据文件进行分析
在运行程序之前,首先要保证我们的 AVD 是一个带有 SD Card 的 AVD,这样才能使 trace 文件保存到 /sdcard/ 当中。运行后可以任意做一些操作,然后点击 Home键。这时通过 DDMS File Explore 就可以看到 /sdcard/ 目录下有一个 trace文件,现在把这个文件 copy 到电脑上指定的目录,假设是C:\tracefile 目录下。可以通过命令行来执行 TraceView,进入tools目录后,执行
traceview C:\tracefile\yourActivityTrace.trace
之后就可以看到图形了,接下来就是按照 Google Dev Guide 中的解释去分析图形就OK了。
参考资料:
http://blog.csdn.net/itachi85/article/details/6857324