WindowState實際上是WMS用來控制每一個Window的狀態(tài)誊爹。WindowState表示一個窗口的所有屬性,所以它是WMS中事實上的窗口澳窑。WindowState在顯示組件一側(cè)也有個對應(yīng)的類型:IWindow.Stub遮怜。以與APP端IWindow交互。
從WMS.addWindow函數(shù)中可以看到搅窿,在為WMS添加一個窗口時,會創(chuàng)建一個WindowState隙券,并將其保存在mWindowMap中男应,該HashMap維護HashMap<IBinder, WindowState>以IWindow的Bp端為鍵值。
WindowState&WindowToken.jpg
從上圖可以看出WindowToken與WindowState的關(guān)系娱仔,WindowToken中可以有多個WindowState對象存在
IWindow在app端對應(yīng)于ViewRootImpl.W的對象mWindow沐飘。