栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android 框架实现分析 - 窗口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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。 

流程

创建窗口

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356365.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号