F7.12.3Degrade motion on low-end devices设计
复杂动效在低端设备上需要降级或关闭而非等比缩放
别名: 低端降级 · 不能只压时长 · 能力降级
概念解释
低端机上把 400 毫秒的模糊缩放改成 200 毫秒,每帧工作量几乎不变,掉帧只会更密。要降的是效果复杂度,不是把同一条曲线压短。等比缩放时长是在用知觉账去补性能账:短了仍然重,重了就更明显地吃力。低端需要的是关掉模糊、阴影、布局动画,或整段不播。
机制
每帧成本由像素填充、层上传、布局范围决定,不由设计时长决定。时长减半,帧数减半,单帧仍然可能超过预算;更糟的是同样的工作被塞进更少的垂直同步,长尾更密。模糊和大半径阴影是填充率杀手,在低 GPU 上比位移贵一个数量级。低端 CPU 上一旦动画碰到布局,主线程还要和输入、列表回收抢。
能力降级是换一条更便宜的路径:变换代替布局、实色代替模糊、淡入代替缩放、硬切代替一切。判断依据是这台设备能不能稳住帧预算,不是屏幕尺寸——小屏旗舰可以很强,大屏入门机往往更弱。
边界
- 用户开了减弱偏好时,走减弱分支,不必再叠一套性能降级的位移;两条同时开着的位移会打架。
- 「低端」要按实测帧时间分档,不能只按系统版本年份。
- 降级后关键状态仍须可感知,否则性能安全会变成变化盲视。
怎么落地
- 为复杂运动准备关闭 / 简化 / 完整三档,按运行时帧时间或设备档位选择,默认偏向下档。
- 不要把高端上的时长乘一个系数当成低端方案。
- 验证:在入门机上比完整版和降级版。完整版能数出卡、降级版稳定,就保留降级;若降级只是更快地卡,说明没降复杂度。