Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。下面我们看下如何使用这个东东。
首先,我们必须在程序当中加入代码,以便生成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 file。
在运行我们的程序之前,我们首先要保证我们的AVD是一个带有SD card的AVD,这样才能使trace文件保存到/sdcard/...当中。Google Dev Guide当中是用安装SD card的方式,实际上在SDK1.5以后我们都可以在创建AVD的时候带上SD card, 具体参考http://developer.android.com/guide/developing/tools/avd.html
好的,一切就绪了,开始运行我们的程序吧,运行后可以任意做一些操作,然后点击home键。这是通过DDMS file explore我们就可以看到/sdcard/目录下有一个trace文件,现在我们把这个文件copy到我们的电脑上指定的目录,假设是C:\tracefile 目录下。
现在我们可以通过命令行来执行traceview,进入tools目录后,执行
traceview C:\tracefile\yourActivityTrace.trace
之后你就可以看到图形了,是不是很cool。
接下来就是按照Google Dev Guide中的解释去分析图形就OK了。