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

TraceView使用_第1张图片

 

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

TraceView使用_第2张图片

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

TraceView使用_第3张图片

 

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

TraceView使用_第4张图片

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

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

TraceView使用_第5张图片

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

 

TraceView使用_第6张图片

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

TraceView使用_第7张图片

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

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

TraceView使用_第8张图片

 TraceView使用_第9张图片

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

TraceView使用_第10张图片

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

TraceView使用_第11张图片

 表示onCreate里的一些情况。

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

你可能感兴趣的:(Android,TraceView)