您的位置:首页 > 移动开发 > Android开发

【Android测试工具】01. Android TraceView工具使用详解

2015-10-28 08:59 701 查看
转载地址:http://blog.csdn.net/wirelessqa/article/details/8764622


TraceView是什么

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


Traceview的作用

1. 查看跟踪代码的执行时间,分析哪些是耗时操作

2. 可以用于跟踪方法的调用,尤其是Android Framework层的方法调用关系


Traceview的使用步骤

分为以下三步:

1. 选择追踪范围加入记录代码

2.利用tools下的工具trace view打开.trace文件

3.分析trace文件


1. 选择追踪范围加入记录代码

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

  要添加的代码如下:

1
Debug.startMethodTracing(“wirelessqa”);
//开始
2
Debug.stopMethodTracing();
//结束
其中参数wirelessqa是要创建的trace文件的名称,wirelessqa.trace。默认路径是/sdcard/wirelessqa.trace,也可以自己制定/data/log/wirelessqa,表示文件在/data/log/wirelessqa.trace。

实例代码参考:

01
publicclass
MainActivity
extends
Activity
{
02
03
@Override
04
protectedvoid
onCreate(Bundle savedInstanceState) {
05
super
.onCreate(savedInstanceState);
06
setContentView(R.layout.activity_main);
07
setTitle(
this
.getClass().getName());
08
View
toLoginView = findViewById(R.id.to_login);
09
//
开始记录 sdcard/wirelessqa.trace文件
10
Debug.startMethodTracing(
"wirelessqa"
);
11
toLoginView.setOnClickListener(
new
View.OnClickListener()
{
12
13
publicvoid
onClick(View view) {
14
Intent
intent =
new
Intent(getApplicationContext(),
LoginActivity.
class
);
15
startActivity(intent);
16
}
17
});
18
}
19
 
20
@Override
21
protectedvoid
onStop() {
22
super
.onStop();
23
Debug.stopMethodTracing();
//
结束记录wirelessqa.trace
24
}
25
}
说明:

  开发文档中说可以在activity的onCreate()中添加Debug.startMethodTracing(), 而在onDestroy()中添加Debug.stopMethodTracing(),但是在实际的测试时发现这种方式其实并不好用,因为通常情况下我们的activity的onDestroy()是由系统决定何时调用的,因此可能等了很长时间都不会得到这个trace文件。

因此决定在onStop()中来调用Debug.stopMethodTracing()。这样当我们切换到其它activity或者点击home键的时候onStop()就会被调用,我们也就可以得到完整的trace file。

别忘了加入访问SD卡的权限

1
<uses-permissionandroid:name=
"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
/>
2
<uses-permissionandroid:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>


2.利用tools下的工具trace view打开.trace文件




3. 分析trace文件

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: