Skip to content
阅读进度

VSync Choreographer 和 doFrame 是什么关系? ​

返回 View 与显示链路 目录

标准回答 ​

VSync 提供与显示节奏相关的时序信号。应用有动画、绘制或帧回调工作时,Choreographer 请求相应帧调度,收到事件后在所属 Looper 线程执行 doFrame,依次处理输入、动画、布局绘制和提交阶段;部分版本还有 Insets 动画等阶段。它让多种 UI 工作围绕同一帧时间协作。屏幕刷新不代表静态应用每次都执行完整的 doFrame,也不代表每次都会生成新缓冲区。60Hz 的帧周期约为 16.67ms,120Hz 约为 8.33ms,实际期限还要结合流水线和调度偏移。

延伸追问 ​

主线程已有长任务时,VSync 到达也不能抢占正在执行的 Java 代码,帧回调会延后。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。