当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw。

View树对应设计模式:组合模式

ViewRoot

实现类ViewRootImpl

Untitled

DecorView

DecorView:顶层View,即 Android 视图树的根节点;同时也是 FrameLayout 的类。用于显示 & 加载布局

内含一个垂直方向的LinearLayout,分为titlebar和content

Activity的setContentView()的布局是放到content中

Untitled

Window

视图的承载器

实现类PhoneWindow

负责创建DecorView以及将其交给ViewRoot完成视图未知&其他交互

绘制流程

源码:ViewRootImpl.java

Untitled

measure()

自上而下遍历View树,获取父视图对子视图的MeasureSpec以及ChildView自身参数