外观
Perfetto 中 Actual Timeline 和 Actual Present Time 能代表首帧吗?
标准回答
可以用于定位某帧实际呈现,但不能单凭名称就认定它是目标页面的首帧。应先对应到目标应用窗口/图层和帧,再确认该帧呈现的是启动画面还是有效业务内容,以其实际呈现时间减去同一测量定义的起点;不能把 doFrame、onDraw 结束直接当成屏幕已显示。
通俗例子
某帧 doFrame 已结束,但 GPU、合成或显示还没完成。分析首帧要结合目标窗口与 FrameTimeline,确认那帧是不是你关心的内容。
深入解释
**几个终点怎样区分:**onDraw 表示 CPU 侧绘制逻辑执行,提交缓冲表示交出这一帧,合成与实际呈现则发生在后面。FrameTimeline 把预期和实际帧时间关联,帮助发现延迟与掉帧。
**怎样确认你找的是首帧:**先锁定目标窗口、图层与对应帧,再确认内容是启动外壳还是业务有效画面。不能把 Trace 中任意一个 Actual Present 时间当成所测页面的首帧。
易混淆点
doFrame 结束不等于屏幕已经显示;启动预览窗口的帧也可能不是应用真实内容首帧。
参考资料
内容来源
- Android · AI Agent 知识手册 · 原条目
3.6.5