DecorView、PhoneWindow、ViewRootlmpl的关系
16lz
2021-01-23
Window 类 位于 /frameworks/base/core/java/android/view/Window.java。该类是一个抽象类,提供了绘制窗口的一组通用API。可以将之理解为一个载体,各种View在这个载体上显示。PhoneWindow类 于/frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindow.java。该类继承于Window类,是Window类的具体实现,即我们可以通过该类具体去绘制窗口。并且,该类内部包含了一个DecorView对象,该DectorView对象是所有应用窗口(Activity界面)的根View。 简而言之,PhoneWindow类是把一个FrameLayout类即DecorView对象进行一定的包装,将它作为应用窗口的根View,并提供一组通用的窗口操作接口。DecorView类 该类是PhoneWindow类的内部类。该类是一个FrameLayout的子类,并且是PhoneWindow的子类,该类就是对普通的FrameLayout进行功能的扩展,更确切点可以说是修饰(Decor的英文全称是Decoration,即“修饰”的意思),比如说添加TitleBar(标题栏),以及TitleBar上的滚动条等 。最重要的一点是,它是所有应用窗口的根View 。
ViewRootlmpl
是一个系统顶级API,封装了很多有用的接口。
更多相关文章
- 浅析 Android 的窗口
- Activity切换 窗口绘制显示
- Android 去掉窗口标题和程序全屏
- Android 之窗口小部件详解--App Widget
- Android用户界面UI组件--AdapterView及其子类(三) ExpandableLis
- 如何将一个Activity设置成窗口的样式
- Android Activity 及其子类
- android 一个activity调用另一个activity,窗口化显示