Android TraceView工具使用
来源:互联网 发布:黑魂三捏脸数据女 编辑:程序博客网 时间:2024/05/17 09:30
一、选择跟踪范围
在想要根据的代码片段之间使用以下两句代码
[java] view plaincopyprint?
1. Debug.startMethodTracing("love_world_");
2. Debug.stopMethodTracing();
例如,onCreate与onStart方法之间方法跟踪
[java] view plaincopyprint?
1. public class MainActivity extends Activity {
2.
3. @Override
4. protected void onCreate(Bundle savedInstanceState) {
5. super.onCreate(savedInstanceState);
6. setContentView(R.layout.activity_main);
7.
8. Debug.startMethodTracing("Love_World_");
9. }
10.
11. @Override
12. protected void onStart() {
13. super.onStart();
14.
15. Debug.stopMethodTracing();
16. }
17.
18. }
二、添加SD卡访问权限
[html] view plaincopyprint?
1. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
如果不添加,执行项目会出现以下异常
[java] view plaincopyprint?
1. java.lang.RuntimeException:Unable to open trace file '/mnt/sdcard/Love_World_.trace': Permission denied
三、导出traceview文件
1 首先执行项目,查看trace文件是否生成
进入shell模式
[sql] view plaincopyprint?
1. adb shell
查看是否已经生成这个文件
[plain] view plaincopyprint?
1. ls sdcard/Love_World_.trace
Ctrl + C 退出adb shell模式
2 导出trace文件
[plain] view plaincopyprint?
1. adb pull sdcard/Love_World_.trace
四、打开trace文件
打开trace文件需要Android提供的traceview.bat工具,工具所在目录:sdk\tools\traceview.bat,有两种方式执行:
1) 在命令行中切换到此目录
2) 将此目录添加到系统环境变量中
[plain] view plaincopyprint?
1. // cmd在calc.trace所在目录执行
2. traceview C:\Users\YourName\Desktop\Love_World_.trace
其中“C:\Users\YourName\Desktop\”表示trace所在你系统中的目录,此工具需要输入trace文件的绝对路径才行
五、 TraceView工具用途
有两方面用途:
1 查看跟踪代码的执行时间,分析哪些是耗时操作
2 可以用于跟踪方法的调用,尤其是Android Framework层的方法调用关系
获取方法的调用顺序
1. 在traceview中搜索响应的方法名不能使用大写字母
2. 搜索出的方法会自动展开,其中包含Parents和 Children两组信息
3. 点击Parents下的方法名,直接跳转到调用当前的方法处。Children相反
六、异常处理
1 异常处理
[plain] view plaincopyprint?
1. 'C:\Windows\system32\java.exe' 不是内部或外部命令,也不是可运行的程序
2. 或批处理文件。
3. SWT folder '' does not exist.
4. Please set ANDROID_SWT to point to the folder containing swt.jar for your platfo
5. rm.
配置Java环境变量,把java bin添加到系统环境变量PATH中
2 异常信息
[plain] view plaincopyprint?
1. The standalone version of traceview is deprecated.
2. Please use Android Device Monitor (tools/monitor) instead.
3. Failed to read the trace filejava.io.IOException: Key section does not have an *
4. end marker
5. at com.android.traceview.DmTraceReader.parseKeys(DmTraceReader.java:420)
6.
7.
8. at com.android.traceview.DmTraceReader.generateTrees(DmTraceReader.java:
9. 91)
10. at com.android.traceview.DmTraceReader.<init>(DmTraceReader.java:87)
11. at com.android.traceview.MainWindow.main(MainWindow.java:286)
通常是trace文件有异常,再重新生成并导出试试
* 每一列内容
Inclusive time
Incl time - 函数本身运行花费时间 +函数调用其他函数时间
Exclusive time
Excl tieme - 函数本身运行花费时间。
Calls + RecurCall/Total
调用 + 重复调用次数 / 函数总调用次数
Cpu Time/Call
总的Cpu时间与总的调用次数之比
http://developer.android.com/tools/debugging/debugging-tracing.html#timelinepanel
- Android TraceView工具使用
- Android TraceView工具使用
- Android TraceView工具使用
- Android TraceView工具使用
- Android系统工具之Traceview的使用
- android-sdk工具使用traceview性能分析
- Android 性能优化 TraceView工具的使用
- 正确使用Android性能分析工具 - TraceView
- Android学习之性能工具traceView使用
- Android性能分析工具Traceview的使用
- 【Android测试工具】01. Android TraceView工具使用详解
- 【Android测试工具】01. Android TraceView工具使用详解
- android工具之TraceView
- Android Traceview调试工具
- 【Android 工具】TraceView使用方法
- Android 工具之TraceView
- Android TraceView优化工具
- Android调试工具--Traceview
- HTTP 请求方式: GET和POST的比较
- 8大Android调试工具
- CSDN 博客积分 如何获取
- MessageBox语法介绍
- LeetCode - Increasing Triplet Subsequence
- Android TraceView工具使用
- GDKOI模拟 Manufactoria
- libcurl库进行http通讯-开篇
- Java基本类型和取值范围
- ios开发小技巧
- WF4.0和BookMark
- windows多线程同步机制---原子锁
- 浅析计算机接口技术
- struts2 零配置代码