Android14 WMS-IWindow介绍
IWindow是很重要的官方介绍是API back to a client window that the Window Manager uses to inform it of interesting things happening.也就是说是是用于WMS回调客户端的当窗口有一些改变时WMS及时调用客户端接口让客户端窗口立即更新。IWindow.aidl - OpenGrok cross reference for /frameworks/base/core/java/android/view/IWindow.aidl/** * API back to a client window that the Window Manager uses to inform it of * interesting things happening. * * {hide} */ oneway interface IWindow { /** * NOTICE * The first method must remain the first method. Scripts * and tools rely on their transaction number to work properly. */ /** * Invoked by the view server to tell a window to execute the specified * command. Any response from the receiver must be sent through the * specified file descriptor. */ void executeCommand(String command, String parameters, in ParcelFileDescriptor descriptor); void resized(in ClientWindowFrames frames, boolean reportDraw, in MergedConfiguration newMergedConfiguration, in InsetsState insetsState, boolean forceLayout, boolean alwaysConsumeSystemBars, int displayId, int syncSeqId, boolean dragResizing); /** * Called when this window retrieved control over a specified set of insets sources. */ void insetsControlChanged(in InsetsState insetsState, in InsetsSourceControl[] activeControls); /** * Called when a set of insets source window should be shown by policy. * * param types internal insets types (WindowInsets.Type.InsetsType) to show * param fromIme true if this request originated from IME (InputMethodService). * param statsToken the token tracking the current IME show request or {code null} otherwise. */ void showInsets(int types, boolean fromIme, in nullable ImeTracker.Token statsToken); /** * Called when a set of insets source window should be hidden by policy. * * param types internal insets types (WindowInsets.Type.InsetsType) to hide * param fromIme true if this request originated from IME (InputMethodService). * param statsToken the token tracking the current IME hide request or {code null} otherwise. */ void hideInsets(int types, boolean fromIme, in nullable ImeTracker.Token statsToken); void moved(int newX, int newY); void dispatchAppVisibility(boolean visible); void dispatchGetNewSurface(); void closeSystemDialogs(String reason); /** * Called for wallpaper windows when their offsets or zoom level change. */ void dispatchWallpaperOffsets(float x, float y, float xStep, float yStep, float zoom, boolean sync); void dispatchWallpaperCommand(String action, int x, int y, int z, in Bundle extras, boolean sync); /** * Drag/drop events */ void dispatchDragEvent(in DragEvent event); /** * Pointer icon events */ void updatePointerIcon(float x, float y); /** * Called for non-application windows when the enter animation has completed. */ void dispatchWindowShown(); /** * Called when Keyboard Shortcuts are requested for the window. */ void requestAppKeyboardShortcuts(IResultReceiver receiver, int deviceId); /** * Called when Scroll Capture support is requested for a window. * * param callbacks to receive responses */ void requestScrollCapture(in IScrollCaptureResponseListener callbacks); }IWindow是怎么赋值并一步步传入WMS端的呢由下面代码可以看出它是在ViewRootImpl中进行赋值的//定义 ​ final W mWindow; ... public ViewRootImpl(UiContext Context context, Display display, IWindowSession session, WindowLayout windowLayout) { ... mWindow new W(this); ... } W如下 static class W extends IWindow.Stub { private final WeakReferenceViewRootImpl mViewAncestor; private final IWindowSession mWindowSession; W(ViewRootImpl viewAncestor) { mViewAncestor new WeakReferenceViewRootImpl(viewAncestor); mWindowSession viewAncestor.mWindowSession; } ... public void setView(View view, WindowManager.LayoutParams attrs, View panelParentView, int userId) { //此时将mWindow传入这个方法会一步步调用到Server端WMS中 res mWindowSession.addToDisplayAsUser(mWindow, mWindowAttributes, getHostVisibility(), mDisplay.getDisplayId(), userId, mInsetsController.getRequestedVisibleTypes(), inputChannel, mTempInsets, mTempControls, attachedFrame, compatScale); ​

相关新闻

Android14 WMS-窗口添加流程(二)-Server端

Android14 WMS-窗口添加流程(二)-Server端

Android14 WMS-窗口添加流程(一)-Client端-CSDN博客 本文接着上文"Android14 WMS-窗口添加流程(一)-Client端"往下讲。也就是WindowManagerService#addWindow流程。 目录 一. WindowManagerService#addWindow 标志1:mPolicy.checkAddPermission 标志…

