Android WMS——WM窗口管理(八)
我们在 ViewRootImpl 分析中,已经对 WindowManager 的功能有一个大致了解,这里再来详细看一下 WindowManager 是如何管理 Window 的。
一、WindowManager
WindowManager 所提供的功能很简单,常用的只有三个方法,即添加 View,更新 View,和删除 View。这三个方法定义在 ViewManager 接口中,而 WindowManager 继承了 ViewManager。
1、ViewManager
源码位置:/frameworks/base/core/java/android/view/ViewManager.java
public interface ViewManager{
public void addView(View view, ViewGroup.LayoutParams params);
public void updateViewLayout(View view, ViewGroup.LayoutParams params);
public void removeView(View view);
}
2、WindowManager
源码位置:/frameworks/base/core/java/android/view/WindowManager.java
public interface WindowManager extends ViewManager {
}
由此看来 WindowManager 操作 Window 的过程更像是在操作 Window 中的 View,对于那种可以拖动的 Window 效果其实是很好实现,只需要修改 Layo