AMS:Activity Manager Service
(1)统一调度各应用程序的Activity
(2)内存管理
(3)进程管理
WMS:Window Manager Service
(1)计算与管理窗口的位置、层次(控制窗口的显示与隐藏的以及要显示的位置)
(2)根据(1)来渲染窗口动画
(3)持有SurfaceControl,在Surface初始化的时候,会初始化一个Canvas(画布)
Activity与Window的关系
Activity只控制生命周期和处理事件,Window只控制视图。一个Activity包含一个Window,如果一个Activity没有Window,就相当于Service。
Window中重要成员变量
mDecor:DecorView的实例,标示Window内部的*视图
mContentRoot:是DecorView的唯一子视图,内部包含mContentParent、标题栏、状态栏,在Android源码中,有9种不同的布局来对应不同主题。
mContentParent:Activity所调用的setContentView所设置的布局文件就会加到这个视图中
那么在Activity中,如何获取这三个重要的成员变量:
getDecorView:
通过Activity的getWindow().getDecorView()来获取
getRootView:
编写如下方法来获取
private static View getRootView(Activity context) {
return ((ViewGroup)context.findViewById(android.R.id.content)).getChildAt(0);
}
getParentView:
直接调用Activity的getContentView()来获取