外观
如何理解Choreographer 与帧调度?
标准回答
Choreographer协调与显示时序相关的回调,让输入处理、动画和遍历等工作围绕帧节奏执行。ViewRootImpl在需要更新时安排遍历,主线程仍要真正获得CPU并执行相关回调。
VSYNC到来不保证立刻开始doFrame。主线程可能被已有消息、同步调用或调度等待占住;动画也不是额外开一条后台线程自动执行。定位时比较预期开始、实际开始和关键回调结束。
postFrameCallback适合需要帧时序的轻量工作,不能把昂贵业务塞进去期待它自动变快。回调中长时间阻塞会继续影响UI。
追问与回答
所有帧都执行完整的measure layout draw吗
不是。只有需要的阶段才会执行,布局请求、脏区域及渲染状态会影响实际工作。不要把完整流程当成每一帧固定成本。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q036