文章目录

1.traceview的用途
traceview是Android sdk中的一个工具,用于分析计算性能,跟踪方法耗时导致的卡顿问题。它将traceview文件转为图形,直观的反应出代码的执行时间、执行次数,便于我们分析。

2.生成trace文件的三种方式
trace文件是log文件的一种,可以通过代码,也可以使用Android studio生成。

(1)代码生成

Android trace怎么看 android trace文件分析_Android

导出trace文件到电脑:
adb pull /sdcard/homeFragment.trace C:\Users\Admin\Desktop

若提示No such file,可能保存到sdcard/android 目录下了:
adb pull /sdcard/Android/data/packageName/files/homeFragment.trace C:\Users\Admin\Desktop
packageName是应用的具体包名

 

(2)使用android studio生成

profile/cpu 下选择记录traceview

 

Android trace怎么看 android trace文件分析_Android trace怎么看_02

 

android studio对trace也做了可视化:包括各方法的执行时间和占比

 

Android trace怎么看 android trace文件分析_Android_03

(3)DDMS生成

DDSM 全称 Dalvik Debug Monitor Server,是老版adt的调试工具。可生成trace后,查看。

Android trace怎么看 android trace文件分析_执行时间_04

3.使用traceview打开trace文件
新版Android stuido 中已移除了DDMS,这里我们使用traceview工具来查看trace文件信息。

工具目录:androidsdk/tools/traceview.bat

But,打开该目录后发现,新版sdk中已缺失traceview,我们可以下载一个traceview.bat文件放在该目录下,命令行打开:
traceview C:\Users\Admin\Desktop\homeFragment.trace

提示报错:
 

Android trace怎么看 android trace文件分析_Android trace怎么看_05

 

这是依赖库缺失,下载一个老版的sdk/tools/lib,将它放到tools目录下(合并lib)即可。

 

Android trace怎么看 android trace文件分析_android_06

虽然提示deprecated,还是可以打开traceview。

 

4.分析trace文件

1.打开如下:

Android trace怎么看 android trace文件分析_执行时间_07

 

上半部分展示了线程:
不同颜色表示不同方法,颜色约长,执行时间越久。
下半部分展示了方法的执行时间:
cpu time/call:该方法占用cpu的时间
Calls + Recur Calls/Total :调用、递归次数
Incl Cpu Time vs Excl Cpu Time:某方法占用的cpu时间,incl包含内部调用其他方法的时间,excl不包含
2.定位问题

查看耗时的方法:点击 cpu time/call ,按照时间倒序
查看方法执行次数:点击 Calls + Recur Calls/Total,按照次数倒序
排序后逐个排查项目代码,进一步定位问题

3.案例
项目在每次启动主页时,耗时在1.5-2.5s,优化性能时,我们需要具体查看:

哪些方法耗时
 

Android trace怎么看 android trace文件分析_Android_08

 

  • 结果:initView方法执行耗时,并将children方法列举出来,我们可以逐步排查优化
  • 哪些方法执行次数过多:

Android trace怎么看 android trace文件分析_执行时间_09

结果:shareUtilUser.getString方法高频执行,查看parents,发现是登录信息,频繁操作导致。跟踪代码,发现每次获取登录的某个信息,会将所有登录相关的数据,都取出来了,因此这里就是我们需要优化的地方了。