应用程序界面流畅度的量化方法与应用

Last update: 20180725

指标与现实不匹配

应用流畅度是我们最关心的性能优化指标之一,本文主要介绍流畅度指标的理解与实际应用。
流畅度评判的难度在于量化指标并不能完全对应到感官体验上。

这什么意思呢? 举个简单例子;

假设有一个过场动画,从FPS,FrameUpdate等指标来看都是满分的,也就是FPS = 60, FrameUpdate <= 16ms。
但从观感来看动画不是”够”流畅,过程中有顿挫感。更有意思的是,因为它是主观感受,所以其结论也是因人而异。

优化效果的验证方法

验证优化效果的流程可拆分为如下:

  • Code Build:编译出来的程序
  • Verify in Lab:由实验室环境下由人使用测试用例验证
  • CI by Robot:程序由可持续集成框架(CI: Continuous Integration)进行自动化性能测试
  • Monitor in RUM:使用大数据工具分析线上用户数据在真实环境下的数据

我们推荐的做法是:

  • 定性方法(Qualitative method)应用在 [Verify in Lab]。
  • 定量方法(Quantitative method)应用在 [CI by Robot],[Monitor in RUM]。

定性方法 (Qualitative method)

由于有些人对应用流畅度感受不够敏感,可以由对其比较敏感,在意的人员来操作。流畅度测试与其他测试不同,他需要
测试人员的对卡顿现象(界面更新不自然)的有与生俱来的感觉与挑剔。 拥有这种品质的人是定性测试的最佳人选。

定量方法 (Quantitative method)

针对流畅度量化方法,我们的解决方案是不同界面场景使用不同的量化指标。

常见应用场景:

  • 流媒体,视频播放,相机类
  • 游戏类
  • UX应用-内容浏览类
  • UX应用-内容交互类

流畅度量化指标:

  • FPS Family
    • Realtime FPS
    • Static FPS
    • FPS Stability
  • Frame Drop Family
    • Frame Drop Percent (FDP)
    • Frame Drop Badass (FDB)
    • Frame Drop Heavy Tail (FDHT)
  • Heavy task in UI Thread (HT)

应用场景与量化指标间的使用关系为:

  • [流媒体,视频播放,相机类} -> [FPS Familiy]
  • [游戏类] -> [FPS Family]
  • [UX应用-内容浏览类] -> [FDP, FDB, HT]
  • [UX应用-内容交互类] -> [FDHT, HT]

待办项:

  • 量化指标三大类具体计算方法?
  • 场景与量化方法间匹配原则?

Reference

  • Web Performance: Leveraging the Metrics that Most Affect User Experience (Google I/O ‘17)