DecorView
- DecorView为页面顶层的view。
- DecorView实际为FrameLayout,其中包含一个竖直的LinearLayout,LinearLayout中包含titleBar和content。titleBar为顶部标题栏,content为显示内容的部分(即setContentView)。
Window
- Window是一个抽象类,具体实现类为PhoneWindow。
- WindowManager是外界访问Window的入口
- WindowManager和WindowService交互的过程是ipc过程
Activity创建的过程
- 通过new PhoneWindow()创建Window实例。
- 如果没有DecorView就创建DecorView。
- 将view添加到DecorView的mContentParent中。
- 回调Activity的onContentChange方法通知Activity视图一发生改变。
- 调用Activity的makeVisible()方法通过WindowManager将DecorView添加到Window并展示。
Dialog创建过程
- 通过new PhoneWindow创建Window实例
- 初始化DecorView并将Dialog的视图添加到DecorView
- 通过WindowManager将DecorView添加到Window中