android性能优化之Traceview

简介

TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot。TraceView 本身只是一个数据分析工具,而数据的采集则需要使用 Android SDK 中的 Debug 类或者利用 DDMS 工具。二者的区别如下:

  • 开发者在一些关键代码段开始前调用 Android SDK 中 Debug 类的 startMethodTracing函数,并在关键代码段结束前调用 stopMethodTracing 函数。这两个函数运行过程中将采集运行时间内该应用所有线程(注意,只能是 Java 线程)的函数执行情况,并将采集数据保存到 /mnt/sdcard/ 下的一个文件中。开发者然后需要利用 SDK 中的TraceView 工具来分析这些数据。
  • 借助 Android SDK 中的 DDMS 工具。DDMS 可采集系统中某个正在运行的进程的函数调用信息。对开发者而言,此方法适用于没有目标应用源代码的情况。

DDMS 中 TraceView 使用示意图如下,调试人员可以通过选择 Devices 中的应用后点击按钮 Start Method Profiling(开启方法分析)和点击 Stop Method Profiling(停止方法分析)。例如:
android性能优化之Traceview
测试完毕后停止方法分析,界面会跳转到 DDMS 的 trace 分析界面,如下图:
android性能优化之Traceview
TraceView 界面比较复杂,其 UI 划分为上下两个面板,即 Timeline Panel(时间线面板)和 Profile Panel(分析面板),具体可以查看相关的文章介绍。

Traceview实践

使用 traceview 需要首先使用 Debug 类进行 插桩 ,当应用执行到被插桩的代码时就会在手机sdcard中自动生成 .trace 文件,之后使用 traceview 或者 AS(3.0以上版本)打开文件即可。