监控Android卡顿的可视化工具:卡顿及FPS

Android GPU呈现模式原理及卡顿掉帧浅析- https://www.jianshu.com/p/2ad8723865cc
  -- 常见分析、定位卡顿的方案,系统工具:1. TraceView ; 2. Systrace; 3. 命令行adb shell dumpsys SurfaceFlinger --latency com...包名

  -- 第三方库方案:
  1. Matrix-TraceCanary: https://github.com/Tencent/matrix
微信的卡顿检测方案,采用的ASM插桩的方式,支持fps和堆栈获取的定位,但是需要自己根据asm插桩的方法id来自己分析堆栈,定位精确度高,性能消耗小,比较可惜的是目前没有界面展示,对代码有一定的侵入性。如果线上使用可以考虑。
  2. BlockCanaryEx: https://github.com/seiginonakama/BlockCanaryEx
主要原理是利用loop()中打印的日志,loop()中打印的日志可以看鸿洋的这篇博客Android UI性能优化 检测应用中的UI卡顿,支持方法采样,知道主线程中所有方法的执行时间和执行次数,因为需要获取cpu以及一些系统的状态,性能消耗大,不支持fps展示,尤其检测到卡顿的时候,会让界面卡顿很久。之前我们项目用的就是这个工具。
  3. fpsviewer: https://github.com/SilenceDut/fpsviewer/
利用Choreographer.FrameCallback来监控卡顿和Fps的计算,异步线程进行周期采样,当前的帧耗时超过自定义的阈值时,将帧进行分析保存,不影响正常流程的进行,待需要的时候进行展示,定位。
  fpsviewer—实时显示fps,监控Android卡顿的可视化工具,能实时显示fps,一段时间的平均帧率,以及帧率范围占比,并能获取卡顿堆栈的可视化工具。侵入性低,通过在异步线程采样获取堆栈,无代码侵入,性能消耗可忽略,对性能监控项的异常数据进行采集和分析,整理输出展示相应的堆栈,从而帮助开发者开发出更高质量的应用。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是几款常用的 Android 卡顿分析工具及使用介绍: 1. Systrace Systrace 是 Android SDK 提供的一款系统级分析工具,可以用于分析系统运行时的性能问题,包括 CPU 使用率、内存使用情况、线程运行情况、应用程序启动时间等等。使用 Systrace 可以帮助开发者快速定位应用程序卡顿的原因。 使用方法: 1)确保 Android SDK 中已经安装了 Systrace 工具。 2)在终端中输入以下命令,启动 Systrace 工具: ```python python systrace.py --time=10 -o mytrace.html gfx wm view sched freq idle ``` 其中,--time 参数指定采样时间,-o 参数指定输出文件名,gfx、wm、view、sched、freq、idle 参数指定要监控的系统事件。 3)在终端中输入以下命令,停止 Systrace 工具: ```python Ctrl + C ``` 4)使用浏览器打开输出的 HTML 文件,即可查看 Systrace 分析结果。 2. Traceview Traceview 是 Android SDK 提供的一款应用程序级分析工具,可以用于分析应用程序在运行时的性能问题,包括方法调用时间、内存使用情况、线程运行情况等等。使用 Traceview 可以帮助开发者定位应用程序卡顿的原因。 使用方法: 1)在应用程序代码中插入 Trace 开始和结束语句,例如: ```java Debug.startMethodTracing("mytrace"); // 要分析的代码逻辑 Debug.stopMethodTracing(); ``` 2)在 Android Studio 中打开应用程序项目,选择菜单栏中的 Run -> Profile 'app',打开 Profiler 工具。 3)在 Profiler 工具中选择 CPU 标签页,点击 Record 按钮开始录制 Trace 数据。 4)在应用程序中操作,触发卡顿问题。 5)点击 Stop 按钮停止录制 Trace 数据。 6)在 Profiler 工具中选择 CPU 标签页,点击 Open in Traceview 按钮,打开 Traceview 工具。 7)在 Traceview 工具中查看 Trace 数据,定位应用程序卡顿的原因。 3. Profiler Profiler 是 Android Studio 提供的一款性能分析工具,可以用于分析应用程序的性能问题,包括 CPU 使用率、内存使用情况、线程运行情况等等。使用 Profiler 可以帮助开发者快速定位应用程序卡顿的原因。 使用方法: 1)在 Android Studio 中打开应用程序项目,选择菜单栏中的 Run -> Profile 'app',打开 Profiler 工具。 2)在 Profiler 工具中选择 CPU 标签页,点击 Record 按钮开始录制性能数据。 3)在应用程序中操作,触发卡顿问题。 4)点击 Stop 按钮停止录制性能数据。 5)在 Profiler 工具中查看性能数据,定位应用程序卡顿的原因。 4. CTS (Compatibility Test Suite) CTS 是 Android SDK 提供的一款兼容性测试工具,可以用于测试应用程序的兼容性和性能。CTS 可以帮助开发者发现应用程序中的性能问题,包括卡顿、崩溃等等。 使用方法: 1)在 Android SDK 中安装 CTS 工具。 2)在终端中输入以下命令,运行 CTS 测试: ```python cts-tradefed run cts --plan CTS --device <device_id> ``` 其中,--plan 参数指定测试计划,--device 参数指定测试设备。 3)查看测试结果,定位应用程序卡顿的原因。 总之,Android 卡顿分析工具种类繁多,开发者可以根据实际需要选择合适的工具进行分析和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值