Android UI 管理系统的层级关系
DecorView 是应用窗口的根容器,本质还是一个FrameLayout,DecorView 有唯一一个子view-LinearLayout 垂直布局,一个是TitleView,一个是ContentView(FrameLayout),平时用setContentView 就是设置他的子view。
PhoneWindow 是FrameWrok 为我们提供的Android 窗口具体实现。我们平时设置的setContentView 就是对所关联的PhoneWindow的ViewTree的设置, requestWindowFeature()方法来定制Activity关联PhoneWindow的外观。
ViewRoot 来负责绘制view,每个窗口的DecorView都有一个与之关联的viewRoot,他们都是由WindManger来维护的。
view的绘制流程:
- measure 判断是否需要重新计算view 的大小,需要重新计算
- layout 判断是否需要重新计算view 的位置,需要重新计算
- draw 判断是否需要重新绘制view,需要重新绘制