圖形子系統
圖形子系統主要包括UI組件、布局、動畫、字體、輸入事件、窗口管理、渲染繪制等模塊,構建基于輕量OS應用框架滿足硬件資源較小的物聯網設備或者構建基于標準OS的應用框架滿足富設備的OpenHarmony系統應用開發。
1.1 輕量系統
簡介
圖形子系統主要包括UI組件、布局、動畫、字體、輸入事件、窗口管理、渲染繪制等模塊,構建基于輕量OS的應用框架,滿足硬件資源較小的物聯網設備的OpenHarmony系統應用開發。
圖 1 圖形子系統架構圖[]()
各模塊介紹:
- View:應用組件,包括UIView、UIViewGroup、UIButton、UILabel、UILabelButton、UIList、UISlider等。
- Animator:動畫模塊,開發者可以自定義動畫。
- Layout:布局控件,包括FlexLayout、GridLayout、ListLayout等。
- Transform:圖形變換模塊,包括旋轉、平移、縮放等。
- Event:事件模塊,包括click、press、drag、long press等基礎事件。
- Rendering engine:渲染繪制模塊。
- 2D graphics library:2D繪制模塊,包括直線、矩形、圓、弧、圖片、文字等繪制。包括軟件繪制和硬件加速能力對接。
- Multi-language:多語言模塊,用于處理不用不同語言文字的換行、整形等。
- Image library:圖片處理模塊,用于解析和操作不同類型和格式的圖片,例如png、jpeg、ARGB8888、ARGB565等
- WindowManager:窗口管理模塊,包括窗口創建、顯示隱藏、合成等處理。
- InputManager:輸入事件管理模塊。
目錄
/foundation/arkui
├── ui_lite # UI模塊,包括UI控件、動畫、字體等功能
/foundation/graphic
├── surface_lite # 共享內存
├── graphic_utils_lite # 圖形基礎庫和硬件適配層
/foundation/window
└── window_manager_lite # 窗口管理和輸入事件管理
約束
- 圖形組件不支持多線程并發操作,建議相關操作都在ui線程中執行;
- utils/interfaces/innerkits/graphic_config.h文件列舉了圖形部分可配置功能的宏開關,需要在編譯前配置,配置時需要注意部分宏開關是分平臺配置的。
鴻蒙開發學習知識已更新gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
前往參考。
1.2 標準系統
簡介
圖形子系統 提供了圖形接口能力。
其主要的結構如下圖所示:
OpenHarmony 圖形棧的分層說明如下:
? 接口層:提供圖形的 Native API能力,包括:WebGL、Native Drawing的繪制能力、OpenGL 指令級的繪制能力支撐等。
? 框架層:分為 Render Service、Drawing、Animation、Effect、顯示與內存管理五個模塊。
模塊 | 能力描述 |
---|---|
Render Service (渲染服務) | 提供UI框架的繪制能力,其核心職責是將ArkUI的控件描述轉換成繪制樹信息,根據對應的渲染策略,進行最佳路徑渲染。同時,負責多窗口流暢和空間態下UI共享的核心底層機制。 |
Drawing (繪制) | 提供圖形子系統內部的標準化接口,主要完成2D渲染、3D渲染和渲染引擎的管理等基本功能。 |
Animation (動畫) | 提供動畫引擎的相關能力。 |
Effect (效果) | 主要完成圖片效果、渲染特效等效果處理的能力,包括:多效果的串聯、并聯處理,在布局時加入渲染特效、控件交互特效等相關能力。 |
顯示與內存管理 | 此模塊是圖形棧與硬件解耦的主要模塊,主要定義了OpenHarmony顯示與內存管理的能力,其定義的HDI接口需要讓不同的OEM廠商完成對OpenHarmony圖形棧的適配. |
? 引擎層:包括2D圖形庫和3D圖形引擎兩個模塊。2D圖形庫提供2D圖形繪制底層API,支持圖形繪制與文本繪制底層能力。3D圖形引擎能力尚在構建中。
審核編輯 黃宇
-
API
+關注
關注
2文章
1504瀏覽量
62162 -
鴻蒙
+關注
關注
57文章
2369瀏覽量
42900 -
OpenHarmony
+關注
關注
25文章
3728瀏覽量
16395
發布評論請先 登錄
相關推薦
評論