2026/8/16 14:15:57 阅读更多 →
Unity接入IAP内购(Android,IOS)最新流程,第三篇 后台对购买结果的验证以及发货(Android)

Unity接入IAP内购(Android,IOS)最新流程,第三篇 后台对购买结果的验证以及发货(Android)

文章目录欢迎进入Unity内购系列第三篇 后台对购买结果的验证以及发货(Android)一、基本流程二、GooglePlay后台设置三、PHP代码实现总结欢迎进入Unity内购系列 你好! 这将是一个系列的文章 第一篇 介绍客户端里支付的调起以及购买。 第二篇 …

2026/8/16 14:15:57 阅读更多 →
手把手教你构建Clojure MCP自定义服务器:工厂函数模式全解析

手把手教你构建Clojure MCP自定义服务器:工厂函数模式全解析

手把手教你构建Clojure MCP自定义服务器:工厂函数模式全解析 【免费下载链接】clojure-mcp Clojure MCP 项目地址: https://gitcode.com/gh_mirrors/cl/clojure-mcp Clojure MCP(clojure-mcp)是一个把 LLM 客户端(如 Claud…

2026/8/16 14:14:57 阅读更多 →

最新新闻

【Scrapy】Scrapy教程6——提取数据

【Scrapy】Scrapy教程6——提取数据

前一小节我们拿到了页面的数据,那页面中那么多内容,我们想要其中的部分内容,该如何获取呢?这就需要对我们下载到的数据进行解析,提取出来想要的数据,这节就讲讲如何提取数据。 引入 我们编辑保存下来的shouye.html文件看下,发现这是什么鬼,全是如下图的代码。 没错…

2026/8/16 14:56:09 阅读更多 →
全网功能最全的缠论分析工具:从K线处理到智能选股的完整解决方案

全网功能最全的缠论分析工具:从K线处理到智能选股的完整解决方案

一、工具核心功能概览本工具致力于打造全网功能最全、响应最快、实用性最强的缠论分析系统,为投资者提供从基础数据处理到高级智能决策的全方位支持。二、完整的缠论分析链条1. 基础数据处理K线包含处理:自动识别并处理K线包含关系,确保分析基…

2026/8/16 14:56:09 阅读更多 →
3步解锁Wand专业版:开源增强工具Wand-Enhancer让游戏修改回归自由

3步解锁Wand专业版:开源增强工具Wand-Enhancer让游戏修改回归自由

3步解锁Wand专业版:开源增强工具Wand-Enhancer让游戏修改回归自由 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 每个玩家都经历过这种…

2026/8/16 14:56:09 阅读更多 →
2026 久戴不痛入耳蓝牙耳机实测|耳道敏感人群优选,长时间佩戴不胀痛

2026 久戴不痛入耳蓝牙耳机实测|耳道敏感人群优选,长时间佩戴不胀痛

在蓝牙耳机选购中,降噪、音质、续航是大众重点关注的参数,但长时间佩戴舒适度往往最容易被忽视。多数入耳式耳机依靠耳塞密封耳道实现隔音降噪,短时间佩戴体验尚可,但连续佩戴2小时以上,极易出现耳道酸胀、发痒、闷堵、…

2026/8/16 14:56:09 阅读更多 →
美团优选PK捷优鲜:社区团购与本地直配优劣分析

美团优选PK捷优鲜:社区团购与本地直配优劣分析

美团优选与捷优鲜对比:重庆地区社区团购与本地直配模式解析在生鲜消费领域,不同的服务模式对应着差异化的用户需求。对于重庆地区的消费者而言,是在高频促销的社区团购平台下单,还是选择注重标准化品控与灵活配送的本地服务商&…

2026/8/16 14:56:09 阅读更多 →
【办公类-91-01】20250214领导的“每周安排表”批量填写——数字“年月日”、文字“休息、节假日”

【办公类-91-01】20250214领导的“每周安排表”批量填写——数字“年月日”、文字“休息、节假日”

背景需求: 20250214作为信息员,我会每周去区里的“信息平台”上报“教育教学”相关的通讯。因此领导在周五把每周的周计划安排表(docx)发我。 因为之前做了校历、营养员的人数统计表、各班点名册、本班周计划教案。 【办公类-53-04】20250209Python模仿制作2024学年第二学…

2026/8/16 14:55:08 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →