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 WeakReference<ViewRootImpl> mViewAncestor;private final IWindowSession mWindowSession;W(ViewRootImpl viewAncestor) {mViewAncestor = new WeakReference<ViewRootImpl>(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);
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19863.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19863.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19863.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu22.04之解決:忘記登錄密碼(二百三十二)

簡介&#xff1a; CSDN博客專家&#xff0c;專注Android/Linux系統&#xff0c;分享多mic語音方案、音視頻、編解碼等技術&#xff0c;與大家一起成長&#xff01; 優質專欄&#xff1a;Audio工程師進階系列【原創干貨持續更新中……】&#x1f680; 優質專欄&#xff1a;多媒…

gpt-4o api申請開發部署應用:一篇全面的指南

利用 GPT-4o API 開發創新應用&#xff1a;一篇全面的指南 OpenAI 的 GPT-4o 是一款集成了音頻、視覺和文本處理能力的多模態人工智能模型&#xff0c;它的出現代表了人工智能領域的重大進步。在本篇文章中&#xff0c;我們將詳細介紹如何通過 OpenAI API 使用 GPT-4o&#xf…

html中 table的 colspan和rowspan

Colspan 單元格跨越多列; Rowspan 單元格跨越多行 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> </head> <body><h4>單元格跨兩列:</h4> <table border"1"&…

藍橋杯java組-字符串輸入輸出處理

題目描述&#xff1a;字符串的輸入輸出處理。 輸入&#xff1a;第一行是一個正整數N&#xff0c;最大為100。之后是多行字符串&#xff08;行數大于N&#xff09;&#xff0c; 每一行字符串可能含有空格&#xff0c;字符數不超過1000。 輸出&#xff1a;先將輸入中的前N行字符…

云動態摘要 2024-05-31

給您帶來云廠商的最新動態&#xff0c;最新產品資訊和最新優惠更新。 最新優惠與活動 [1.5折起]年中盛惠--AI分會場 騰訊云 2024-05-30 人臉核身、語音識別、文字識別、數智人、騰訊混元等熱門AI產品特惠&#xff0c;1.5折起 云服務器ECS試用產品續用 阿里云 2024-04-14 云…

鴻蒙開發接口媒體:【@ohos.multimedia.medialibrary (媒體庫管理)】

媒體庫管理 說明&#xff1a; 該組件從API Version 6開始支持。后續版本如有新增內容&#xff0c;則采用上角標單獨標記該內容的起始版本。 發前請熟悉鴻蒙開發指導文檔&#xff1a; gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復制轉到。 導入模塊 …

2.4 Docker部署JDK

2.4 Docker部署JDK jdk17部署&#xff08;自定義鏡像&#xff09; 1.在官網上下載jdk-17_linux-x64_bin.tar.gz&#xff0c;并安裝到/usr/local目錄下 cd /usr/local2.創建Dockerfile vim Dockerfile# 基于官方的Ubuntu 20.04鏡像作為基礎鏡像 FROM ubuntu:20.04# 設置環境…

【python深度學習】——大型工程項目管理以及互相導入

【python深度學習】——大型工程項目管理以及互相導入 1. 工程項目中常見的文件組織形式2. python中的“包”、“模塊”、與__init__.py2.1 概念理解2.2 \__init__py的使用3. 包的導入——相對導入與絕對導入3.1 相對導入3.1.1 相對導入的語法3.1.2 相對導入的使用注意事項與常…

Attentive Transfer Entropy to Exploit Transient Emergence of Coupling Effect

本文可以采用以下六個標準: 目標:指的是研究的基本目的。 耦合網絡重建專注于揭示網絡中變量之間潛在的連接結構,確定它們是如何相互關聯的。因果發現更進一步,不僅識別連接,還確定變量之間的因果關系和方向。信息傳遞測量量化變量之間流動的信息量,表明它們影響的強度和…

二維數組傳參時不用二級指針接收

先放結論&#xff1a; 1. 二維數組數組名指向的類型是 int [x] 類型&#xff0c;int** 指針指向類型是 int* &#xff0c;如果用二級指針接收會導致訪問錯誤&#xff0c;因為 int [x] 類型和 int* 類型不同。 2. 指向什么類型的指針1就按照該類型的字節數1移動。 最近在學…

初識java——javaSE(8)異常

文章目錄 一 異常的概念與體系結構1.1 什么是異常&#xff1f;1.2 異常的體系結構&#xff01;1.3 編譯時異常與運行時異常與Error編譯時異常&#xff1a;異常聲明&#xff1a;throws關鍵字 運行時異常&#xff1a;什么是Error? 二 處理異常2.1 異常的拋出&#xff1a;throw(注…

容器多機部署eureka及相關集群服務出現 Request execution failed with message: AuthScheme is null

預期部署方案&#xff1a;兩個eureka三個相關應用 注冊時應用出現&#xff1a;Request execution failed with message: Cannot invoke “Object.getClass()” because “authScheme” is null&#xff0c;一開始認為未正確傳遞eureka配置的賬戶密碼&#xff0c;例&#xff1a;…

5.23R語言-參數假設檢驗

理論 方差分析&#xff08;ANOVA, Analysis of Variance&#xff09;是統計學中用來比較多個樣本均值之間差異的一種方法。它通過將總變異分解為不同來源的變異來檢測因子對響應變量的影響。方差分析廣泛應用于實驗設計、質量控制、醫學研究等領域。 方差分析的基本模型 方差…

重慶人文科技學院建立“軟件安全產學研基地”,推動西南地區軟件安全發展

5月29日&#xff0c;重慶人文科技學院與開源網安簽訂了《產學研校企合作協議》&#xff0c;并舉行了“重慶人文科技學院產學研基地”授牌儀式&#xff0c;此次合作不僅深化了雙方在軟件安全領域的產學研緊密聯結&#xff0c;更是對川渝乃至西南地區軟件供應鏈安全發展起到重要的…

力扣linkedlist

反轉鏈表、 public class reverseList { // 1->2->3->o 、 o<-1<-2<-3public ListNode reverseList(ListNode head){//反轉鏈表ListNode prevnull;ListNode currhead;while(curr!null){ListNode nextcurr.next;curr.nextprev;prevcurr;currnext;}retu…

AI免費插件 批量條碼大師,支持100多種條碼類型

沒想到在網上看到一款和之前 悟空條碼 類似的條碼插件&#xff0c;叫批量條碼大師&#xff0c;他做的比 悟空條碼 功能更強&#xff0c;界面更美觀&#xff0c;特分享出來給大家。 本插件采用了BWIPJS條碼庫&#xff0c;支持110種條碼、二維碼的生成; 支持批量生成&#xff0c;…

愛堡集團數智掘金—共繪上市藍圖

&#xff08;本臺記者報&#xff09;2024年5月26日愛堡集團在浙江省杭州市上城區瑞萊克斯大酒店隆重召開規模達500人的盛會。這場聚焦智慧與創新的會議&#xff0c;旨在加速愛堡集團的數智化轉型進程&#xff0c;并為其上市之路繪制藍圖&#xff0c;吸引了眾多行業領袖和媒體的…

Qt 插件機制使用及原理

目錄 1.引言 2.插件原理 3.插件實現 3.1.定義一個接口集(只有純虛函數的類) 3.2.實現接口 4.插件的加載 4.1.靜態插件 4.1.1.靜態插件實現方式 4.1.2.靜態插件加載的過程 4.1.3.示例 4.2.動態插件 4.2.1.動態插件的加載過程 5.定位插件 6.插件開發的優勢 7.總結…

GPT-4o有點坑

GPT-4o有點坑 0. 前言1. GPT-4o簡介2. GPT-4o帶來的好處2.1 可以上傳圖片和文件2.2 更豐富的功能以及插件 3. "坑"的地方3.1 使用時間短3.2 GPT-4o變懶了 4. 總結 0. 前言 原本不想對GPT-4o的內容來進行評論的&#xff0c;但是看了相關的評論一直在說&#xff1a;技…

Ai晚班車531

1.中央網信辦等三部門&#xff1a;加快推進大模型、生成式人工智能標準研制。 2.中國石油與中國移動、華為、科大訊飛簽署合作協議。 3.Opera瀏覽器與谷歌云合作&#xff0c;接入 Gemini 大模型。 4.谷歌 Gemini 加持Chromebook Plus。 5.英飛凌&#xff1a;開發 8kW和12kW…