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

  • 相关阅读:
    asp.net 获取当前项目的根目录路径
    asp.net 中 UEditor 图片和附件上传失败的处理方法
    [LOJ#2331]「清华集训 2017」某位歌姬的故事
    [LOJ#2330]「清华集训 2017」榕树之心
    [LOJ#2329]「清华集训 2017」我的生命已如风中残烛
    [LOJ#2328]「清华集训 2017」避难所
    [LOJ#2327]「清华集训 2017」福若格斯
    [LOJ#2326]「清华集训 2017」简单数据结构
    [LOJ#2325]「清华集训 2017」小Y和恐怖的奴隶主
    [LOJ#2324]「清华集训 2017」小Y和二叉树
  • 原文地址:https://www.cnblogs.com/wilma/p/3457815.html
Copyright © 2011-2022 走看看