在一般的手机测试中,开发人员可能只是考虑到用户需求,实现了系统功能的完整性,而对于系统的性能方面相对涉及的就比较少,而用户对产品的使用过程中,不仅考虑的是产品功能的实现,更多考虑的却是产品的性能,一款产品在用户使用起来因为性能的问题觉得反感,虽然功能完整却得不到用户的满意,这种产品最终还是会被淘汰的,对于公司的盈利也会有较大的影响。
用户在使用Android手机的过程中,就拿launcher界面来说吧,主屏幕之间的滑动流畅或菜单之间的切换,会给用户带来一种手机性能很好的感觉,反之,如果出现画面的卡帧、丢帧的状况,用户觉会觉得手机的整体没有达到自己的心理预期,并不会去选择这样的手机;
目前在手机性能测试人们主要关注的方面在手机的流畅度、RAM、功耗等方面,流畅度方面,直接影响用户对手机的体验;而对于流畅度的定义,官方的定义为手机使用流畅,不卡顿,运行程序时达到60fps或以上的绘制效率;通俗点说法就是用户在对操作系统或应用的交互过程中所能感受到,系统相应操作并执行、描绘、显示出来的时间是在用户所能接受的范围之内,不会导致系统或应用的运行效率变低,用户感受到使用的不快。
如何来量化流畅度呢?目前现有描述流畅度的指标主要包括:
FPS:系统合成帧率
Aggregate frame stats:应用跳帧次数、幅度
Jankiness count:(估算)应用跳帧次数
Max accumulated frames:(估算)应用跳帧幅度
Frame rate:应用绘制帧率
SM:应用绘制轮询频率
Skipped frames:应用跳帧次数、幅度
在这些指标当中最为人熟知的当为FPS了,人们认为fPs在大于60帧/秒时就感觉到画面的流畅了,为什么呢?
首先画面的帧率越高,体验越好,在以下这几个帧率值中人们的直观感受是不同的:
12 fps:由于人类眼睛的特殊生理结构,如果所看画面之帧率高于每秒约10-12帧的时候,就会认为是连贯的
24 fps:有声电影的拍摄及播放帧率均为每秒24帧,对一般人而言已算可接受
30 fps:早期的高动态电子游戏,帧率少于每秒30帧的话就会显得不连贯,这是因为没有动态模糊使流畅度降低
60 fps:在实际体验中,60帧相对于30帧有着更好的体验
85 fps:一般而言,大脑处理视频的极限
那目前优化的极限为60FPS,因为显示器的刷新频率是固定的,而其中最常见的刷新频率是 60 Hz。 这样做是为了继承以前电视机刷新频率为 60Hz 的设定。然而显卡的生成图像的频率是变化的,最理想的情况是两者之间的频率是相同且协同进行工作的,在这样的理想条件下,达到了最优解。但实际中显卡的生成图像的频率是变化的,如果没有有效的技术手段进行保证,两者之间很容易出现这样的情况:当GPU还在渲染下一帧图像时,显示器却已经开始进行绘制,这样就会导致屏幕撕裂(Tear),这会使得屏幕的一部分显示的是前一帧的内容,而另一部分却在显示下一帧的内容。
屏幕撕裂(Tear)的问题,早在 PC 游戏时代就被发现, 并不停的在尝试进行解决。 其中最知名可能也是最古老的解决方案就是 V-Sync 技术。V-Sync 的原理简单而直观:产生屏幕撕裂的原因是显卡在屏幕刷新时进行了渲染,而 V-Sync 通过同步渲染/刷新时间的方式来解决这个问题。显示器的刷新频率为 60 Hz,若此时开启 V-Sync,将控制显卡渲染速度在 60 Hz 以内以匹配显示器刷新频率。这也意味着,在 V-Sync 的限制下,显卡显示性能的极限就限制为 60 Hz 以内。
那如何来获取FPS等指标数据呢,及使用的命令工具等,见下次分解。