Android中的每个控件都会在界面中占得一块矩形的区域,而Android中,控件大致被分为两类ViewGroup 和 View空间
ViewGroup空间为父控件可以保含多个View控件,并管理其包含的View控件。
上层控件负责下层控件的测量与绘制并传递交互事件。
通常在Activity中使用findViewById()方法,就是在控件树中以树的深度优先遍历来查找对应元素。
每个Activity都包含一个window对象,在Android中的Window对象通常由PhoneWindow来实现。PhoneWindow将一个DecorView设置为整个应用窗口的根View。DecorView作为窗口界面的顶层视图,封装了一些窗口操作的通用方法。可以说DecorView将要显示的具体内容呈现在了PhoneWindow上,这里面的所有View的监听事件,都是通过WindowManagerService来进行接收,并通过Activity对象来回调相应的onClickListener。在显示上,它将屏幕分为两个部分,一个是TiTleView,另一个是ContentView。
在代码中,当程序在onCreate()方法中调用setContentView()方法后,ActivityManagerService会回调onResume()方法,此时系统才会把整个DecorView添加到PhoneWindow中,并让其显示出来,从而最终完成界面的绘制