成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

由淺入深學(xué)習(xí)新模塊之Window_manager(一)

系統(tǒng) OpenHarmony
本篇作為學(xué)習(xí)一個新模塊的第一篇,主要是對Window_manager模塊建立一個初步的,總體的認(rèn)知。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

前言:

作為一個開發(fā)人員,隨著時代和行業(yè)的發(fā)展,總會不斷的接觸不同的新任務(wù),新模塊,這就需要不斷的學(xué)習(xí)與沉淀。因為工作的需求,筆者需要對一些自己負(fù)責(zé)模塊之外的模塊進(jìn)行學(xué)習(xí)和熟悉,對此筆者把這個學(xué)習(xí)過程以該系列文章做一個記錄分享給大家。

學(xué)習(xí)新模塊的總體思路:

學(xué)習(xí)的最好的方式就輸出,這個是我寫這篇文章的原因。

次好的方式是帶著疑問,通過學(xué)習(xí)與思考,在解決自己疑問的過程中獲得知識與認(rèn)知,最后恍然大悟的時候獲得學(xué)習(xí)的滿足感。

本篇作為學(xué)習(xí)一個新模塊的第一篇,主要是對window_manager模塊建立一個初步的,總體的認(rèn)知。具體需要解決的疑問如下:

1. window_manager是什么?

2. window_manager模塊在整個系統(tǒng)中做什么?

3. window_manager自己的總體的框架是什么?

帶著這幾個疑問,我們進(jìn)入正題:

window_manager是什么?

我們可以在openHarmony,IOS,Android,windows等圖形界面系統(tǒng)中都可以看到一個名為窗口管理的框架模塊,至于為什么叫window_manager,而不是什么door_manager,desktop_manager,原因就是長期占據(jù)圖形界面系統(tǒng)霸主地位的就是微軟的windows,受眾最廣,使用的開發(fā)者最多,導(dǎo)致后續(xù)的系統(tǒng)的設(shè)計者和開發(fā)者重復(fù)造輪子的時候總會借鑒這個成熟的框架。

我們可以參考下微軟在前幾代圖形操作系統(tǒng)中的主要特點來理解下window_manager這個模塊的地位:

1983年,微軟為IBM涉及的首款windows程序:

由淺入深學(xué)習(xí)新模塊之window_manager(一)-開源基礎(chǔ)軟件社區(qū)

特點:多窗口,可改變大小窗口

1985年,微軟發(fā)布windows首個版本windows1.0:

由淺入深學(xué)習(xí)新模塊之window_manager(一)-開源基礎(chǔ)軟件社區(qū)

特點:窗口不可重疊,但是可以平鋪,窗口不可以覆蓋下方圖標(biāo)區(qū)域。

1987年,微軟發(fā)布windows2.03:

由淺入深學(xué)習(xí)新模塊之window_manager(一)-開源基礎(chǔ)軟件社區(qū)

特點:窗口可以改變大小,可以重疊,添加部分窗口控制功能。

到了windows3.0和windows3.1時代,加入了大量的圖形界面,單純的從界面上看已經(jīng)和現(xiàn)代的windows操作系統(tǒng)非常接近,并成為當(dāng)時兼容機的標(biāo)配,代表圖形操作系統(tǒng)進(jìn)入成熟發(fā)展期。而從發(fā)展的歷程上看,DOS這類非圖形界面向圖形界面的變遷過程中,window視窗的概念被孕育和發(fā)展,窗口的管理系統(tǒng)或者說框架,即window_manager框架,也成為了現(xiàn)代圖形操作系統(tǒng)中核心模塊。

本章小結(jié):

  1. window_manager是現(xiàn)代圖形操作系統(tǒng)的核心模塊。
  2. window_manager模塊迄今已有40年左右的發(fā)展史,雖然隨著技術(shù)的進(jìn)步,但是窗口管理的核心概念如最初的窗口大小控制,布局控制,窗口屬性等一直沿用至今,了解下歷史可以讓我們學(xué)習(xí)該模塊更好的舉一反三。

window_manager模塊在整個系統(tǒng)中做什么

(我們現(xiàn)在學(xué)習(xí)的模塊都率屬于OpenHarmony開源操作系統(tǒng),系統(tǒng)及框架均以O(shè)penHarmony為準(zhǔn))

