外观
窗口转场闪烁 错位或动画结束不恢复 怎样排查?
标准回答
我会同时收集 WM、SurfaceFlinger 和 Shell Transition Trace,在 Winscope 按转场 ID 对齐系统容器状态与实际图层状态。先核对参与目标和最终 bounds,再看 leash 的父子关系、matrix、crop、alpha 与 visibility,检查开始和结束事务是否正确应用,目标内容是否及时就绪,以及完成或取消回调是否执行。若只在跨屏或旋转中出现,还要核对 Display 配置和坐标转换。Perfetto 用来补充各线程执行和帧期限,最终定位到具体错误事务或状态交接。
延伸追问
动画视觉结束与系统转场 finish 是两个环节,遗漏 finish 可能让后续转场或状态更新受到影响。
内容来源
- Android Framework 知识手册 · 原条目
7-7