现在的位置: 首页 > 综合 > 正文

浅谈对Window的理解

2017年12月17日 ⁄ 综合 ⁄ 共 467字 ⁄ 字号 评论关闭

学习Surface系统之前对于窗口(Window),视图(View)这两个概念的理解非常模糊,对于它们所扮演的角色也总是弄混淆,而上面这幅图则清楚的明确了这两个概念。我以为对于Android系统而言,窗口这个概念等效于View视图,或者说并没有窗口这个东西的存在。至于我之前所以为的View视图附着在窗口上不过是view附着在DecorView上罢了。那么系统中的Window.java这个类呢?这是一个抽象类,而且它只有一个实现——PhoneWindow.java,并且DecorView类是PhoneWindow类的内部类。可以认为Window只是名字等同于窗口,而事实上它是一个控制类,它不是一个名词。它和WindowManager联合控制着如何显示DecorView的内容,查看PhoneWindow类,我们可以发现,PhoneWindow中的许多函数实现是直接调用的DecorView的函数。

如果说有窗口存在,那么窗口这个词对应的类是DecorView;如果理解Window类,这个类是控制着DecorView上内容显示的。

抱歉!评论已关闭.