我們想去了解一個模塊,需要了解這個模塊在整個系統(tǒng)的位置,這個模塊的功能有哪些,緊密關(guān)聯(lián)的模塊有哪些,給其他模塊提供什么樣的支撐,以及自身的功能集的實現(xiàn)需要其他模塊為自己提供怎樣的支持等等等等。

針對以上的問題,我們一個個來探究:

  1. window_manager模塊在整個系統(tǒng)中的位置:

由淺入深學(xué)習(xí)新模塊之window_manager(一)-開源基礎(chǔ)軟件社區(qū)

?
window_manager模塊又稱為窗口管理子系統(tǒng),它與graphic子系統(tǒng)共同組成了OpenHarmony三大核心子系統(tǒng)中的圖形子系統(tǒng)。

圖形子系統(tǒng):

graphic子系統(tǒng):

提供了圖形接口能力,提供圖形的 NDK(native development kit,原生開發(fā)包)能力,包括:WebGL、Native Drawing的繪制能力、OpenGL 指令級的繪制能力支撐等。

窗口管理子系統(tǒng):

提供窗口管理和Display管理的基礎(chǔ)能力,是系統(tǒng)圖形界面顯示所需的基礎(chǔ)子系統(tǒng)。

  1. 窗口管理子系統(tǒng)的具體功能:

按照官網(wǎng)的描述,窗口管理子系統(tǒng)

窗口管理:窗口提供管理窗口的一些基礎(chǔ)能力,包括對當(dāng)前窗口的創(chuàng)建、銷毀、各屬性設(shè)置,以及對各窗口間的管理調(diào)度。

DisPlay:屏幕屬性提供管理顯示設(shè)備的一些基礎(chǔ)能力,包括獲取默認(rèn)顯示設(shè)備的信息,獲取所有顯示設(shè)備的信息以及監(jiān)聽顯示設(shè)備的插拔行為。

  1. 與其他模塊的關(guān)系

窗口管理子系統(tǒng)接口對開發(fā)者不可見,主要是給其他幾個模塊調(diào)用,如AAFWK(原能力子系統(tǒng))、多媒體、相機等。

對于應(yīng)用開發(fā)者來說,接觸最多的是ability,而ability頁面內(nèi)容由窗口進(jìn)行展示,也就是ability必然會使用該模塊的接口去創(chuàng)建window對象。

對于上層UI框架,其向圖形子系統(tǒng)申請窗口,并使用2D圖像繪制引擎skia向窗口中繪入畫面;而窗口附著在ability上,ability由元能力子系統(tǒng)AAFWK進(jìn)行管理;

window_manager框架本身則提供創(chuàng)建、銷毀窗口的接口,以及窗口的顯示、隱藏、切換、縮放等動作等。

對于下層驅(qū)動程序,圖形子系統(tǒng)圖像的最終顯示由驅(qū)動決定。

window_manager自身的結(jié)構(gòu):

由淺入深學(xué)習(xí)新模塊之window_manager(一)-開源基礎(chǔ)軟件社區(qū)

從window_manager結(jié)構(gòu)可以很清晰的看出window_manager模塊分成窗口管理和Display兩塊,均使用Client/Server模式,各自細(xì)分模塊的功能如下:

  • Window Manager Client

應(yīng)用進(jìn)程窗口管理接口層,提供窗口對對象抽象和窗口管理接口,對接原能力和UI框架。

  • Display Manager Client

應(yīng)用進(jìn)程Display管理接口層,提供Display信息抽象和Display管理接口。

  • Window Manager Server

窗口管理服務(wù),提供窗口布局、Z序控制、窗口樹結(jié)構(gòu)、窗口拖拽、窗口快照等能力,并提供窗口布局和焦點窗口給多模輸入

窗口布局:重疊,平鋪等

Z序控制:窗口可以重疊的前提就要求有Z序控制,Z序可以理解為在傳統(tǒng)的以X,Y為坐標(biāo)的屏幕中的Z軸的序列,來表示窗口在屏幕這個平面堆疊的順序。

窗口樹結(jié)構(gòu):WindowRoot,WindowNode就是管理窗口樹結(jié)構(gòu)的模塊。

窗口拖拽:窗口拖拽事件處理。

窗口快照:這個是智能手機興起之后流行的功能,用于多開應(yīng)用窗口的時候便捷查看和切換應(yīng)用或者窗口。

