外观
doFrame 结束是不是表示这帧已经显示 如何确定首帧?
标准回答
doFrame 结束只是应用侧帧处理到达某个阶段,后面还可能有 RenderThread、GPU、缓冲区等待、SurfaceFlinger 合成和实际呈现。确定首帧时,我会区分首次应用内容绘制、缓冲区提交和屏幕呈现,用 Perfetto 的应用与 SurfaceFlinger FrameTimeline、对应 Surface 或 layer,以及 present 相关信息关联起来。Actual Timeline 的区间也不能脱离所属轨道解释:应用帧与 Display 帧的终点含义不同。对于点击到首帧响应,要统一输入起点和实际呈现终点。
延伸追问
doFrame 后面的数字可能是 Trace 参数或帧标识,应看该轨道说明,不能直接解释成耗时或已显示帧数。
内容来源
- Android Framework 知识手册 · 原条目
2-11