wms内容相当庞大,阅读源码不要陷入细节
window:就是一个窗口,抽象的概念,实实在在显示的是view,window管理view,每个activity都有一个window,dialog、toast、输入法窗口、系统错误窗口等都是一个window
application window :activity 1-99
sub window:子窗口,popwindow 1000-1999
system window:输入法窗口 2000-2999
窗口次序 application window ——》sub window——》system window
windowmanager:对window管理,新增、删除、更新等
WMS:窗口的最终管理者,启动、添加和删除,
桥接模式
添加Window
activity.attach方法 创建phoneWindow
viewRootImpl performTraversal 所有刷新都调到这里
Context的getSystemService方法得到的是WindowManagerImpl实例
WindowManagerImpl虽然是WindowManager的实现类,但是却没有实现什么功能,而是将功能实现委托给了WindowManagerGlobal,这里用到的是桥接模式