WindowState实际上是WMS用来控制每一个Window的状态。WindowState表示一个窗口的所有属性,所以它是WMS中事实上的窗口。WindowState在显示组件一侧也有个对应的类型:IWindow.Stub。以与APP端IWindow交互。
从WMS.addWindow函数中可以看到,在为WMS添加一个窗口时,会创建一个WindowState,并将其保存在mWindowMap中,该HashMap维护HashMap<IBinder, WindowState>以IWindow的Bp端为键值。
从上图可以看出WindowToken与WindowState的关系,WindowToken中可以有多个WindowState对象存在
IWindow在app端对应于ViewRootImpl.W的对象mWindow。