F7.12.3Degrade motion on low-end devices设计

复杂动效在低端设备上需要降级或关闭而非等比缩放

别名: 低端降级 · 不能只压时长 · 能力降级

概念解释

低端机上把 400 毫秒的模糊缩放改成 200 毫秒,每帧工作量几乎不变,掉帧只会更密。要降的是效果复杂度,不是把同一条曲线压短。等比缩放时长是在用知觉账去补性能账:短了仍然重,重了就更明显地吃力。低端需要的是关掉模糊、阴影、布局动画,或整段不播

机制

每帧成本由像素填充、层上传、布局范围决定,不由设计时长决定。时长减半,帧数减半,单帧仍然可能超过预算;更糟的是同样的工作被塞进更少的垂直同步,长尾更密。模糊和大半径阴影是填充率杀手,在低 GPU 上比位移贵一个数量级。低端 CPU 上一旦动画碰到布局,主线程还要和输入、列表回收抢。

能力降级是换一条更便宜的路径:变换代替布局、实色代替模糊、淡入代替缩放、硬切代替一切。判断依据是这台设备能不能稳住帧预算,不是屏幕尺寸——小屏旗舰可以很强,大屏入门机往往更弱。

边界

  • 用户开了减弱偏好时,走减弱分支,不必再叠一套性能降级的位移;两条同时开着的位移会打架。
  • 「低端」要按实测帧时间分档,不能只按系统版本年份。
  • 降级后关键状态仍须可感知,否则性能安全会变成变化盲视。

怎么落地

  • 为复杂运动准备关闭 / 简化 / 完整三档,按运行时帧时间或设备档位选择,默认偏向下档。
  • 不要把高端上的时长乘一个系数当成低端方案。
  • 验证:在入门机上比完整版和降级版。完整版能数出卡、降级版稳定,就保留降级;若降级只是更快地卡,说明没降复杂度。

延伸

  • 同组F7.12.1 动效计算与渲染占用的资源可能挤占主线程导致卡顿 · F7.12.2 掉帧的动效比没有动效更损害体验,因为暴露了系统吃力 · F7.12.4 同时触发的多个动效会叠加性能开销超出单个动效评估范围
  • 相邻R3.16 低端设备与降级策略 · R3.08.3 动画需可根据设备能力降级 · F7.08.2 减弱不等于取消,可用淡入淡出替代
  • 站内检索low-end degrade · frame budget · fill rate

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/F7.12.3