安卓系统卡顿解决方法一文详解

随着现代科技的进步,大家越来越追求使用不卡顿、流畅的app。由于厂家的分散性,有很多APP仍然存在卡顿不流畅的问题。但是,靠传统的测试方法是没办法完全发现问题的。下面给大家分享卡顿检测必备工具友盟+U-Apm,帮助开发者分析APP卡顿问题,缩短问题排查时间,为后续优化争取时间!

一、首先我们来了解一下卡顿

用户在使用我们应用的时候,很多问题是很难被及时的发现的,比如内存占用高,耗费流量等,但是一旦发生卡顿就会被用户直观的感受到。所以应用卡顿是很影响用户体验的。另外一方面,对于开发者来说,卡顿的问题很难定位,发生问题的原因错综复杂,比如:代码问题、内存问题、绘制问题以及IO操作等等。而且线上发生的卡顿问题在线下我们很难复现,因为这和用户当时的系统环境有很大的关系,因此我们需要在用户发送卡顿的时候记录下用户使用的场景等。比如:内存消耗,磁盘空间,用户行为路径等等。那么如何获取这些信息呢?这里推荐大家使用友盟+u-apm性能检测工具中卡顿分析功能!让我们详细了解一下这款工具!

二、友盟+u-apm轻量型性能检测工具

性能稳定是用户良好体验的关键,友盟团队根据性能稳定问题,开发出u-apm性能检测平台,通过轻量级的集成接入即可拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力,及卡顿、启动分析等性能能力,支持多场景、多通道智能告警监控,帮助开发者高效还原异常、卡顿用户的访问路径和业务现场,缩短故障排查时间。

u-apm卡顿分析功能详解,如下:

1、卡顿趋势:您可以在此页面查看不同时间段、筛选维度下的卡顿数据趋势,默认展示全部维度、今天的数据,您可以根据自己的查询条件进行筛选。

2、卡顿列表:您可以在此列表中查看筛选维度+时间范围内,所有卡顿问题根据日志根据算法聚合后的错误列表,默认按照卡顿次数降序展示,帮助您快速的找到卡顿次数最多、影响最严重的卡顿问题。您也可以选择按照影响人数排行,找到影响面积最大的卡顿问题。

3、卡顿模块:卡顿模块通过智能算法聚类了卡顿的模块与子模块,支持正序聚合与倒序聚合。

4、卡顿分布:显示时间段内,按照设备(机型)、系统、运营商、版本、渠道、地域七个维度的错误次数分布图,按照页面整体筛选维度项进行筛查。

三、一些卡顿的原因及优化方向总结

1、双缓冲机制:双缓冲技术一直贯穿整个 Android 系统。因为实际上帧的数据就是保存在两个 Buffer 缓冲区中,A 缓冲用来显示当前帧,那么 B 缓冲就用来缓存下一帧的数据,同理,B显示时,A就用来缓冲!这样就可以做到一边显示一边处理下一帧的数据。

2、 过度绘制( Overdraw )

Overdraw: 用来描述一个像素在屏幕上多少次被重绘在一帧上.

通俗的说: 理想情况下, 每屏每帧上, 每个像素点应该只被绘制一次, 如果有多次绘制, 就是 Overdraw, 过度绘制了。 常见的就是:绘制了多重背景或者绘制了不可见的UI元素.

解决方案:Android系统提供了可视化的方案来让我们很方便的查看overdraw的现象:在”系统设置”–>”开发者选项”–>”调试GPU过度绘制”中开启调试:此时界面可能会有五种颜色标识:

overdraw indicator

原色: 没有overdraw

蓝色: 1次overdraw

绿色: 2次overdraw

粉色: 3次overdraw

红色: 4次及4次以上的overdraw

一般来说, 蓝色是可接受的, 是性能优的。

3、频繁的 GC

实际上内存原因也可能会造成应用不流畅, 卡顿的。

解决方案: 一般来说瞬间大量产生对象一般是因为我们在代码的循环中 new 对象, 或是在 onDraw 中创建对象等。还是是尽量不要在循环中大量的使用局部变量。所以说这些地方是我们尤其需要注意的。

四、总结

友盟+ U-APM 是一款很好的测试工具。我们在追求性能流畅的同时,使⽤这些优秀的 debug 工具是十分必要的。使用恰当的分析工具,找出产生问题的原因,可以为制定优化方案争取更多时间!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值