
- android窗口管理剖析
类型说明:
类名
说明
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
窗口服务的专供窗口策略调用的私有接口
外部相关类:
相关类
说明
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
所有活动会话,与客户端连接
mWindowMap
HashMap
IBinder实际是IWindow的Binder
mTokenMap
HashMap
IBinder实际是IApplicationToken等的Binder
源代码位于:framework/base/core/java/com/android/internal/policy。
类名
说明
PolicyManager
窗口策略管理类,只有静态接口,负责构建策略窗口和策略,通过policy.impl.Policy实现
IPolicy
策略接口定义
源代码位于:framework/base/policy/src/com/android/internal/policy/impl。
类名
说明
Policy
策略实现,PhoneWindow、PhoneLayoutInflater、
PhoneWindowManager、PhoneFallbackEventHandler
PhoneWindow
PhoneLayoutInflater
PhoneWindowManager
手机特定窗口策略实现
PhoneFallbackEventHandler
手机特定输入事件处理器实现,处理一些特殊按键事件
源代码位于:framework/base/packages/SystemUI。
流程 创建窗口
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)