前言:TaskViewSimulator 这个类在最近任务中起到了一个非常重要的作用。
从字面意思上理解,这个单词是由TaskView+Simulator组合而来,字面意思就是TaskView的模拟器,顾名思义,就是一个用来模拟TaskView的类。
为什么要模拟TaskView呢?这个类跟TaskView本身又有什么关系和区别呢?本文来详解一下这个类。
我们来详细解释一下 quickstep/src/com/android/quickstep/util/TaskViewSimulator.java 这个类的作用。
核心作用 (Core Purpose):
TaskViewSimulator 的核心作用是模拟(Simulate)一个应用窗口(由 RemoteAnimationTarget 代表,本质是一个 SurfaceControl Leash)在手势导航过程中,从全屏状态过渡到最近任务(RecentsView)中的任务卡片(TaskView)外观所需的视觉变换(Visual Transformation)。
简单来说,当你在屏幕底部上滑时,你看到的那个正在缩小的应用窗口,它的大小、位置、裁剪区域、圆角等视觉属性,并不是直接由 RecentsView 里的 TaskView 控制的,而是由 TaskViewSimulator 计算出来,然后应用到系统层级的应用窗口 Leash 上的。它扮演了一个**“虚拟 TaskView 布局计算器”**的角色。
为什么需要模拟?(Why Simulation is Needed):
- 解耦 (Decoupling): 最近任务动画是由 SystemUI (WindowManager/Shell) 发起的,它控制的


9501

被折叠的 条评论
为什么被折叠?



