从1月份Google发布的16个关于性能优化的系列视频起,这段时间在各大社区都有看到很多优秀的关于优化系列的文章。有分析了性能产生的原因、有分享如何优化我们的应用、有介绍有哪些工具可以帮助我们检测性能问题。
其中 在关于一些系统性能调优工具里有介绍到工具之一:TraceView
TraceView 是 Android 平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到某个函数方法method的执行耗时时间。因为小吕之前确实没有使用过该工具、所以这两天也自己试玩了一把、将该工具的简单使用操作做个简单的图文介绍。也希望在以后的工作当中要重视该工具的使用、利用好该工具。
一、如何使用该工具 采集数据
1、第一种使用方式
① 在你需要调式的代码片段首尾分别添加代码
Debug.startMethodTracing("traceView");
Debug.stopMethodTracing();
如 我们想要对MainActivity的onCreate() 和 onDestory() 方法之间做跟踪,代码可如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* 将在SD卡根目录生成数据性能采集文件 traceView.trace
* 注意:
* 1、一定要在有SD卡的调试手机或模拟器上使用
* 2、添加SD卡访问读写权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
*/
Debug.startMethodTracing("traceView");
}
@Override
protected void onStart() {
super.onStart();
Debug.stopMethodTracing();
}
} <span style="font-family: 'Comic Sans MS'; background-color: rgb(255, 255, 255);"> </span>
②、当程序运行过上面的代码之后 便会在你的手机或模拟器的SD卡根目录生成文件 traceView.trace, 如下图:
③、在正式使用traceview工具分析数据前,我们使用adb命令将SD卡根目录下的traceView.trace文件导出到我们的本地电脑中,adb命令如下:
如上命令 我将.trace文件导出在我的电脑C:\tmp下 如图:
④、在{sdk}/tools/目录下 找到我们的工具traceview.bat、双击运行他吧, 会有如下显示:
提示我们使用 Android Device Monitor<tools/monitor> 。
⑤、但是我们执行如下命令: traceview xxx.trace, 使用traceview去访问执行.trace文件
一伙出现效果如下:
根据之前命令的提示:
这里我们也可以使用执行Android Device Monitor<tools/monitor>工具 出现如下界面
在该界面中 我们可以通过 file--> open file 打开之前导出的.trace文件,这时将会看到同样的效果:
到此 我们便完成了数据的采集与使用traceview工具将数据做了图形化展示
2、第二种使用方式
相对第一种方式 这种要简单很多
通过选择 Devices 中的应用后点击按钮 Start Method Profiling(开启方法分析)和点击 Stop Method Profiling(停止方法分析) 如图:
当停止采集时,DDMS会自动触发Traceview工具来浏览采集数据
二、如何使用该工具 分析数据
当看到图形化的trace数据后、我们要知道如何看懂上面的数据、以做出正确的分析、最后在分析中查找性能上的问题、最终从代码上解决问题。
这部分主要包括:
1、TraceView工具面板的掌握,分析面板每列待办的含义 如:Name、 Incl Cpu Time、 Excl Cpu Time、 Incl Real Time等。
2、如何去定位分析我们要监视的具体方法(通过TraceView底部的find来查找)。
3、如何去定位那些耗时(导致性能问题)的方法(筛选出方法耗时排行的时间 如:Incl Cpu Time列、Cpu Time/Call列)。
4、最后根据找出性能上有缺陷的具体方法、去做代码上的优化。
这里的内容远远超过上面关于 工具数据采集的使用介绍,小吕也刚好在网上有收集到两篇优秀的关于TraceView工具的使用介绍:
1、Android系统性能调优工具介绍:http://blog.csdn.net/innost/article/details/9008691
2、Android编程下的TraceView简介及其案例实战:http://www.cnblogs.com/sunzn/p/3192231.html
三、其他
关于Android的调优工具除了TraceView外、还有Overdraw,Systrace,StrictMode,Hierarchy Viewer等。
英文能力不错的就上Google官网吧:http://developer.android.com/tools/debugging/debugging-tracing.html