U I 框架基本概念: Activity 基本的页面单元,Activity包含一个Window,window 上可以绘制各种view View 最基本的UI 组件,表示屏幕上的一个矩形区域; Window 表示顶层窗口,管理界面的显示和事件的响应;每个Activity 均会创建一个 PhoneWindow 对象,是Activity和整个View 系统交互的接口
PhoneWindow 该类继承于 Window 类,同时,PhoneWindow 类内部包含了一个DecorView 对象
简而言之,PhoneWindow 是把一个FrameLayout 进行了一定的包装,并提供了一组通用的窗口操作接口
DecorView Window 中 View 的RootView,设置窗口属性;该类是一个FrameLayout 的子类,并且是PhoneWindow 中的一个内部类
Decor 的英文是Decoration,即“修饰”的意思,DecorView 就是对普通的FrameLayout 进行了一定的修饰,比如添加一个通用的Title bar,并响应特定的按键消息等
ViewRoot 并不是一个View 类型,而是一个Handler
向 DecorView 分发收到的用户发起的event 事件,如按键,触屏,轨迹球等事件; B
与 WindowManagerService 交互,完成整个Activity的GUI 的绘制 关系图 View树的绘图流程 整个View 树的绘图流程是在ViewRoot
java 类的performTraversals()函数展开的,该函数做的执行过程可简单概况为: 根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘 (draw),其框架过程如下 : View 树