外观
Shell Transition RemoteAnimation 和 animation leash 有什么用?
标准回答
窗口转场需要把任务或窗口状态变化与动画一起协调。传统 RemoteAnimation 允许受授权组件接管一组远程动画目标;启用 Shell Transitions 的分支会把变化参与者收集到 transition 中,交给 WM Shell 的处理器组织开始、播放和结束。animation leash 是用于动画控制的临时父图层,把目标挂到 leash 下,就能统一修改目标的变换而保留其业务图层结构。动画完成或取消后,要归还控制权、恢复最终层级和状态,并调用完成回调,防止系统一直等待转场。
延伸追问
系统负责确定窗口和任务最终状态,动画控制器负责播放,SurfaceFlinger 负责合成呈现;不要把三者都称为 SurfaceFlinger 动画。
内容来源
- Android Framework 知识手册 · 原条目
2-13