一:ACE_Engine框架概述:
ACE_Engine框架是OpenHarmony 的UI開發框架,提供開發者在進行應用UI開發時所必需的各種組件,以及定義這些組件的屬性,樣式,事件及方法。通過這些組件可以很方便的進行OpenHarmony上UI應用的開發。 ACE_Engine提供的組件分為兩種類型,即:類Web開發范式類型和聲明式開發范式類型。其中類Web開發范式中定義一個頁面需要三個文件,html,css和js文件。html文件負責頁面布局,css文件負責定義組件的樣式,js文件負責業務邏輯實現。而聲明式范式僅需要1個ets文件,頁面布局和組件的樣式以及業務邏輯實現都在此文件中。如圖:
?二:ACE_Engine框架模塊劃分對于類Web開發范式組件,根據組件從前端到后端的過程,可以將整個框架劃分為JsFrameWork,DomNode, ComPonent, RenderNode四個模塊。其作用分別如下:- JsFrameWork:
- EtsLoader
?各模塊見的調用關系及主要函數如下:
?三:組件的屬性/樣式的傳遞過程- 組件的屬性和樣式是保存在前端頁面的,通過JsframeWork解析頁面,并調用JsEngine的CreateDomNode接口創建Dom節點的同時傳遞新節點屬性和樣式。 如果頁面中屬性樣式發生變化,則單獨調用SetAttr或SetStyle來更新屬性和樣式。
- DomNode收到屬性和樣式之后,會將通用屬性保存在Declation類中,將組件特有的屬性通過SetSpecialAttr和SetSpectialStyle函數保存在自身。
- DomNode調用對應Component類的Set***函數,將所有屬性和樣式設置到Component中。
- RenderNode創建后,會調用其Update函數。 該函數內調用對應Component的Get***函數,來接收組件的所有屬性和樣式。
- 在PipeLine中會遍歷每個RenderNode進行布局和繪制,此時,就依據RenderNode中接收的屬性和樣式,進行布局并繪制。
?
?四:總結ACE_Engine框架整體代碼較復雜,涉及的類也比較多。本文簡單介紹了一個ACE組件從前端的頁面描述,到中間層三棵樹的創建和屬性傳遞,以及最終進行UI布局和繪制的整個過程。該過程簡單總結一下就是:JS頁面 —> Dom樹 —> Component樹 —> Render樹,最后繪制Render樹。大家只要理解這個基本過程,在結合代碼關注重點流程。相信一定能夠對ACE_Engine框架的代碼有整體的理解。再此基礎上可以進行ACE組件的增強功能開發,包括新增一個ACE組件等。
文章轉自:鴻湖萬聯
參考:新增一個類Web范式組件開發指南:https://gitee.com/yan-shuifeng/arkui_docs/blob/master/wiki/Ace1.0前端新增組件開發指南%EF%BC%9A以新增MyCircle組件為例_ver1.0.md
新增一個聲明式范式組件開發指南https://gitee.com/yan-shuifeng/arkui_docs/blob/master/wiki/Ace2.0前端新增組件開發指南%EF%BC%9A以新增MyCircle組件為例_ver1.0.md
更多熱點文章閱讀- 玩轉OpenHarmony PID:教你打造兩輪平衡車
- 基于 OpenHarmony 的智聯北斗海防系統
- 玩轉OpenHarmony智能家居:如何實現樹莓派“碰一碰”設備控制
- 帶你玩轉OpenHarmony AI:基于Seetaface2的人臉識別
-
帶你玩轉OpenHarmony AI:打造智能語音子系統
提示:本文由電子發燒友社區發布,轉載請注明以上來源。如需社區合作及入群交流,請添加微信EEFans0806,或者發郵箱liuyong@huaqiu.com。
原文標題:OpenHarmony ACE 代碼框架總結
文章出處:【微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
電子發燒友
+關注
關注
34文章
591瀏覽量
34132 -
開源社區
+關注
關注
1文章
95瀏覽量
798
原文標題:OpenHarmony ACE 代碼框架總結
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
知乎開源“智能預渲染框架” 幾行代碼實現鴻蒙應用頁面“秒開”
近日,知乎在Gitee平臺開源了其自研的鴻蒙“智能預渲染框架”,并將該框架的Har包上架到OpenHarmony三方庫中心倉。該框架在鴻蒙平臺首創“智能預渲染”技術,旨在破解應用復雜頁
第三屆大會回顧第3期 | FFRT并發框架在OpenHarmony中的設計與實踐
演講嘉賓 | 黃佑鐘 回顧整理 | 廖 ? 濤 排版校對 | 宋夕明 嘉賓介紹 開發框架分論壇? 黃佑鐘 ,海思Kirin解決方案并行與異構計算專家。 正文內容 多任務并發能更有效地利用CPU資源
ArkUI-X框架LogInterface使用指南
ArkUI-X框架支持日志攔截能力,Android側提供原生接口,用于注入LogInterface接口,框架日志及ts日志通過該接口輸出,本文的核心內容是介紹如何在Android平臺上有效利用
發表于 06-15 23:20
貢獻 OpenHarmony 庫關鍵配置
# 貢獻 OpenHarmony 庫關鍵配置 #自研框架#ArkUI-X#三方框架#OpenHarmony#HarmonyOS
## 創建第三方庫
- 打開 DevEco Stud
發表于 05-28 13:46
電競三芯 游戲至尊 一加 Ace 5 至尊系列售價 2499 元起
2025年5月27日,一加正式推出一加Ace5至尊系列,包含一加Ace5至尊版與一加Ace5競速版兩款機型。一加Ace5至尊系列配備了由9400系列旗艦芯、靈犀觸控芯和電競Wi-Fi芯
ArkUI-X跨平臺框架接入指南
ArkUI跨平臺框架(ArkUI-X)進一步將ArkUI開發框架擴展到了多個OS平臺:目前支持OpenHarmony、Android、 iOS,后續會逐步增加更多平臺支持。開發者基于一套主代碼
發表于 05-18 18:21
請問下,openharmony支持哪一款龍芯的開發板?有沒有開源的龍芯的openharmony源碼?
想買個2k0300的開發板學習龍芯和openharmony,愣是沒有看到提供openharmony源碼的,也沒與看到開源的代碼。gitee上,openharmony的龍芯sig倉庫也是
發表于 04-26 13:06
OpenHarmony ACE 代碼框架總結
評論