在一般的手机测试中,开发人员可能只是考虑到用户需求,实现了系统功能的完整性,而对于系统的性能方面相对涉及的比较少,而用户对产品的使用过程中,不仅考虑的是产品功能的实现,更多考虑的却是产品的性能,一款产品在用户使用起来因为性能的问题觉得反感,虽然功能完整却得不到用户的满意,这种产品终还是会被淘汰的,对于公司的盈利也会有较大的影响。
  用户在使用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等指标数据呢,及使用的命令工具等,见下次分解。