一、Window的添加过程

(1)Window添加过程:  WindowManager(addView()) --> 此接口的真正实现 WindowManagerImpl类 —> 全部交给WindowMangerGlobal实现。     这是一种桥接模式

Android----Window内部机制

(2)使用WindowManagerGlobal的addView添加Window时分为如下几步

    (2.1)参数合法性检查、如果是子Window还需要调整布局参数

Android----Window内部机制

   (2.2)创建ViewRootImpl并将View添加到列表中

   (2.3)通过ViewRootImpl更新界面并完成Window添加过程

        View绘制过程由ViewRootImpl完成。在setView内部通过requestLayout完成异步刷新。

Android----Window内部机制

WindowSession来完成Window的添加过程。

二、Window的删除过程

同添加过程,也是通过WindowManagerGlobal的removeView完成。

之后调用ViewRootImpl的die方法,实际上是把View添加到待删除列表中。

三、Window更新过程

同添加过程,也是通过WindowManagerGlobal的updateViewLayout完成。

Android----Window内部机制

相关文章:

  • 2021-12-12
  • 2021-11-17
  • 2022-12-23
  • 2022-02-08
  • 2022-01-04
  • 2022-12-23
猜你喜欢
  • 2021-05-13
  • 2022-01-25
  • 2021-05-11
  • 2021-09-23
  • 2021-11-15
  • 2021-11-20
  • 2021-09-04
相关资源
相似解决方案