Android 框架实现分析 - 窗口

Android 框架实现分析 - 窗口,第1张

Android 框架实现分析 - 窗口
  • android窗口管理剖析
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

所有活动会话,与客户端连接

mWindowMap

HashMap

IBinder实际是IWindow的Binder

mTokenMap

HashMap

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。 

流程

创建窗口

 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4828725.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-10
下一篇2022-11-10

发表评论

登录后才能评论

评论列表(0条)

    保存