AndroidUI机制分析
时间:2016-12-13作者:华清远见
在开发Android应用界面的时候,我们首先会创建一个布局文件,如layout.xml,然后在代码当中使用setContentView()方法将刚才创建layout布局文件导入到Activity中,这样,在运行程序的时候我们就会在模拟器或手机上看到这个布局,其实,在Android中,我们创建的这个布局并不是直接加载到AndroidUI的,而是在之前历经了几个过程,具体过程如下:
1.PhoneWindow Android中的基本的窗口系统,每个Activity 均会创建一个PhoneWindow对象,是Activity和整个View系统交互的接口。 2.DecorView DecorView是当前Activity所有View的父类,它并不会向用户呈现任何东西,主要功能如下:
3.SystemLayout
4.ContentParent Content Parent的子类是ContentView,它其实对应的是System Layout中的id为"content"的一个FrameLayout。这个FrameLayout对象包括的才是我们的Activity layout(每个System Layout都会有这么一个id为"content"的一个FrameLayout)。 5.Activity Layout 设置窗口的ContentView,用来和userUI进行交互,其上的几层并不能响应并完成user输入所期望达到的目的。 下面举个例子来验证以上所述内容: 首先,我们需要新建一个工程,然后使用模拟器运行。 然后,我们打开SDK文件下的hierarchyviewer工具,查看当前界面的图层结构,如下图: 根据上面的分析,我们不难看出,当我们加载一个程序的界面时,首先执行的是PhoneWindow,接着是DecorView,后面的LinearLayout即为SystemLayout,它包含了一个标题,标题的布局为上面的FrameLayout和TextView,下面的FrameLayout为ContentView,注意它的id为content,用于加载开发者定义的界面,后面的RelativeLayout和TextView就是我们定义的布局文件。 发表评论
|