资讯专栏INFORMATION COLUMN

如何准确评测Android应用的流畅度?

paney129 / 1981人阅读

摘要:根据测试经验,对值对应的卡顿严重程度打分。说明根据测试同学的经验,流畅度指标低于时,用户能感知到卡顿,在以下卡顿比较严重。

作者简介:

叶方正 2008年加入腾讯,就职于无线研发部【专项测试组】。曾经负责多个产品的性能优化工作,积累大量的移动终端平台优化以及评测经验。


怎样获取SM值?

通过测量应用的帧率FPS并不能准确评价App的流畅度,FPS较低并不能代表当前App在UI上界面不流畅,而1s内VSync这个Loop运行了多少次更加能说明当前App的流畅程度。

那么我们可以直接在App代码中通过Choreographer的回调FrameCallback来计算Loop被运行了几次,从而知道应用的流畅度。但在实际情况下我们不一定能修改代码(实际发布的版本不允许加入测试代码)或者根本拿不到代码(譬如和竞品进行对比)。

今天我们介绍一种更简单直观测量Android应用流畅度的方法,就是通过开源测试工具GT(http://gt.qq.com)。

1、先启动要测试的应用。

2、启动GT,在插件中选择GT Injector,再选择被测进程,点击“射它”。

3、点击后,Para界面会出现流畅度指标以及被插入程序的CPU占有率,并且会带上被插入的进程名。将流畅度后面小方框勾选(表示需要记录SM值到log文件),然后点击右个角“Gather & Warning”下小红圈(表示开始记录数值)。

4、启动App,开始做相关的测试。

5、完成测试后,在GT界面点击流畅度(SM),则会出现已经记录的SM值图表,点击右上角磁盘图标,保存log到指定名字的文件夹。

6、最后利用工具(比如应用宝),把log导入到PC端进行后期处理(一般情况下,文件保存路径在:SD卡/GT/GW/进程名/自定义文件夹)。


SM测试效果如何?

我们已经收集了SM的测试数据,但测试数据是否准确?我们拿一些浏览器产品为例子,来评测下SM的数据和人的感受是否对应得上。

首先,我们为了把感官和人的感受对应上,特把主动感官分数对应到以下几种描述。

1、先看看流畅度(SM)和丢帧(SF)之间的关系

测试场景:浏览器看妹子图

评测手机:Nexus 4

流畅度主观评分(总体):2.5(界面滑动明显顿挫感,响应用户输入有种慢半拍的感觉)

因为丢帧是个不连续的过程,所以图中的丢帧都是以点来表示其离散的状态。从上面图表可以看出:

丢帧(SF)越多,流畅度(SM)越低。

26:16~26:42之间的流畅度很低,并且丢帧最密集。

再整体梳理一下这期间流畅度、丢帧和主观评分的数据:

从这个数据可以看到,丢帧(SF)越多流畅度(SM)越低,并且主观感觉比较卡,这个关系是成立的。

2、再引入FPS看看三者关系

测试场景:浏览器看妹子图

评测手机:Nexus 4

流畅度主观评分(总体):2.5

这次测试引入了FPS数据,从图表中可以看出:

FPS曲线和SM曲线差不多,而且同样受丢帧的影响。

有段比较奇怪的地方:流畅度很高,但FPS比较低,无丢帧情况,将这段数据放大来看:

检查这个时段的测试场景:静置在某个界面没有动,主观评分在4.5左右。

再整体梳理一下这个时间段FPS、流畅度、丢帧和主观的数据:

可以看出,流畅度SM会比FPS更加适合客观描述App卡的程度。


如何有效利用SM值判断App流畅度?

确定了使用SM值来评估手机App的流畅度后,我们会开始进行一个产品在不同场景,以及多个产品间在相同场景下的测试对比。场景太多,测试数据巨大,该如何有效使用SM测试结果去判断App流畅情况?

1、一些思路

不能直接用平均值和方差
根据以往经验,通过平均值,方差等一些指标,并不好说明问题。如果卡顿时间出现较短,测试时间较长,则平均值和方差这种指标不容易发现问题,但是又确实有卡顿。平均值和方差适合描述服从正态分布的随机变量,但是测试得到的SM值并不是这样的随机变量。

将测试结果按卡顿和流畅分段,对每个卡顿区间段打分
之前参考了一篇游戏流畅度评分的文章,该文章结合FPS平均值和卡顿的程度以及频率,对游戏整体流畅度打分。但是普通App和游戏的区别比较大。对普通App来说,用户不是一直在操作,而且不同的操作差异也较大,因此卡顿的频率一般较低,用平均值和卡顿的频率打分得到的结果可能会偏高。所以把测试过程按照卡顿和流畅分段,计算每个卡顿区间的打分和持续时间可能更有参考意义。

总体打分时加大卡顿时的权重,降低流畅区间的权重
虽然我们重点关注的可能是卡顿的地方,但是竞品测试,以及两个版本对比需要有总体评判结果,不能只看局部。为了加大结果的区分度,对卡顿区间增加权重,对流畅区间降低权重,来突出卡顿对整体评分的影响。因此,评估结果将包括两部分:总体打分,以及卡顿区间、流畅区间的持续时间和打分。

2、流畅度评估方法

预处理,每5个(秒)一组,取最低值。如果5秒内出现多于一次卡顿(SM低于40),则再乘以一个和卡顿次数有关的权值(小于1)。

【说明】如果卡顿出现次数较少,平均值和方差不容易发现问题。因此没有直接对数据评估,先进行了预处理,突出SM值低的部分,加大卡顿对总分的影响。
处理前的三组数据:

处理后的三组数据:

将处理后的数据按卡顿和流畅分段,针对每段打分。

【说明】如果只有最后总分,且流畅的时间较长,卡顿的数据容易被流畅的数据淹没。而且有些测试场景存在一段流畅,一段卡顿的现象,卡顿并不一定在整个测试过程中存在。这样分开流畅和卡顿的区间处理,更容易看出卡顿的程度。

根据测试经验,对SM值对应的卡顿严重程度打分。

【说明】根据测试同学的经验,流畅度指标SM低于40时,用户能感知到卡顿,SM在20以下卡顿比较严重。因此在打分时,SM值在20以下时打分最低,对应0-20,在20-30区间打分低,对应20-60,30-40区间打分较低,对应60-70,40以上打分在70以上。
总体打分时降低流畅区间的权重。

【说明】这样处理的原因和第一项的原因一样,我们更关注的是卡顿,流畅区间过长时会淹没卡顿的数据。

3、对比几个浏览器产品在同一个场景下的测试数据

测试场景:浏览网页

评测手机:Nexus 4

测试方法:打开凤凰网,来回上下滑动,在滑动的过程中记录流畅度数据

流畅度评估后数据:

从上面的数据可以看出,在滑动浏览网页时,C浏览器略微好于A浏览器和B浏览器。

当然这都是在性能比较好的手机(Nexus 4)上测试,其实主观感受差距不大,但从量化数据上就可以看出优略。


小编有话说

卡顿的问题严重性,可能不像崩溃来得那么强烈,但对于用户的流失影响是潜移默化,慢慢深入。若想知道自己产品流畅度如何,也可以试试用SM来评测自己产品性能。


腾讯Bugly简介

Bugly是腾讯内部产品质量监控平台的外发版本,其主要功能是App发布以后,对用户侧发生的Crash以及卡顿现象进行监控并上报,让开发同学可以第一时间了解到App的质量情况,及时机型修改。目前腾讯内部所有的产品,均在使用其进行线上产品的崩溃监控。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12426.html

相关文章

  • Android性能优化问题总结

    摘要:性能优化第七篇严苛模式检测耗时与内存问题意思为严格模式,是用来检测程序中违例情况的开发者工具。但是用来评测一个应用是否真的卡顿存在两个问题,我们可以使用帧率检测。  性能优化这块,分为UI性能优化、内存优化、数据库优化、网络优化、耗电优化等等。可以从1.如何发现问题,2.怎么解决问题,3.解决效果对比,这几个方面去描述。举个简单例子——UI优化,可以从 UI出现什么问题(卡顿不流畅),怎么查...

    yibinnn 评论0 收藏0
  • 音视频技术:视频质量评价方法简介

    摘要:为了更好的评价视频质量,研究人员根据人类自然视觉上的特性,提出了许多新的评价方法。在众多全参考视频质量评估方法中,属于结果较为优秀的一种。不过无参考视频质量评价目前已是视频质量相关研究的重点。 视频质量评估(VQA)一直是个很活跃的研究领域,原因其一是业内一直缺少一种统一且准确的评估标准,其二是影响视频质量的因素过多,且包含很多主观因素,难以客观、定量地评价。经过这么多年的研究,已经诞...

    ThinkSNS 评论0 收藏0
  • 那些年我们用过显示性能指标

    摘要:若某个的合成不在中进行如,则该的显示性能无法用这类指标进行衡量。我们再来仔细瞧瞧给出的显示性能测试的十全大补丸。通过这条命令,我们获取每一帧绘制过程中每个关键节点的耗时情况,从而仔细的分析潜在的性能问题。 前言 注:Google 在自己文章中用了 Display Performance 来描述我们常说的流畅度,为了显得有文化,本文主要用显示性能一词来代指流畅度(虽然两者在概念上有细微差...

    Forest10 评论0 收藏0
  • 【Bugly干货分享】TRIM:提升磁盘性能,缓解Android卡顿

    摘要:长期使用手机必将产生大量的磁盘碎片,而磁盘碎片将会降低磁盘的读写性能,从而影响系统流畅度。相对于方案一,该方案总体耗时较长,但不会影响正常操作时的磁盘性能。主动调用后,可以发现卡的效率指标均恢复至接近原始值水平但仍未完全达到初始状态的水平。 Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly 邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创...

    bovenson 评论0 收藏0
  • BERT和ERNIE谁更强?这里有一份4大场景细致评测

    摘要:和,领域近来最受关注的大模型究竟怎么样刚刚有人实测比拼了一下,结果在中文语言环境下,结果令人意外又惊喜。随后在年上半年,百度的开源深度学习平台发布了知识增强的预训练模型,通过海量数据建模词实体及实体关系。 BERT和ERNIE,NLP领域近来最受关注的2大模型究竟怎么样?刚刚有人实测比拼了一下,结果在中文语言环境下,结果令人意外又惊喜。具体详情究竟如何?不妨一起围观下这篇技术评测。 写...

    kycool 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<