Skip to content
阅读进度

如何理解Choreographer 与帧调度? ​

返回 View 与显示链路 目录

标准回答 ​

Choreographer协调与显示时序相关的回调,让输入处理、动画和遍历等工作围绕帧节奏执行。ViewRootImpl在需要更新时安排遍历,主线程仍要真正获得CPU并执行相关回调。

VSYNC到来不保证立刻开始doFrame。主线程可能被已有消息、同步调用或调度等待占住;动画也不是额外开一条后台线程自动执行。定位时比较预期开始、实际开始和关键回调结束。

postFrameCallback适合需要帧时序的轻量工作,不能把昂贵业务塞进去期待它自动变快。回调中长时间阻塞会继续影响UI。

追问与回答 ​

所有帧都执行完整的measure layout draw吗 ​

不是。只有需要的阶段才会执行,布局请求、脏区域及渲染状态会影响实际工作。不要把完整流程当成每一帧固定成本。

参考资料 ​

内容来源 ​

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