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 存在的實體。date
而 ViewRootImpl 是用來創建 Window 和 View 之間的聯繫的,是二者之間的紐帶。方法
WindowManager 是 View 的直接管理者,對 View 的添加、刪除、更新操做都是經過 WindowManager 來完成的,對應於 WindowManager 的 addView
、removeView
、updateViewLayout
三個方法。通信
也歡迎分享你的理解。分享