TraceView使用

Posted 且听真言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TraceView使用相关的知识,希望对你有一定的参考价值。

TraceView 是什么?

TraceView 是 android SDK 中内置的一个工具,用于加载 trace 文件,用图形的形式展示代码的执行时间、调用次数及调用栈,便于我们分析。

如何生成 trace 文件?

使用代码生成

 Debug.startMethodTracing(trace"); //trace文件保存到 "/sdcard/trace.trace"
 // ...
 Debug.stopMethodTracing();    //结束

 当调用开始代码的时候,系统会生产 trace 文件,并且产生追踪数据,当你调用结束代码时,会将追踪数据写入到 trace 文件中。

 adb 命令将 trace 文件导出到电脑

adb pull /sdcard/trace.trace /tmp

 

  • 选定范围:确定要在跟踪窗格中检查的记录时间部分。

  •  时间戳记:指示记录的跟踪的开始和结束时间。

 

  • 跟踪窗格:显示所选时间范围和线程的跟踪数据。

  • 时间参考菜单:选择以下一项以确定如何测量每个呼叫的时间信息:

Wall Clock Time(挂钟时间):时间信息表示实际经过的时间。
Thread Time(线程时间):当线程不消耗CPU资源时,时序信息表示实际经过的时间减去该时间的任何部分。对于任何给定的调用,其线程时间始终小于或等于其挂钟时间。使用线程时间可以使您更好地了解给定方法或函数消耗了多少线程的实际CPU使用率。

  • 跟踪窗格选项卡:选择如何显示跟踪详细信息。 

 

  •  表示当前埋点的代码有5个线程。可以点击任何一个线程查看

上面的图中需要注意几点:这里的图标表示,比如2个方法A和B。方法A调用方法B,那么方法A就在方法B的上方。

  • 橙色:表示系统API方法调用
  • 绿色:表示自身方法调用
  • 蓝色:表示第三方调用

 

 Flame Chart以一个全局的视野来看待一段时间的调用分布,它就像给应用程序拍X光片,可以很自然地把时间和空间两个维度上的信息融合在一张图上。把相似或相同的方法统计在一起,比如A方法调用B方法调用C方法:A->B->C,那么他会将所有按此顺序的方法收集在一起,或者将A->B->D也会收集在上,横轴表示的是相对时间。

 点开initPalmID() -> 显示了onCreate();也就是说谁调用了我。onCreate()方法里调用initPalmID();

 表示onCreate里的一些情况。

  • Total:表示onCreate函数所有执行需要的时间
  • Self: 表示onCreate函数里,除了调用别的函数方法外,自己方法内代码的执行时间
  • Children: 表示onCreate函数里,调用别的函数所执行的时间

以上是关于TraceView使用的主要内容,如果未能解决你的问题,请参考以下文章

Android - 无法使用 traceview

android traceview 异步事件

正确使用Android性能分析工具——TraceView

TraceView进行性能分析

TraceView 安卓

Android学习之Android studio TraceView和lint工具的使用具体解释