如果你无法度量它,那么你将无法优化它

什么是用户感知流畅度

业界对流畅度的定义有较多的定义,摘录百度文心一言给的定义如下:

流畅度通常指的是应用程序或系统在响应用户操作时的顺畅程度和响应速度。具体来说,流畅度可以通过以下几个关键指标来衡量:

  1. 帧率(FPS):帧率(Frames Per Second,简称 FPS)是指每秒显示的帧数。高帧率意味着画面更新更快,用户体验更流畅。例如,60 FPS 表示每秒刷新 60 次画面,而 120 FPS 则表示每秒刷新 120 次画面。
  2. 延迟(Latency):延迟是指系统或应用响应用户操作所需的时间。低延迟意味着用户操作能够更快地得到反馈,从而提高用户体验。
  3. 输入响应时间:输入响应时间是指从用户进行操作到系统或应用响应该操作所需的时间。快速的输入响应时间能够提升用户的操作体验。

感知流畅性是人对加工信息难易程度的一种主观体验,它指手势触控、视觉感知、心理预期三者合一的综合体验。一方面是交互操作到响应开始的瞬时性,包括点击响应时延、滑动响应时延;另一方面是响应开始到加载完成过程中,动效和加载的同步以确保视觉感官的顺滑,包括最大连续丢帧率、动效时长。整体而言就是手势触控的完成时延和视觉感知的加载效果符合心理预期。

整体来看偏技术的角度去定义流畅度。从用户的角度来说,流畅度是用户对操作反馈的合理预期的满足,而预期的背后是认知负荷。例如,用户点击一个按钮,点完的预期是有种反馈、变化,如果这种反馈、变化给的很慢,用户就会产生焦虑,因为他认知中的那种变化没有立刻给到,为此他还要去持续关注按钮,并且延误接下来的进一步交互,带来多余的认知负荷,人类天性有节省能量的诉求。

流畅度要优化必须指标化度量。系统的流畅度对于用户体验至关重要,每个科技公司对于自家产品的流畅度体验都非常重视,投入资源进行优化。由于流畅度的用户体验偏于人的主观感受和直觉,难以测量。如果无法测量它,那么优化也就无从谈起。因此从各种技术角度出发,将流畅度数据化,然后才能进行优化迭代。

用户感知流畅度是从用户体验产品的视角定义的流畅度。它相比较其他指标的统计角度比如 fps、vsync 等,从用户视角的操作帧、视觉帧出发去度量,也更能代表用户体验,避免了用户体验与数据表现的撕裂,比如数据表现很好,甚至是领先第一,但是体验却没有那么匹配。我把用户感知流畅度指标简称为体验指标

如何定义用户感知流畅度指标

🧠 [白板思维导图: 用户感知流畅度框架]

  • 用户感知流畅度
    • 交互体验流畅性
      • 设计原则
        • 一致性
        • 简洁性
        • 反馈清晰
      • 指标
        • 点击响应时延(100ms)
          • 应用启动时延
          • 页面切换时延
          • 控件出现时延
        • 滑动响应时延
          • 抛滑时延(80ms)
          • 拖滑时延(60ms)
    • 视觉体验流畅性
      • 设计原则
        • 自然流畅
        • 简洁高效
        • 快速响应
        • 运动一致
        • 隐匿等待
        • 凸显品牌
      • 指标
        • 加载完成时延
        • 最大连续丢帧数
        • 动效帧间距曲线平滑度

既然用户感知流畅度从用户体验视角定义流畅度,那么指标的定义和获取也必然是用户视角的,通过录制用户体验产品的交互视频,然后从视频中分析帧率变化来评估流畅度是最能反应用户体验流畅度的方式。这里要注意的是录制视频的帧率与设备的帧率必须相同才能准确体现用户体验。

用户对系统的流畅感知因场景的不同而不同,但是有些固定的特征表现在流畅度的感知中是固定的。

流畅的特征

连续性

用户与系统界面交互时,界面帧率的稳定、连续对于流畅度感知有很大影响。

及时性

在技术语言中,还有几个同名词,如响应时延、跟手等等,表达都是同一类意思。及时性本质上是用户对操作反馈的等待不耐诉求,因此操作反馈越及时越好。

自然性

