zoukankan      html  css  js  c++  java
  • [转]Android TraceView工具使用

    一、 选择跟踪范围

    在想要根据的代码片段之间使用以下两句代码

    1. Debug.startMethodTracing("love_world_");  
    2. Debug.stopMethodTracing();  


    例如,onCreate与onStart方法之间方法跟踪

    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卡访问权限

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

    如果不添加,执行项目会出现以下异常

    1. java.lang.RuntimeException:Unable to open trace file '/mnt/sdcard/Love_World_.trace': Permission denied  




    三 、 导出traceview文件

    1  首先执行项目,查看trace文件是否生成
    进入shell模式

    1. adb shell  


    查看是否已经生成这个文件

    1. ls sdcard/Love_World_.trace  


    Ctrl + C 退出adb shell模式

    2 导出trace文件

    1. adb pull sdcard/Love_World_.trace  



    四、 打开trace文件

    打开trace文件需要Android提供的traceview.bat工具,工具所在目录:sdk ools raceview.bat, 有两种方式执行:
    1) 在命令行中切换到此目录
    2) 将此目录添加到系统环境变量中

    1. //  cmd在calc.trace所在目录执行  
    2. traceview C:UsersYourNameDesktopLove_World_.trace  


    其中“C:UsersYourNameDesktop” 表示trace所在你系统中的目录,此工具需要输入trace文件的绝对路径才行


    五、 TraceView工具用途

    有两方面用途: 

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

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

    获取方法的调用顺序

    1. 在traceview中搜索响应的方法名不能使用大写字母

    2. 搜索出的方法会自动展开,其中包含Parents 和 Children 两组信息

    3. 点击Parents下的方法名,直接跳转到调用当前的方法处。Children相反






    六、异常处理
    1 异常处理

    1. 'C:Windowssystem32java.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 异常信息

    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文件有异常,再重新生成并导出试试

    七、 相关资料:

    念茜 : Android代码调试工具 traceview 和 dmtracedump的波折演绎 

    原文地址: http://blog.csdn.net/love_world_/article/details/8223805

  • 相关阅读:
    Scrapy 概览笔记
    Python 依赖版本控制 (requirements.txt 文件生成和使用)
    Python 虚拟空间的使用
    macOS 所有版本 JDK 安装指南 (with Homebrew)
    鉴权那些事
    Java 位运算符和 int 类型的实现
    ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
    如何做好一次知识或技术分享
    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
    ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
  • 原文地址:https://www.cnblogs.com/wilma/p/3457815.html
Copyright © 2011-2022 走看看