Widow 是个抽象类,在 Android 中全部的视图都是经过 Window 来呈现的,包括 Activity、Dialog、Toast,它们的视图实际上都是附加在 Window 上的。Window 的具体实现类是 PhoneWindow。而 WindowManager 是外界访问 Window 的入口,WindowManager 和 WindowManagerService 之间经过 IPC 进行通讯,从而实现对 Window 的访问和操做。code
Window 是 View 的承载者,而 View 是 Window 的体现者。二者之间经过 ViewRootImpl 创建联系。rem
怎么理解这句话呢?it
Window 是 View 的承载者:Android 中的全部视图都是附加在 Window 上呈现出来的 。ast
View 是 Window 的体现者:由于 Window 是个抽象的概念,并不实际存在,View 才是 Window 存在的实体。class
而 ViewRootImpl 是用来创建 Window 和 View 之间的联系的,是二者之间的纽带。date
WindowManager 是 View 的直接管理者,对 View 的添加、删除、更新操做都是经过 WindowManager 来完成的,对应于 WindowManager 的 addView
、removeView
、updateViewLayout
三个方法。方法
也欢迎分享你的理解。通信