自然性在此处用于对流畅度的描述,是一个含义比较多的词,比如页面不闪烁,有合理的物理动效反馈,总之是符合用户在物理世界对事物的认知和体验的常识,没有”惊喜”,符合人的直觉和自然之道。

用户感知流畅度指标定义

以上三种特征基本涵盖了用户对系统的流畅度感知,因此体验指标也是针对这三种特征来进行定义的。

平滑度(抖动率)

平滑度(抖动率)是衡量连续性品质的指标。它基于这样一个观察:在均匀、稳定的操作中,同一个视觉元素在每一帧中的变化(位置、位移、大小)应当是连续均匀分布的。体现为随着时间变化关于帧间距变化量的平滑曲线。曲线的走向无需关心,曲线的平滑度(毛刺抖动)衡量了流畅的程度。

有了这个指标我们能讲清楚为什么 120 帧率的设备比 60 帧率的设备流畅——因为一秒绘制 120 帧比一秒绘制 60 帧所得到的帧间距曲线更加平滑。如果帧间距曲线出现毛刺,说明平滑度不好,甚至是丢帧。

由此得出帧间距的计算公式:

💡 帧间距 = | 当前帧几何信息 − 前一帧几何信息 | × 缩放因子

  • 几何信息:可以是位移、大小、位置等单一或者综合变量,用来跟踪几何变化。
  • 缩放因子:主要用来辅助提升数值的易读性。

响应时延

响应时延是衡量及时性品质的指标。

💡 响应时延 = 第一帧变化时间点 − 手指抬起时间点

手指抬起为起点,到第一次用户预期里的变化帧出现,这段时间是响应时延。时延越短,用户感知流畅度越好。

品质

品质是针对衡量自然性的描述。狭隘的理解主要指是否有闪烁、残影等不足,广义的理解指动效和视效是否合乎人的直觉和习惯。因此品质难以定量分析,只能定性描述,比如是否有闪烁、动效设计不合理等。

用户感知流畅度与基础流畅度的指标的区别

什么是基础流畅度

基础流畅度是从系统功能的角度定义的流畅度。它是一个系统是否流畅的基本盘,从技术里来,受到技术直接影响。如果基础流畅度不行,那么产品大概率是卡的。指标制定通常是基于系统的技术中间件(如 SurfaceFlinger)提供的 fps 信息,结合卡顿算法模型而得出,各家在这一指标上的差异点主要是在卡顿算法模型上。我把基础流畅度指标简称为技术指标

体验指标优于技术指标

雷总说,我们的产品要从数据领先变为体验领先。从这个角度来出发,流畅度的指标,越能度量用户体验越好。

那它两之间有什么差异?

  1. 体验指标(Experience metrics)更能反应真实用户体验。通过录制用户操作的帧率视频,是渲染的近似最终节点。技术指标(Technical metrics)大多来自于渲染链路的中间节点,不能代表最终渲染效果。

  1. 体验指标可以从非帧率的角度优化,技术指标不行。体验指标不仅包含的内容比技术指标丰富,而且体验指标的优化可以从视效、动效、插帧、做假图的角度来进行优化。

    以在桌面点击图标启动应用的”障眼法”为例:为了提升用户感知到的应用启动速度,在图标点击之后,在桌面应用程序中把被启动应用的闪屏图先展示出来,直到应用真正启动后再进行无缝过渡替换。点击瞬间就出来页面,从技术上来说并非如此,但用户视角感知到的是启动速度很快,这就提升了用户感知流畅度,用户认为系统是流畅的。

用户感知流畅度优化需要设计和工程师协作

用户感知流畅度优化涉及动效设计、视效调优、插帧/假图等”非纯技术”手段,需要设计师(制定动效与视觉规范)与工程师(实现与性能保障)紧密协作才能落地。

总结

用户感知流畅度是从用户体验视角出发的,基于具体交互场景符合用户直觉感知的自然、流畅性评估。

基础流畅度基于技术中间件统计的指标,是纯粹的技术指标;用户感知流畅度是从用户的真实操作中统计的指标,是体验指标,用户感知流畅度更加细腻准确。


📥 抓取自飞书 wiki 空间 7541192071952990209,obj_token: MwQddHlIqoLjuaxAHV5cFvwknqe 🔗 性能强相关:通用流畅度分析见 blog/performance/rendering/;本系列总览见 用户感知流畅度评估体系