APP的性能问题之卡顿检测

17 篇文章 0 订阅
1 篇文章 0 订阅

在APP性能问题当中,卡顿现象非常影响用户的体验感;想要开发一款深受用户喜爱的APP,首先第一点就要保证APP的丝滑流畅;由此可看出,APP卡顿现象,开发人员对此必须重视起来。

与此同时,我们可以将反馈的常见卡顿场景,用adb系统工具观察App的卡顿数据情况,试图重现场景来定位问题。

常用的方式是:使用adb SurfaceFlinger服务adb gfxinfo功能,在自动化操作app的过程中,使用adb获取数据来监控app的流畅情况,发现出现出现卡顿的时间段,寻找出现卡顿的场景和操作。

一、常用方式

1、adb shell dumpsys SurfaceFlinger

使用‘adb shell dumpsys SurfaceFlinger’命令即可获取最近127帧的数据,通过定期执行adb命令,获取帧数来计算出帧率FPS。

优点:命令简单,获取方便,动态页面下数据直观显示页面的流畅度;

  2、adb shell dumpsys gfxinfo

使用‘adb shell dumpsys gfxinfo’命令即可获取最新128帧的绘制信息,详细包括每一帧绘制的Draw,Process,Execute三个过程的耗时,如果这三个时间总和超过16.6ms即认为是发生了卡顿。

优点:命令简单,获取方便,不仅可以计算帧率,还可以观察卡顿时每一帧的瓶颈处于哪个维度(onDraw,onProcess,onExecute);

已有的两种方案比较适合衡量回归卡顿问题的修复效果,以及判断某些特定场景下是否有卡顿情况,然而这样的方式有几个明显的不足:

1、一般很难构造实际用户卡顿的环境来重现;

2、这种方式操作起来比较麻烦,需编写自动化用例,无法覆盖大量的可疑场景,测试重现耗时耗人力;

3、无法衡量静态页面的卡顿情况;

4、出现卡顿的时候app无法及时获取运行状态和信息,开发定位困难。

基于这样的不足及痛点,我们希望能使用一套有效的检测机制,能够覆盖各种可能出现的卡顿场景,一旦发生卡顿,能帮助我们更方便地定位耗时卡顿发生的地方,记录下具体的信息和堆栈。此时,专业的检测分析APP性能的工具便可派上用场了,先分析APP性能,才可得知问题所在之处,这样就可以着手去优化APP的性能了。

说到检测分析APP性能的工具,我个人认为“友盟”这款工具就极其适合开发者朋友们,完善的功能种类,贴心的功能,丝滑流畅的操作;U-APM 是友盟+推出的App稳定性监控、性能监控和云真机测试平台。通过轻量级的集成接入即可拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力,及卡顿、启动分析等性能能力。

比如说APP性能问题当中的卡顿现象,便可使用U-APM卡顿分析功能,通过U-APM提供的监控SDK 捕获所监控App主线程消息执行超时的情况,帮助开发人员优化用户使用体验、用户反馈问题是否与卡顿现象间接引发有关。

此外,友盟的“智能诊断”功能也非常强大完善,可以解决客户端开发者处理问题无从下手的痛处,在判断原因和解决方案上提供帮助。并且,设计出智能算法根据海量堆栈内容AI诊断出错误原因,提供专项解决方案!

总归来说,对于开发人员来讲,优化APP性能的任务还很重,道路还很长;这其中的过程也是漫长且枯燥的,开发人员要做的就是静下心来,慢慢沉淀自己,慢慢进步,每天距离目标更近一点!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值