Android Framework WMS全面概述和知识要点

目录

一、概述

定义与作用

二、核心组件详细介绍

(一)、WindowManagerService 类

1 整体架构与功能定位

2 关键内部机制与数据结构

(二)、WindowState 类

1 状态信息存储与维护

2 树形结构组织与优势

(三)、WindowToken 类

1 窗口身份标识与安全机制

2 创建与管理方式

(四)、Surface 类

1 图形绘制底层支持

2 与其他组件的交互关系

三、窗口管理机制

(一)、窗口类型管理

1 多种窗口类型及其用途

2 窗口类型对管理机制的影响

(二)、窗口层级管理

1 基于三维坐标系的层级模型

2 层级管理中的关键概念和机制

(三)、窗口属性管理

1 主要窗口属性及其含义

2 属性的封装与管理方式

四、窗口操作流程

(一)、窗口创建流程

(二)、窗口更新流程

(三)、窗口销毁流程

五、关键类详细介绍

(一)、WindowManagerService 类

(二)、WindowState 类

(三)、WindowToken 类

(四)、Surface 类

WMS 与其他系统服务的协作 

(一)、WMS 与 AMS(Activity Manager Service)的协作

 1 窗口创建阶段

2 窗口布局阶段

3 焦点管理阶段

4 动画处理阶段

5 输入事件分发阶段

(二)、WMS 与 SurfaceFlinger 的协作

性能优化与调试

(一)、性能优化策略

1 窗口重绘优化

2 资源分配优化

(二)、调试工具与方法

1 使用 adb 命令进行调试

2 利用系统日志进行调试

3 使用 Android Studio 的调试工具


一、概述

定义与作用

在 Android 系统中,WindowManagerService(WMS)就像是一个大管家,负责管理整个系统的窗口界面。它是 Android Framework 的核心组件之一,处于 system_server 进程内,在 Framework 层占据着核心位置。

WMS 的主要职责有以下几个方面:

  • 窗口管理:它负责窗口的创建、添加、删除、移动、调整大小等操作,还会管理窗口的各种属性,如大小、位置、透明度等。例如,当你打开一个应用程序的 Activity 时,WMS 会负责创建和管理这个 Activity 的窗口,确保它在屏幕上正确显示。
  • Surface 分配:WMS 为每个窗口分配相应的 Surface,这个 Surface 就像是一块画布,窗口可以在上面进行绘制和显示内容。比如,游戏应用中的画面绘制就是在分配给该窗口的 Surface 上进行的。
  • 窗口动画:WMS 控制着窗口间的切换动画,像淡入淡出、滑动等动画效果,让用户在操作手机时感觉更加流畅和舒适。比如,当你切换应用或者打开多任务界面时,那些酷炫的动画效果就是由 WMS 来控制的。
  • 输入事件处理:作为输入系统的中转站
android WMS服务 WMS是WindowManagerService的简称,它是android系统的核心服务之一,它在android的显示功能中扮演着极为重要的角色。窗口管理:负责响应进程的添加、移除窗口、启动窗口的业务,以及管理窗口的坐标、层级、大小、令牌等属性。窗口动画:负责处理窗口切换时的动画效果。事件处理:负责处理系统按键、触摸事件给合适的窗口去处理,以及处理部分输入法的交互逻辑。 阅读详情

相关推荐

Android WMS工作原理浅析(一)

window:它是一个抽象类,具体实现类为 PhoneWindow ,它对 View 进行管理。Window是View的容器,View是Window的具体表现内容; windowManager:是一个接口类,继承自接口 ,从它的名称就知道它是用来管理 Window 的,它的实现类为 WindowManagerImpl; **WMS:**是窗口的管理者,它负责窗口的启动、添加和删除。另外窗口的大小和层级也是由它进行管理的; 三者之间的关系: 1.Application Window(应用窗口):例如Acti

故不积跬步无以至千里 5202

Android---WMS核心分析

比如:告诉 WMS 某一个类型 Window 的 Z-Order的值是多少,帮助 WMS 矫正不合理的窗口属性,为 WMS 监听屏幕旋转的状态,预处理一些系统按键事件(例如HOMW、BACK 键等的默认行为就是在这里实现的)等。

qq_44950283的博客 2223

Android Framework解析——WMS原理_安卓 wms 专利

作者:bobby_developer。

2401_84545747的博客 1156

Android Framework底层原理——WMS机制_android wms 机制流程

在WindowManagerService#WindowManagerService()构造方法中。WMS的启动中WMS创建完成后会调用 wm.onInitReady 方法。在WindowManagerService#main方法中。

2501_90390086的博客 983

Android Framework底层原理——WMS机制

