Window、WindowManager、View 之間的關係

  1. Window 和 WindowManager 是什麼關係?
  2. Window 和 View 是什麼關係?
  3. WindowManager 和 View 是什麼關係?

Window 和 WindowManager 是什麼關係?

Widow 是個抽象類,在 Android 中全部的視圖都是經過 Window 來呈現的,包括 Activity、Dialog、Toast,它們的視圖實際上都是附加在 Window 上的。Window 的具體實現類是 PhoneWindow。而 WindowManager 是外界訪問 Window 的入口,WindowManager 和 WindowManagerService 之間經過 IPC 進行通訊,從而實現對 Window 的訪問和操做。code

Window 和 View 是什麼關係?

Window 是 View 的承載者,而 View 是 Window 的體現者。二者之間經過 ViewRootImpl 創建聯繫。rem

怎麼理解這句話呢?it

Window 是 View 的承載者:Android 中的全部視圖都是附加在 Window 上呈現出來的 。ast

View 是 Window 的體現者:由於 Window 是個抽象的概念,並不實際存在,View 纔是 Window 存在的實體。date

而 ViewRootImpl 是用來創建 Window 和 View 之間的聯繫的,是二者之間的紐帶。方法

WindowManager 和 View 是什麼關係?

WindowManager 是 View 的直接管理者,對 View 的添加、刪除、更新操做都是經過 WindowManager 來完成的,對應於 WindowManager 的 addViewremoveViewupdateViewLayout 三個方法。通信

也歡迎分享你的理解。分享

相關文章
相關標籤/搜索