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

Android开发超级工具介绍traceview

2016-05-04 22:27 375 查看
首先来介绍下traceview是用来做什么的?

这个工具可以用来跟踪在一个项目运行程序中所有的方法消耗的时间,并且可以指定从哪个方法运行到那个方法之间。很强大吧,好了,下面开始介绍使用方法。

下面是一个简单的Activity的生命周期,在onCreate()和onDestroy()方法中分别插入了获取时间段的方法代码;

代码:

package com.google;

import android.app.Activity;
import android.os.Bundle;
import android.os.Debug;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//设置,起始方法,mytraceview是写入到sdcard的文件名字
Debug.startMethodTracing("mytraceview");
System.out.println("开始执行了+onCreate");
}

@Override
protected void onStart() {
System.out.println("开始执行了+onCreate");
super.onStart();
}

@Override
protected void onRestart() {
System.out.println("开始执行了+onRestart");
super.onRestart();
}

@Override
protected void onResume() {
System.out.println("开始执行了+onResume");
super.onResume();
}

@Override
protected void onPause() {
System.out.println("开始执行了+onPause");
super.onPause();
}

@Override
protected void onStop() {
System.out.println("开始执行了+onStop");
super.onStop();
}

@Override
protected void onDestroy() {
System.out.println("开始执行了+onDestroy");
//结束方法
Debug.stopMethodTracing();
super.onDestroy();
}

}

OK,现在我们运行下,这个时候在DDMS(如果你是用的是模拟器)中sdcard文件目录下会生成一个mytraceview.trace文件,如下图



注意:细心的小伙伴们会发现,现在只是一个空文件,为什么是个空文件呢,我们的方法不是已经写进去了吗?没错,你想到了因为onDestroy()方法还没有执行。

你需要在模拟器中:



将这个页面关闭,Activity就会销毁,这个时候onDestroy()方法就会执行。



好了,下面将这个文件导出来。

然后进入到你的sdk下的tools目录下,就会看到有个文件traceview.bat的文件。



好了,重点来了cmd命令进入Linux命令窗口,将traceview.bat文件拖拽到命令窗口中,一个空格,然后再将你导出的mytraceview.trace文件拖拽进去。

回车后,就能看到



看到这个界面,说明已经成功了。

在下方你可以查找你想要看的方法占用时间等。

好了,是不是很强大,看到赶紧试试吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息