首先亮出几个类:
Activity:基本页面单元
PhoneWindow:每个Activity均会创建一个,内部包含一个DecorView对象,是一个把FrameLayout进行了一定的包装,并提供了一组通用的窗口操作接口。
DecorView:PhoneWindow的子类,包含Activity的所有UI部件,接收用户发起的event事件,如按键等.
ViewRoot:向DecorView分发用户event事件,与WindowManageService交互完成View的绘制.
WindowManageService:对系统中所有窗口进行管理.
上图简单描述了绘制界面时各个成员之间的相互关系。
ActivityManagerService创建Activity线程,激活一个activity
系统调用Instrumentation.newActivity创建一个activity
Activity创建后,attach到一个新创建的phonewindow中。这样Activity获取一个唯一的WindowManager服务的实例
Activity创建过程中使用setcontentView设置用用户UI,这些VIEW被加入到PhoneWindo