Java层
android.view
类型说明:
类名 | 说明 |
ViewManager | 管理View的虚基类 |
WindowManager | 对应一个Activity,管理其View,继承ViewManager |
WindowManagerImpl | 实现WindowManager |
WindowManagerGlobal | 进程单例,与窗口服务建立会话,本地代理 |
IWindowManager | 窗口服务的接口定义 |
ViewGroup. LayoutParams | |
WindowManager. LayoutParams | 窗口布局参数 |
View | 视图基类 |
ViewParent | 视图容器,如ViewGroup、ViewRootImpl |
ViewGroup | 父视图 |
ViewRootImpl | 窗口,管理输入事件,调用会话接口使用窗口服务 |
IWindow | 客户端接收窗口服务回调的接口定义 |
ViewRootImpl.W | 实现IWindow,转发给ViewRootImpl处理 |
WindowManagerPolicy | 窗口策略基类 |
WindowManagerPolicy.WindowState | 窗口提供给窗口策略的信息接口 |
WindowManagerPolicy.WindowManagerFuncs | 窗口服务的专供窗口策略调用的私有接口 |
com.android.services/window
外部相关类:
相关类 | 说明 |
Watchdog.Monitor | |
WindowManagerPolicy.WindowManagerFuncs | |
DisplayManagerService.WindowManagerFuncs | |
DisplayManager.DisplayListener | |
InputManagerService | |
DisplayManager | |
SurfaceSession | |
PowerManager | |
ActivityManagerNative | |
BatteryStatsService | |
AppOpsManager | |
DevicePolicyManager | |
UiThread |
内部类:
类名 | 说明 |
WindowAnimator | 单例,协助WindowManagerService管理动画状态和Surface操作 |
Session | IWindowSession.Stub、IInputMethodClient、IInputContext、SurfaceSession、mNumWindow 将Client(IInputMethodClient)与InputMethodManager建立连接 管理IWindow,与Display、InputChannel绑定 |
WindowState | 一个窗口状态 |
WindowToken | 管理一组相关窗口,包装IBinder |
WindowStateAnimator | 跟踪一个窗口(WindowState)的动画状态和Surface操作 |
InputWindowHandle | |
AppWindowToken | 继承WindowToken,一般与一个Activity对应,包装IApplicationToken,包含一个AppWindowAnimator,一个InputApplicationHandle |
AppWindowAnimator | 应用的动画状态 |
AppTransition | |
InputApplicationHandle | 在输入模块(InputDispatcher)注册的句柄 |
Task | |
DisplaySettings | |
PointerEventDispatcher | |
KeyguardDisableHandler | |
FocusedStackFrame |
WindowManagerService的成员:
名称 | 类型 | 说明 |
mBroadcastReceiver | BroadcastReceiver | 处理DevicePolicyManager. ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED |
mPolicy | WindowManagerPolicy | 由PolicyManager.makeNewWindowManager()创建 |
mActivityManager | IActivityManager | |
mBatteryStats | IBatteryStats | |
mAppOps | AppOpsManager | |
mDisplaySettings | DisplaySettings | |
mSessions | HashSet<Session> | 所有活动会话,与客户端连接 |
mWindowMap | HashMap<IBinder, WindowState> | IBinder实际是IWindow的Binder |
mTokenMap | HashMap<IBinder, WindowToken> | IBinder实际是IApplicationToken等的Binder |
com.android.internal.policy
源代码位于:framework/base/core/java/com/android/internal/policy。
类名 | 说明 |
PolicyManager | 窗口策略管理类,只有静态接口,负责构建策略窗口和策略,通过policy.impl.Policy实现 |
IPolicy | 策略接口定义 |
com.android.internal.policy.impl
源代码位于:framework/base/policy/src/com/android/internal/policy/impl。
类名 | 说明 |
Policy | 策略实现,PhoneWindow、PhoneLayoutInflater、 PhoneWindowManager、PhoneFallbackEventHandler |
PhoneWindow | |
PhoneLayoutInflater | |
PhoneWindowManager | 手机特定窗口策略实现 |
PhoneFallbackEventHandler | 手机特定输入事件处理器实现,处理一些特殊按键事件 |
SystemUI.apk
源代码位于:framework/base/packages/SystemUI。
流程
创建窗口