我們對比下window發(fā)布的前幾個版本窗口的功能,可以看到窗口管理的主要功能這幾十年來并沒有多少變化,包括筆者查看的一篇寫于2008年的windows系統(tǒng)的窗口管理的技術(shù)文章,于今也是大同小異。

  • Display Manager Server
    Display管理服務(wù),提供Display信息、屏幕截圖、屏幕亮滅和亮度處理控制,并處理Display與Screen映射關(guān)系

對其他一些概念的解釋:

Display,Screen,Window:

這三個概念很容易混淆,我們可以參考下Linux下圖形管理中的定義:

Display :
若干個屏幕(screen)以及一套輸入設(shè)備(鍵盤和鼠標(biāo))構(gòu)成一個display,display概念的關(guān)鍵就是有一套完整的輸入輸出。屏幕不一定必須是一個,可以有多個,各個屏幕可以用來顯示相同的內(nèi)容,也可以用來構(gòu)成矩陣顯示一個大屏幕的內(nèi)容。
Screen :
  Screen的層次在display之下,是一個實際的Monitor或是Device。一個screen對應(yīng)一個根窗口(root window),根窗口的大小與screen相同。
Window :
  Window是比screen還要小一級的概念了。Window是有樹形繼承關(guān)系的,每一個屏幕上都對應(yīng)有一個“窗口樹”,樹的根就是root window,即根窗口,它沒有父窗口;除此之外,所有window都有父窗口。一個窗口還可能有子窗口,但并不是必須的。

參考文獻(xiàn):

  1. ??https://gitee.com/openharmony/window_window_manager?? 《window_manger倉介紹》
  2. ??https://www.open-open.com/news/view/185d270?? 《圖說Windows演變史:1985-2012》

總結(jié)

本文介紹了地址翻譯模式以及相關(guān)的配置。下一篇文章將繼續(xù)對loongarch虛擬內(nèi)存系統(tǒng)中的其他部分。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2023-03-15 16:16:07

鴻蒙Server端

2011-07-05 17:45:07

PHP框架

2019-03-08 09:28:42

Google 開源技術(shù)

2024-12-23 14:10:00

AI模型數(shù)據(jù)

2022-10-09 08:53:06

存儲容量SSD

2011-07-15 17:05:14

2010-03-25 17:20:00

CentOS入門

2011-08-23 13:56:12

MySQLConnection

2025-06-13 08:45:00

數(shù)據(jù)模型可視化

2017-02-25 20:32:36

2021-05-26 16:21:59

亞馬遜云科技機器學(xué)習(xí)

2022-11-03 14:13:52

強化學(xué)習(xí)方法

2021-03-19 08:47:38

Zabbix 5.2VMware監(jiān)控

2021-04-23 08:41:17

Zabbix 5.2Nginx監(jiān)控

2021-04-15 08:45:25

Zabbix 5.2Apache監(jiān)控

2016-11-11 14:12:19

R語言

2021-04-25 08:28:44

Zabbix 5.2監(jiān)控IIS服務(wù)運維

2025-01-13 12:33:42

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 人和拘一级毛片c | 久久久综合网 | 国产一区二区影院 | 午夜视频免费在线观看 | 一级a性色生活片久久毛片 一级特黄a大片 | 亚洲成人黄色 | 欧美黄色网 | 亚洲在线视频 | 日韩中文字幕免费在线 | 成人a视频片观看免费 | 日韩精品久久久久久 | av毛片 | 日韩av一区二区在线 | 成人三区 | 午夜一区 | 欧美精品一区二区三区四区五区 | 日韩在线日韩 | 天堂一区在线观看 | 精品一二区 | 亚洲精品v日韩精品 | 久久综合久色欧美综合狠狠 | 狼色网| 青娱乐自拍| 午夜精品久久久 | 国产综合av | 天天搞天天操 | 欧美午夜影院 | 欧美456 | 欧美精品在线观看 | 少妇一级淫片免费放播放 | 国产精品日韩一区 | 一级黄色夫妻生活 | wwwww在线观看 | 久色视频在线 | 欧美成人精品一区二区男人看 | 国产原创视频 | 午夜欧美| 成人国产在线观看 | 日韩精品视频在线观看一区二区三区 | 欧美视频三区 | 91精品中文字幕一区二区三区 |