浅谈对Window的理解


浅谈对Window的理解_第1张图片

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


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


你可能感兴趣的:(android,window)