美文网首页
TraceView 使用

TraceView 使用

作者: tiger桂 | 来源:发表于2017-04-27 17:54 被阅读0次

    一、TraceView有三种启动方式,下面逐一介绍:

    1、 代码中启动

    可以在代码中添加

    Debug.startMethodTracing(“Tracelog”);

    Debug.stopMethodTracing();

    使用这种方式需要确保应用的AndroidMainfest.xml中的SD卡的读写权限是打开的,即

    应用运行完后,会在SD卡下生成一个Tracelog文件,使用adb pull把这个文件拷贝至XP系统上,再在android sdk的tools目录下执行traceview Tracelog,则会弹出一个图形界面,通过这个图形界面就可以分析出应用的性能瓶颈;

    2、 Eclipse中启动

    Eclipse启动traceview及其简单,在DDMS中对需要分析的应用进程点击如下按钮

    在需要停止traceview的地方点击相同的按钮,则Eclipse会自动弹出类似1中的一个图形界面;

    3、 adb 命令行启动

    adb shell am profile start

    adb shell am profile stop

    PROCESS_ID为应用的进程号,可以用ps命令获取,TRACE_FILE为需要存储的Trcaelog文件。

    执行上面的命令后,会生成对应的TRACE_FILE,使用adb pull把这个文件拷贝至XP系统上,再在android sdk的tools目录下执行traceview Tracelog,则会弹出一个图形界面,通过这个图形界面就可以分析出应用的性能瓶颈;

    二、分析

    开启方法分析后对应用的目标页面进行测试操作,测试完毕后停止方法分析,界面会跳转到 DDMS 的 trace 分析界面,如下图所示:

    TraceView 界面比较复杂,其 UI 划分为上下两个面板,即 Timeline Panel(时间线面板)和 Profile Panel(分析面板)。上图中的上半部分为Timeline Panel(时间线面板),Timeline Panel又可细分为左右两个Panel:

    左边 Panel 显示的是测试数据中所采集的线程信息。由图可知,本次测试数据采集了 main 线程,传感器线程和其它系统辅助线程的信息。

    右边 Panel 所示为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。这些信息包括函数名、函数执行时间等。由图可知,Thread-1412线程对应行的的内容非常丰富,而其他线程在这段时间内干得工作则要少得多。

    另外,开发者可以在时间线 Panel 中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。

    上图中的下半部分为ProfilePanel(分析面板),Profile Panel 是 TraceView 的核心界面,其内涵非常丰富。它主要展示了某个线程(先在 Timeline Panel 中选择线程)中各个函数调用的情况,包括 CPU 使用时间、调用次数等信息。而这些信息正是查找 hotspot 的关键依据。所以,对开发者而言,一定要了解 Profile Panel 中各列的含义。下表列出了Profile Panel 中比较重要的列名及其描述。

    相关文章

      网友评论

          本文标题:TraceView 使用

          本文链接:https://www.haomeiwen.com/subject/jddnzttx.html