• [Android]Android TraceView工具使用


    一、 选择跟踪范围

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

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

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

    1. public class MainActivity extends Activity {
    2.     @Override
    3.     protected void onCreate(Bundle savedInstanceState) {
    4.         super.onCreate(savedInstanceState);
    5.         setContentView(R.layout.activity_main);
    6.         Debug.startMethodTracing("Love_World_");
    7.     }
    8.     @Override
    9.     protected void onStart() {
    10.         super.onStart();
    11.         Debug.stopMethodTracing();
    12.     }
    13. }

    二、添加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.         at com.android.traceview.DmTraceReader.generateTrees(DmTraceReader.java:
    7. 91)
    8.         at com.android.traceview.DmTraceReader.<init>(DmTraceReader.java:87)
    9.         at com.android.traceview.MainWindow.main(MainWindow.java:286)

    通常是trace文件有异常,再重新生成并导出试试

    七、 相关资料:

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

  • 相关阅读:
    Best wishes for a wonderful new year.
    Using X++ code Reading to CSV file
    Types of delete action
    get focus from the FORM in dynamcis AX 2009
    Database Lock
    Using x++ code export to CSV file from dynamics AX 2009
    Using x++ code updated to system filed values
    Merry Christmas and Best Wishes for a Happy New Year
    the most reluctant to delete to New Year SMS
    《那些年啊,那些事——一个程序员的奋斗史》——53
  • 原文地址:https://www.cnblogs.com/webapplee/p/3774056.html
Copyright © 2020-2023  润新知