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

news2025/1/11 23:52:15

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.coloradmin.cn/o/561307.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

结构体总结

目录 1.普通结构体 2.定义结构体并同时建立变量 3.匿名结构体 4.typedef重命名 5.typedef省略结构体名字 6.结构体数组 7.结构体指针 8.结构体嵌套 9.结构体链表(头插法) 10.结构体中的函数指针 11.结构体的构造函数和初始化列表 1.普通结构体 stru…

chatgpt赋能Python-python_paas

Python PaaS:简介和未来趋势 随着云计算的不断普及,PaaS(平台即服务)正在成为越来越受欢迎的选择。PaaS可以帮助企业轻松构建、部署和管理应用程序,无需担心底层基础架构的问题。在PaaS领域,Python正在成为…

2023年护网蓝队初级面试总结

00.护网面试步骤是什么样的 投递简历-安全服务公司HR先筛选一下简历,交给技术负责人面试一下,推荐给安全厂商(360、奇安信、安恒、绿盟) 安全设备厂商HR筛选一下简历,安全设备厂商安排技术笔试和面试(技术…

Kubernetes高可用集群二进制部署(Runtime Docker)v1.21版本

Kubernetes高可用集群二进制部署(Runtime Docker) Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用&#xf…

chatgpt赋能Python-python_num怎么用

Python Num怎么用?一个有10年Python编程经验的工程师来告诉你 Python是一种被广泛应用的编程语言,它的发展历程已经超过了20年。而其中的NumPy库则成为了Python编程中最重要的一部分之一。NumPy是一个Python库,它提供了大量针对数字的操作函…

AI宝典:AI超强工具大整合

😄😄个人介绍 光子郎.进行开发工作七年以上,目前涉及全栈领域并进行开发。会经常跟小伙伴分享前沿技术知识,java后台、web前端、移动端(Android,uniapp,小程序)相关的知识以及经验体…

微服务实战项目-学成在线-项目介绍以及环境搭建

学成在线-项目介绍&环境搭建 1.项目背景 1.1 在线教育市场环境 以下内容摘自https://report.iresearch.cn/content/2021/01/358854.shtml 在线教育行业是一个有着极强的广度和深度的行业,从校内到校外;从早幼教到职业培训;从教育工具…

Prometheus(普罗米修斯)

Prometheus : 入门 Prometheus简介Prometheus 的主要特点Prometheus架构:什么时候用它合适什么时候用它不合适Prometheus VS InfluxDB基本概念数据模型metric types(指标类型) Prometheus 安装部署二进制安装部署1、将安装包prometheus-2.6.1…

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最新版 正式…

【MySQL高级篇笔记 (上) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、MySQL的数据目录 小结 二 、用户与权限管理 MySQL8密码管理(了解) 权限管理 授予权限的原则 收回权限 权限表 访问控制(了解) 角色管理 三、逻辑架构 服务器处理客户端请求 MySQL 中的 SQL执行流程 SQL语法顺序…

chatgpt赋能Python-python_numpy画图

Python Numpy画图:快速绘制高质量的数据可视化 Python语言不仅在数据科学和人工智能领域得到广泛应用,还被广泛用于数据可视化方面。NumPy是一个Python的科学计算库,提供了高性能的多维数组对象和广播功能,被广泛应用于数据科学、…

Packet Tracer – VLAN 间路由练习

Packet Tracer – VLAN 间路由练习 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 R1 G0/0 172.17.25.2 255.255.255.252 不适用 G0/1.10 172.17.10.1 255.255.255.0 不适用 G0/1.20 172.17.20.1 255.255.255.0 不适用 G0/1.30 172.17.30.1 255.255.255…

十三、人脸识别

文章目录 1、人脸认证和人脸识别2、One shot学习3、siamese network4、Triplet loss function5、人脸识别和二分类问题THE END 1、人脸认证和人脸识别 \qquad 人脸认证表示输入一幅图片和一个name/ID,输出这个图片和ID是否是同一个人。 \qquad 人脸识别表示数据库中…

OMA通道-3

4 Transport API 传输 API 作为开放移动 API 的一部分,为开放移动设备中可用的 SE 提供通信框架 4.1 概述 传输 API 的作用是为应用程序提供访问设备上可用的 SE 的方法。 提供的访问权限基于 ISO/IEC 7816-4 [ISO 7816-4] 定义的概念: • APDU&#…

WIN提权 烂土豆dll劫持

烂土豆配合令牌劫持提权(win2012及以下版本可以尝试) 两者配合使用可以直接从web权限提升到system权限 msf反弹后监听 上传文件Potato.exe upload /home/yx/桌面/Potato.exe上传至目标主机目录 烂土豆也很鸡肋 在shell中使用 whoami /priv 查看当…

2023年电工杯报名队伍破万!!!!

截止2023年5月24日凌晨0:56分,刚刚使用账号进行电工杯队伍注册,电工杯报名队伍已经达到10600只队伍,作为本年度上半学年,最后一场大型认可度较高的比赛,本次比赛的时间设置、报名费免费等优势使得,这场比赛…

C++ 图像线特征提取及匹配(LineSegmentMatching)

C++ 线特征提取及匹配【LineSegmentMatching】 1 源码下载2 环境配置2.1 添加预定义设置:2.2.配置项目环境2.1 C/C++ --》常规--》附加包含目录:2.2 链接器-》常规--》附加库目录:2.3 链接器-》常规--》输入:3 编译时踩坑记录4.匹配效果输入两幅图像,分别提取两幅图像中的…

【学习日记2023.5.23】 之 Redis入门未入坑

文章目录 1. Redis入门1.1 Redis简介1.2 Redis下载与安装1.2.1 Redis下载1.2.2 Redis安装 1.3 Redis服务启动与停止1.3.1 服务启动命令1.3.2 客户端连接命令1.3.3 修改Redis配置文件1.3.4 Redis客户端图形工具 2. Redis数据类型2.1 五种常用数据类型介绍2.2 各种数据类型特点 3…

shell sed命令

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 sed 命令sed 编辑器sed 的工作流程的三个过程命定格式常用选项常用操作 实验操作打印内容使用地址删除行替换插入 sed 命令 sed 编辑器 sed是一种流编辑器&#x…

什么是 Java 中的数据库连接池?为什么使用连接池来管理数据库连接?

文章目录 1. 数据库连接池的好处1.1 提高性能1.2 连接的重用1.3 连接管理和监控 2. 代码演示2.1 新建maven项目2.2 配置maven地址2.3 配置 Druid 数据源2.4 编写测试代码2.4.1 创建一个 Druid 数据源连接池和获取连接2.4.2 编写测试类2.4.3 新建数据库表2.4.4 运行截图 3. 完整…