WMS 概述 -- “窗口管理员“

news/2025/2/20 10:42:48/

WMS 概述 -- "窗口管理员"

  • 1、WMS 职责
  • 2、涉及元素
  • 3、WMS、AMS与Activity间的关系

1、WMS 职责

WMS职责理解
窗口管理WMS 是窗口的管理者,它负责窗口的启动、添加和删除,另外窗口的大小和层级也是由WMS 进行管理的。窗口管理的核心成员有 DisplayContentWindowTokenWindowState
窗口动画窗口间进行切换时,使用窗口动画可以显得更炫一些,窗口动画由 WMS 的动画子系统来负责,动画子系统的管理者为 WindowAnimator
输入系统的中转站通过对窗口的触摸从而产生触摸事件,InputManagerService(IMS)会对触摸事件进行处理,它会寻找一个最合适的窗口来处理触摸反馈信息,WMS 是窗口的管理者,因此,WMS“理所应当”的成为了输入系统的中转站。
Surface 管理窗口并不具备有绘制的功能,因此每个窗口都需要有一块 Surface 来供自己绘制。为每个窗口分配 Surface 是由 WMS 来完成的。

在这里插入图片描述

2、涉及元素

在这里插入图片描述

1.WindowManagerService(WMS)

  • 由SystemServer启动
  • 直到系统关机时才退出
  • 发生异常时必须能自动重启

2.SurfaceFlinger

3.有图形显示需求的程序

  • Application Window
  • System Window
  • Sub Window

4.InputManagerService(IMS)

5.ActivityManagerService(AMS)

6.Binder通信

3、WMS、AMS与Activity间的关系

  1. IPC通信
    Activity运行在应用程序进程中,而AMS和WMS运行在系统相关进程中,它们之间需要Binder跨进程通信。
    WMS与AMS实际上时驻留在同一个进程中的,所以理论上是可以进程函数调用的。
    在这里插入图片描述

2.关联元素
一个新Activity启动,首先在AMS中注册,AMS生成一个ActivityRecord记录;另外WMS中以WindowState保存一个“窗口信息”,使用AppWindowToken来对应一个ActivityRecord。
在这里插入图片描述


http://www.ppmy.cn/news/93223.html

相关文章

Android 12.0Launcher3 去掉workspace长按弹出壁纸弹窗

1.概述 在12.0的系统开发中,在Launcher3开发中,在长按屏幕的时候,会弹出窗口,修改主屏幕配置,壁纸,等信息,由于要默认设置一些配置 不想让用户修改相关配置,这时候就需要去掉长按弹窗功能了,禁止修改相关配置 2.Launcher3 去掉workspace长按弹出壁纸弹窗的核心类 /p…

stable-diffusion-webui(1.2.1版本) win10系统本地电脑部署

在安装stable-diffusion-webui(1.2.1版本)之前需要确认win10本地电脑具有的环境 1.显卡类型:NVIDIA(英伟达) 建议显存高于4G以上,这样512*512的还是可以运行的 2.python(版本必须最好是3.10.6)和 git最新版 正式…

【华为OD机试真题2023B卷 JAVA】TLV解码

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 TLV解码 知识点数组字符串 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: TLV编码是按[Tag Length Value]格式进行编码的,一段码流中的信元用Tag标识,Tag在码流中唯一不重复,Length表示信元Value的长度,Value…

历次工业革命的本质,都是能源转换的革命。(电学史的伟大瞬间)【电的本质】

文章目录 引言I 电学史的伟大瞬间1.1 电的本质1.2 电池的发明(电的性质)1.3 动手改造和利用电(电和磁的关系)1.4 电的普及和应用引言 历次工业革命的本质,都是能源转换的革命。 第一次工业革命:蒸汽机让人类走出了以人力和畜力为动力来源的时代 第二次工业革命:以电力为工…

STP生成树协议(超详细小白也能看懂)

一、为什么要用STP 为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree …

一篇文章带你了解Netty

Netty 传统的IO模型的web容器,比如老版本的Tomcat,为了增加系统的吞吐量,需要不断增加系统核心线程数量,或者通过水平扩展服务器数量,来增加系统处理请求的能力。有了NIO之后,一个线程即可处理多个连接事件…

组件通信,slot 插槽,封装组件,UI组件库

<template><div class"box"><!-- 使用儿子 --><!-- 传递参数给儿子使用用&#xff1a;msg --><!-- 在父级里面定义属性传给子集 --><!-- 父级定义的属性我们要在子集里面拿到 --><itemsonspendatafnv-for"(v,i) in data…

STM32的SPI外设

文章目录 1. STM32 的 SPI 外设简介2. STM32 的 SPI 架构剖析2.1 通讯引脚2.2 时钟控制逻辑2.3 数据控制逻辑2.4 整体控制逻辑 3. 通讯过程4. SPI 初始化结构体详解 1. STM32 的 SPI 外设简介 STM32 的 SPI 外设可用作通讯的主机及从机&#xff0c;支持最高的 SCK 时钟频率为 …