该文章参考了
伯努力不努力(https://blog.csdn.net/u012124438/article/details/71435787)
Android_韦鲁斯(https://blog.csdn.net/sinat_27154507/article/details/79748010)
黑暗终将过去(https://www.jianshu.com/p/3654ab59b908)
博主的文章,如有侵权请通知删除
在介绍VIew绘制原理之前,简单介绍一下Window,ViewRootImpl,DecorView之间的联系。
一个 Activity 包含一个Window,Window是一个抽象基类,是 Activity 和整个 View 系统交互的接口,只有一个实现子类PhoneWindow,提供了一系列窗口的方法,比如设置背景,标题等。一个PhoneWindow 对应一个DecorView 跟 一个 ViewRootImpl,DecorView 是ViewTree 里面的顶层布局,是继承于FrameLayout,包含两个子View,一个id=statusBarBackground 的 View 和 LineaLayout,LineaLayout 里面包含 title 跟content,title就是平时用的TitleBar或者ActionBar, contenty也是FrameLayout,activity通过 setContent()加载布局的时候加载到这个View上。ViewRootImpl就是建立 DecorView 和 Window 之间的联系。