
WindowManagerService
桥梁模式
整个WMS体系中的桥接模式
抽象部分:
Window和PhoneWindow构成窗口抽象部分,Window为该抽象部分的抽象接口,PhoneWindow为抽象部分的具体实现及拓展。
实现部分:
WindowManager为实现部分的接口基类继承自ViewManager,WindowManagerImpl为实现部分的具体逻辑实现,其使用WindowManagerGlobal通过IWindowManager接口与WindowManagerService交互,由WMS完成窗口管理,事件管理/事件分发。
桥梁部分:
public abstract class Window {publick void setWindowManager(WindowManager wm,IBinder appToken,String appName,boolean hardwareAcelerated) {if (wm == null) {wm = (WindowManager)mContext.getSystemService(Context.WINDWO_SERVICE);}// WidnowManager与Window绑定mWindowManager = ((WindowManagerImpl)wm).createLocalWindowManager(this);}}
对Window(View)的addView,updateViewLayout,removeView的操作使用WindowManager。
Binder
WindowManager与WindowManagerService通过Binder通讯。
