布局我们是要通过Activity的setContentView方法才能显示的,那么Activity只是一个控制器。通过Activity源码了解,系统提供了一个FrameLayout的布局id为content,所以才有了setContentView这样的方法。
加载的大致步骤如下:
1、View使用设置到窗体上显示的,那么调用了setContentView方法后,系统会调用getWindow获得窗体
2、Window窗体是一个抽象类,它的实现类是PhoneWindow
3、PhoneWindow的setContentView方法来设置view到窗体
4、通过generateDecor创建一个DecorView
5、generateLayout方法将包含id为content的LinearLayout布局添加到DecorView,DecorView实际就是一个ViewGroup
6、最终界面就通过窗体显示出来了