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 的訪問和操作。

Window 和 View 是什麼關係?

Window 是 View 的承載者,而 View 是 Window 的體現者。兩者之間通過 ViewRootImpl 建立聯繫。

怎麼理解這句話呢?

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

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

而 ViewRootImpl 是用來建立 Window 和 View 之間的聯繫的,是兩者之間的紐帶。

WindowManager 和 View 是什麼關係?

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

也歡迎分享你的理解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章