1、计算和管理窗口的显示位置和层次
2、渲染动画
Surface就像一块画布,SurfaceFlinger管理surface显示的层次
mPlicy:PhoneWindowManager 只有这一个实现类,负责窗口的相关策略,告诉一个Window的Z-order应该是多少
1、WIndowToken:令牌,属于同一windowToken的窗口在进行Z-order排序的时候将会排在一起
AMS通过ActivityRecord表示一个activity,ActivityRecord在构造函数中会创建一个apptoken,WMS会为appToken创建一个AppWindowToken,这样就结合了AMS和WMS,WMS就可以操作appToken来控制activity窗口的显示和隐藏了
2、WIndowState:管理窗口的所有属性
3、DisplayContent:根据窗口的显示位置进行分组,位于不同DisplayContent的window在显示位置,顺序和动画上完全没有交集
对窗口进行布局:
循环DisplayContent下的窗口对其进行布局,对结果进行检查,如果需要就对Dislpcontent重新布局