traceview工具(android eclipse如何查看耗时)

本文目录
- android eclipse如何查看耗时
- DDMS和TraceView的区别
- android studio traceview 哪个键
- 如何使用windows traceview
- 如何使用monitor抓取traceview文件
- 跟踪的trace文件,需要用什么工具回放
- android traceview 怎么用
android eclipse如何查看耗时
Traceview是android平台配备的一个很好的性能分析工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并陆档且能具体到method。android开发中可以用来:方法耗时,性能优化。
(推荐:eclipse使用教程)
使用Traceview查看方法耗时:
1、生成.trace文件
在我们需要追踪的代码中,前后输入:
Debug.startMethodTracing(“test”);//设置参数为生成的trace文件名
####CODE
Debug.stopMethodTracing();
然后运行项目,此时在设备的SD下会生成test.trace文件
2、拷贝文件到电脑
在电脑可以使用adb命令后,输入尺哗如下(把文件拷贝到d:/info目录下):
adb pull /sdcard/test.trace D:info
3、打开traceview
进入SDK的tools目录后,命令窗口执行traceview,如下:
traceview D:infodmtrace.trace.
此时traceview视图便会显示出来:
上部分:
X轴表示时间消耗,单位毫秒,Y轴表示各个线程,每个线程中不同方法使用不同颜色表示,颜色面积宽,表示占用cpu时间越长陵悉行。
下部分:
列1:”Name”表示函数名。
双击函数名,可以看到在上半界面是时间轴面图(Timeline Panel)看他的所消耗的时间段。
双击函数名左边的”+”展开后可以看到,该函数的”parents”和”children”
列2:”incl%”表示函数的Inclusive time在整个MethodTracing时间里占的百分比。
列3:”Inclusive”表示Inclusive time。
列4:”Excl%”表示函数的Exclusive time在整个MethodTracing时间里占的百分比。
重点列:我们关注点
“Calls+RecurCalls/Total”表示对函数的调用次数(包括递归调用)。如图2的toplevel那列为”30+0”表示30次非递归调用,0次递归调用.
Cpu Time / Call 表示该方法耗时
Real time/Call 实际实际
Real time 包括了cpu的上下文切换、阻塞、GC等等,所以时间比较长,所以我们性能分析重点关注:Calls+RecurCalls/Total, Cpu Time / Call这两列
更多python知识请关注python视频教程。
DDMS和TraceView的区别
DDMS:
DDMS 【Dalvik Debug Monitor Service】是安卓(android)开发环境中的Dalvik虚拟机调试监控服务。
DDMS能够提供:测试设备截屏,针对特定的进程查看正在运行的线程举侍以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等。
TraceView :
Traceview是安卓(android)平台配链答李备的性能分析的工具。
可以通过图形化让了解要跟踪的程序的性能,并且能具体到方法(method)。
DDMS和TraceView的区别:
DDMS是一个程序执行查看器,在里面可以棚迟看见线程和堆栈等信息,而TraceView是程序性能分析器。
android studio traceview 哪个键
TraceView是android的一个可视化的调试工具。借助它,你可以具体了解你的代码在运行时的性能表现。它能帮你更好了解到代码运行过程的效率,进而改善代码,提高你应用的体验。
在用TraceView工具之前,你需要先生成TraceView日志文件,文件包含了应用的跟踪的相关信息,然后再用TraceView工具对文件进行分析。
生成Trace日志的两种方法
代码方式
在代码中使用Debug类来跟生成日志文件,调用startMethodTracing()方法开始跟踪,调用stopMethodTracing()方法来结束跟踪。用代码生成日志好处是你可以很精确地控制跟踪的范围,因为你可以自己设置开始与结束跟踪的位置。
使用该种方式生成文件,要注意:
需要在AndroidManifest文件中添加下面权限READ_EXTERNAL_STORAGE,允许你的应用对外存储空间进行写操作。
下面是使用的Debug类来生成日志的一个示例:
view sourceprint?
1.// start tracing to "/sdcard/calc.trace"
2.Debug.startMethodTracing("calc");
3.// ...
4.// stop tracing
5.Debug.stopMethodTracing();
比如说,你可以在onCreate()里调用startMethodTracing()来开始跟踪,在onDestroy()方法里使用stopMethodTracing()来结束跟踪。
调用startMethodTracing(“calc”),系统就会将跟踪文件指定名字命为calc。如果你使用startMethodTracing(),系统将会跟踪日志文件的默认命名为trace-base-name.trace.当你调用startMethodTracing()方法后,系统开始缓存数据并写入到日志文件,一直到你调用stopMethodTracing。如果在调用结束跟踪方法之前,系统达到缓存大小时,会主动结束日志跟踪并向通知栏发送通知。
创建完日志文件后,需大薯要将日志文件从手机里复制到电脑上。你可以使用下面命令进行复制操作:
adb pull /sdcard/calc.trace /tmp
在TraceView上查看跟踪的日志文件
使用traceview 《trace-base-name》格式的命令可以进行查看日志文件,如下:
view sourceprint?
1.traceview /tmp/calc
直接使用Trace
首先在DDMS的Devices的面板下选中你想要跟踪应用的进程,然后点击下面图中所示的图标,
点击图标后,弹出下面的对话框
Traceview提供了两种日志跟踪模式:
a.跟踪携仿颤型。跟踪每个方法从进到出的整个过程。这种方式辩败能提供准确的执行信息,但是占用机器的资源较大。
b.抽样型。按照一个的频率通过虚拟机来采集数据。这种方式较前一种消耗资源较少,但需要更长的执行时间以获取代表性的数据。同时,你还可以自定义数据采集的频率。
点击ok,运行你的应用一段时间后,再点击Devices面板的那个按钮结束数据采集,等待几秒,TraceView会自动将采集的数据展示出来。
了解TraceView的具体使用
TraceView可以将采集的数据信息以视图的方式呈现。TraceView的视图有两部分组成:
-时间轴面板。提供了一个线程和方法从开始到结束的时间内的信息。
-Profile面板。提供某个方法执行的相关信息。
时间轴面板
下图是时间轴面板的一个示例。左栏部分表示不同的线程,每一个线程占据一行,例子中第一行main就是主线程。右栏里的是一个时间轴,时间从左往右逐渐递增,你可以清晰地从表中看到不同的线程在不同时间段所执行需要的时间。具体到每个线程,你可以查看到执行不同方法所需要的时间,不同的方法用不同的颜色所代替(补充,这些颜色都是交替轮回的使用来代替不同的方法)。在绘制的图块下面有细线出现,被细线选中的部分就是你所选的方法所执行的时间。
小提示,
使用TraceView时,要想对某部分你感兴趣的色块进行放大,用鼠标对你所感兴趣的色块进行框选就ok了。
但TraceView并不支持对面板的时间轴的直接缩小,你可使用下面两种方式来对时间轴缩小。
a.点击「时间轴面板」的左上角,时间轴会恢复到最开始全局面貌状态。
b.将鼠标放大「时间轴面板」的右上角,鼠标会发生变化,然后将鼠标向左方拉伸,这时你可以看到更多的时间轴内的信息。
信息面板
Profile面板包含了你所跟踪时间内所执行的方法的信息,主要展示的有两方面:
a.某方法执行的信息,这些信息包括
Incl Cpu Time 某方法占用Cpu的时间
Excl Cpu Time 某方法本身(不包括子方法)占用Cpu的时间
Incl Real Time 某方法真正执行的时间
Excel Real Time 某方法本身(不包括子方法)真正执行的时间
Calls+RecurCalls 调用次数+递归回调的次数
Cpu Time/Call
Real Time/Call
b.点击左侧某个方法,可以查看更多信息,父方法和所有子方法的具体信息,其中父方法的所在的行用紫色背景,子方法所在的行用黄色的背景。
点击右侧栏的某一列的名字,可以让表按该列的数据大小的顺序进行全局排列。通过数据展示,你可以容易地找到怀疑降低应用性能部分的方法。
比如说,在上,你可以从占用Incl Cpu Time最长的那个方法下手,那个方法是不是调用次数多,是不是属于正常情况吗。如果某个方法占用Cpu的时间长,但是调用的次数并不多,这种情况更加值得怀疑,结合具体方法进行查看,是不是代码写得不够好。
TraceView提供是在代码执行过程在不同线程里,不同方法所占用的Cpu时间,被调用次数的信息。它能有效帮助你对代码的性能的好坏做出判断,借助它你可进一步来改善代码提高应用的性能和用户体验。
如何使用windows traceview
使用TraceView主要有两种方式:1.最简单的方式就是直接打开DDMS,选择一个进程,然后按上面的“Start Method Profiling”按钮,等红色小点变成黑色以后就表示TraceView已经开始工作了。然后我就可以滑动一下列表(现在手机上的操作肯定会信斗很卡,因 为Android系统在检测Dalvik虚拟机中每个Java方法的调用,这是我猜测的)。操作最好不要超过5s,因为最好是进行小范围的性能测试。然后再按一下刚才按的按钮,等一会就会出现上面这幅图,然后就可以开始分析了中坦历。
2.第2种方式就是使用android.os.Debug.startMethodTracing();和android.os.Debug.stopMethodTracing();方法,当运行了这段代码的时候,就会有一个trace文件在/sdcard目录中生成,也可以调用startMethodTracing(String traceName) 设卖搜置trace文件的文件名,最后你可以使用adb pull /sdcard/test.trace /tmp 命令将trace文件复制到你的电脑中,然后用DDMS工具打开就会出现第一幅图了
如何使用monitor抓取traceview文件
抓取方法:
一、哪蚂答里打开这个工具
首先你需要安装Android的开发套件sdk。成功安装后在安装路劲下可以打开这个工具:
打开这个工具后,连接adb,即可看到如下界面
二、如何抓野物袜取traceview文件
(关于sample和trace后续说明)
三、输出的文颂激件在哪里
跟踪的trace文件,需要用什么工具回放
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文件
android traceview 怎么用
假定采用Debug.startMethodTracing和Debug.stopMethodTracing方式录制了trace文件姿团。如本经验中的abc.trace文件
启动cmd。进入到trace文件所在的目录。
执行traceview trace文件。如图,traceview E:\\abc.trace
在traceviwe工具中,上面的Panel是timeline Panel,如图的例子:
在traceviwe工具中,下面的panel是做蠢性能分析的panel,如图的例迹胡橘子:

更多文章:
traceview工具(android eclipse如何查看耗时)
2026年10月12日 15:20
随机数字1 15(1到15个整数 随机抽7次 每个数被抽到的概率是多少(可重复))
2026年10月12日 13:50
java游戏平台官网(诺基亚QD怎样安装SIS和JAVA格式的游戏请高手详答谢谢)
2026年10月12日 13:40
中国免费网站服务器免费下载(求一个免费的云服务器或者云虚拟主机)
2026年10月12日 11:50
1到24数字随机排列(1-24个数字排列,每六个数字为一组,如何排列,一共排出多少组(排出来))
2026年10月12日 11:20
myeclipse怎么配置jdk(myeclipse怎么配置JDK)
2026年10月12日 09:20
在select语句中使用(在sql的select的语句中,使用什么字句来指定数据源)
2026年10月12日 04:30