在WindowManagerService#WindowManagerService()构造方法中。WMS的启动中WMS创建完成后会调用 wm.onInitReady 方法。在WindowManagerService#main方法中。

maniuT的博客 1142

Android Framework解析——WMS原理

……

maniuT的博客 916

Android Framework概述

Android系统架构分为5层:应用层、Framework层、系统运行库层、硬件抽象层(HAL)和Linux内核层。核心组件包括基于Linux定制的内核、ART虚拟机、HAL硬件抽象层以及丰富的系统运行库(Core Libraries)。Framework层采用Java语言编写,提供三大核心组件:View、ActivityManagerService和WindowManagerService,通过服务端与客户端架构及Binder IPC机制实现跨进程通信。

学无止境 9625

【抖音】a_bogus参数逆向分析

点击——展开xxx条回复﹀就会出现。可以看到这个栈是有请求相关的数据的。所以就是在bdms.js里面生成的。

qq_44990881的博客 2995

uniapp: err = err.replace(this._UNI_INPUT_DIR_REG, ‘UNI_TypeError: err.replace is not a function问题修复

问题:uniapp的依赖包出现了问题,需要升级解决办法:升级uniapp依赖包,下载"semver"和”@dcloudio/uni-i18n“两个包,本地锁定postcss为7版本,就解决了。

py_boy的博客 1448

三相逆变器双pi控制器参数如何调节_光伏逆变器短路特性简析

1前言短路故障相对于其他故障类型来说是比较常见的,不同的设备的短路故障,大了讲都一样,细了说各有千秋,今天我们主要聊聊光伏逆变器的短路特征。电力系统中的电源,传统意义是指的是并入电力系统的同步发电机。但随着分布式发电技术的发展,各种形式的发电装置并入电力系统。按照分布式电源并网的方式,我们大致可以分为以下三类:➤通过旋转电机和变流器并联并网的电源,主要指双馈风力发电系统;➤仅仅通过变流器...

weixin_39901404的博客 1726

FPGA开发者必看:手把手教你用Xilinx ERNIC IP实现RoCE v2网络加速(附PG332文档解读)

本文详细解析了Xilinx ERNIC IP在FPGA平台上实现RoCE v2网络加速的全流程,包括架构设计、Vivado工程配置、驱动开发与性能调优。通过PG332技术文档的实践指导,帮助开发者快速构建低延迟、高性能的网络加速方案,适用于数据中心和边缘计算场景。

weixin_29168813的博客 644

iOS中.obj、.usdz、.dae和.scn格式之间的转化(思路清晰版)

作者最近在写项目的过程中遇到了一些3d模型格式问题,故写下这篇文章记录一下解决问题的过程。

yueliangmua的博客 5580

5分钟搞定!用MCU GPIO实现零功耗一键开关机电路(附完整原理图)

本文详细介绍了如何利用MCU GPIO设计零功耗一键开关机电路,适用于便携式设备和电池供电项目。通过软硬件结合的方式,实现关机状态下的真正零功耗,同时提供智能开关机控制。文章包含完整原理图、元件选型指南和实际搭建技巧,帮助开发者在5分钟内完成高效电源管理方案。

weixin_28339967的博客 333

RK3588多核NPU并行加速yolo优化教程:基于线程池的高性能推理实现

本教程详细介绍了RK3588多核NPU的并行加速优化方法。RK3588搭载三个独立NPU核心,总计算能力达6TOPS,但传统单线程方式无法充分发挥其性能。文章从硬件架构分析入手,详细讲解了三核心独立处理架构和多种工作模式,并通过代码示例展示了线程池技术的实现原理。线程池通过预创建工作线程、任务队列和条件变量等核心组件,避免了频繁创建线程的开销,能显著提升NPU的并行处理效率。教程还提供了性能计算公式和内存带宽优化策略,帮助开发者最大化利用RK3588的硬件算力,实现高性能AI推理。

LXY_LOVE36的博客 1017

本地搭建 GitLab 14.1.0版本CI/CD

GitLab 镜像版本 gitlab/gitlab-ce:14.1.0-ce.0 GitLab Runner 镜像版本 gitlab/gitlab-runner:v14.1.0 搭建此套环境是在一台32G的windows电脑上安装的。 使用dokcer安装。 此外还涉及的软件Docker Desktop,WSL 安装GitLab 首先启动 dockcer,打开WSL 打开后 首先定义GitLab的持久化目录 export GITLAB_HOME=/srv/gitlab 然后运行安装GitLab的命令

知无涯 4485

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: 面试加分项:Android Framework AMS 全面概述和知识要点
下一篇: 大厂面试必问JVM内存管理面试题最强集合,看你学废了几条?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型大数据攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值