TraceView

Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。

Traceview的使用:首先,必须在程序当中加入代码,以便生成trace文件,有了这个trace文件我们才可以将其转化为图形。

一、启动Trace

//使用Debug的以下静态方法方法来启动:
//使用指定trace文件的名字和默认最大容量(8M)的方式开始方法的追踪
static void startMethodTracing(String traceName)
//使用默认trace文件的名字(dmtrace.trace)和默认最大容量(8M)的方式开始方法的追踪
static void startMethodTracing()
//使用指定trace文件的名字和最大容量的方式开始方法的追踪。并可指定flags.注:int flags好像没意义。一般都用0.
static void startMethodTracing(String traceName, int bufferSize, int flags)
//使用指定trace文件的名字和最大容量的方式开始方法的追踪。
static void startMethodTracing(String traceName, int bufferSize)

注1:以上的方法的文件都会创建于SD卡下,即"/sdcard/"下,对默认文件名的就是"/sdcard/dmtrace.trace",如果没SD卡,以上方法会抛异常致使程序crash.

注2:如果文件名没有指定类型,系统为其加上类型.trace

 

二、停止Trace

public static void stopMethodTracing();

  Google Dev Guide当中说可以在activity的onCreate()中添加Debug.startMethodTracing(), 而在onDestroy()中添加Debug.stopMethodTracing(),但是在实际的测试时发现这种方式其实并不好用,因为通常情况下我们的activity的onDestroy()是由系统决定何时调用的,因此可能等了很长时间都不会得到这个trace文件。因此决定在onStop()中来调用Debug.stopMethodTracing()。这样当我们切换到其它activity或者点击home键的时候onStop()就会被调用,我们也就可以得到完整的trace file。

 

三、把trace文件从SD卡拷到电脑上

现在我们把这个文件copy到我们的电脑上指定的目录:

$adb pull /sdcard/dmtrace.trace d:

 

四、使用traceview命令打开

$traceview d:/dmtrace.trace

 

五、分析traceview结果

 

六、ddms中使用traceview

另外简单提一个ddms中使用traceview的方法:

  1. 在设备表中选中你想进行method trace的进程。
  2. 单击Method Profiling按钮开始method trace。该按钮在窗口的左上方,它在"stop"按钮的左方,"Device菜单的正下方"。 
  3. method trace进行中。 
  4. 单击Method Profiling按钮停止method trace。紧接着系统会自动弹出Traceview窗口来显示刚才的method trace结果。


详细使用参见:http://developer.android.com/guide/developing/debugging/debugging-tracing.html

posted @ 2011-11-19 17:00  残夜  阅读(590)  评论(0编辑  收藏  举报