traceview使用总结

traceview使用总结文章目录 1 traceview 的用途 2 生成 trace 文件的三种方式 1 代码生成 2 使用 androidstudi 生成 3 DDMS 生成 3 使用 traceview 打开 trace 文件 4 分析 trace 文件 1 traceview 的用途 traceview 是 Androidsdk 中的一个工具 用于分析计算性能 跟踪方法耗时导致的卡顿问题 它将 traceview 文件转为图形 直观的反应出代码的执行

1.traceview的用途

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

2.生成trace文件的三种方式

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

(1)代码生成
//开始 trace,保存文件到 "/sdcard/homeFragment.trace" //高版本手机保存到"/sdcard/Android/data/packageName/files/homeFragment.trace" Debug.startMethodTracing("homeFragment"); // ... Debug.stopMethodTracing(); //结束 
(2)使用android studio生成
(3)DDMS生成
3.使用traceview打开trace文件

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

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

提示报错:

SWT folder '' does not exist. Please set ANDROID_SWT to point to the folder containing swt.jar for your platform. 

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

4.分析trace文件
  • 上半部分展示了线程:
    • 不同颜色表示不同方法,颜色约长,执行时间越久。
  • 下半部分展示了方法的执行时间:
    • 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,按照次数倒序

排序后逐个排查项目代码,进一步定位问题

  • 哪些方法耗时
    在这里插入图片描述
    结果:initView方法执行耗时,并将children方法列举出来,我们可以逐步排查优化




  • 哪些方法执行次数过多:
    在这里插入图片描述

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

PS:附上 traceview下载地址

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212339.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:16
下一篇 2026年3月18日 下午8:17


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号