哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文總結(jié) ACE 代碼框架

電子發(fā)燒友開源社區(qū) ? 來源:未知 ? 2023-01-11 03:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


田可輝

鴻湖萬聯(lián)高級技術(shù)專家

鴻湖萬聯(lián)產(chǎn)品推薦官

一、前言

ACE_Engine框架是OpenAtom OpenHarmony(簡稱“OpenHarmony”)的UI開發(fā)框架,為開發(fā)者提供在進行應用UI開發(fā)時所必需的各種組件,以及定義這些組件的屬性、樣式、事件及方法,通過這些組件可以方便進行OpenHarmony上UI應用的開發(fā)。

ACE_Engine提供的組件分為兩種類型,即類Web開發(fā)范式類型和聲明式開發(fā)范式類型。其中類Web開發(fā)范式中定義一個頁面需要三個文件,html,css和js文件。html文件負責頁面布局,css文件負責定義組件的樣式,js文件負責業(yè)務邏輯實現(xiàn)。而聲明式范式僅需要1個ets文件,頁面布局和組件的樣式以及業(yè)務邏輯實現(xiàn)都在此文件中。如圖:


二、ACE_Engine框架模塊劃分

對于類Web開發(fā)范式組件,根據(jù)組件從前端到后端的過程,可以將整個框架劃分為JsFrameWork、DomNode、ComPonent、RenderNode四個模塊。其作用分別如下:

?JsFrameWork:負責解析前端html和css文件,創(chuàng)建出DomNode樹。該樹的結(jié)構(gòu)和前端頁面是一一對應的。

?DomNode:負責將Dom樹轉(zhuǎn)換為Component樹。注意一個Dom節(jié)點轉(zhuǎn)換過后的Component節(jié)點實際上并不是一個單獨的節(jié)點,而是一棵以rootComponent為根節(jié)點的組件樹。該樹中逐層包裹了對應的功能組件,最內(nèi)部才是真正的主節(jié)點(這樣的作用是功能解耦合,將某一特定的功能放到對應的組件中去)。如BoxComponet負責組件的邊框繪制,DisplayComponent負責組件透明度繪制,TouchComponent負責組件觸摸時間的處理等,一個詳細過程見DOMNode::GenerateComponentNode函數(shù)。

?ComPonent:負責將Component樹中所有繼承自RenderComponent的節(jié)點(可繪制節(jié)點)創(chuàng)建對應的RendNode節(jié)點,生成對應的RendNode樹。見RenderComponent ::CreateRenderNode虛函數(shù)。

?RenderNode:RenderNode即可繪制的節(jié)點,負責組件的最終布局和繪制。其中布局函數(shù)為PerformLayout虛函數(shù),由每個組件對應的實現(xiàn)類Render***類來實現(xiàn)。繪制函數(shù)為Paint虛函數(shù),由每個組件對應的子類FlutterRender***類來實現(xiàn)。

對于聲明式開發(fā)范式組件,根據(jù)組件從前端到后端的過程,可以將整個框架劃分為EtsLoader、JsView、ComPonent、RenderNode四個模塊。其作用分別如下:

?EtsLoader:負責解析ets頁面,根據(jù)組件的tag標簽創(chuàng)建對應的JsView對象,生成jsView樹。
?JsView:負責處理組件的屬性,方法和事件。并通過Create函數(shù)創(chuàng)建對應的Component樹。
?ComPonent:同Web開發(fā)范式組件中的Component
?RenderNode:同Web開發(fā)范式組件中的RenderNode

各模塊創(chuàng)建示意圖如下圖所示:


各模塊間的調(diào)用關(guān)系及主要函數(shù)如下:


三、組件的屬性和樣式的傳遞過程

1.組件的屬性和樣式是保存在前端頁面的,通過JsframeWork解析頁面,并調(diào)用JsEngine的CreateDomNode接口創(chuàng)建Dom節(jié)點的同時傳遞新節(jié)點屬性和樣式。如果頁面中屬性樣式發(fā)生變化,則單獨調(diào)用SetAttr或SetStyle來更新屬性和樣式。

2.DomNode收到屬性和樣式之后,會將通用屬性保存在Declaration類中,將組件特有的屬性通過SetSpecialAttr和SetSpecialStyle函數(shù)保存在自身。

3.DomNode調(diào)用對應Component類的Set***函數(shù),將所有屬性和樣式設(shè)置到Component中。

4.RenderNode創(chuàng)建后,會調(diào)用其Update函數(shù)。該函數(shù)內(nèi)調(diào)用對應Component的Get***函數(shù),來接收組件的所有屬性和樣式。

5.在PipeLine中會遍歷每個RenderNode進行布局和繪制,此時,就依據(jù)RenderNode中接收的屬性和樣式,進行布局并繪制。


四、總結(jié)

ACE_Engine框架整體代碼較復雜,涉及的類別也比較多。本文介紹了一個ACE組件從前端的頁面描述,到中間層三棵樹的創(chuàng)建和屬性傳遞,以及最終進行UI布局和繪制的整個過程。該過程總結(jié)一下就是:JS頁面 —> Dom樹 —> Component樹 —> Render樹,最后繪制Render樹。大家只要理解這個基本過程,再結(jié)合代碼關(guān)注重點流程,就能夠?qū)CE_Engine框架的代碼有整體的理解。在此基礎(chǔ)上可以進行ACE組件的增強功能開發(fā),包括新增一個ACE組件等。

參考

新增一個類Web范式組件開發(fā)指南

https://gitee.com/yan-shuifeng/arkui_docs/blob/master/wiki/Ace1.0前端新增組件開發(fā)指南%EF%BC%9A以新增MyCircle組件為例_ver1.0.md

新增一個聲明式范式組件開發(fā)指南

https://gitee.com/yan-shuifeng/arkui_docs/blob/master/wiki/Ace2.0前端新增組件開發(fā)指南%EF%BC%9A以新增MyCircle組件為例_ver1.0.md



更多熱點文章閱讀
  • DevEco Studio新特性分享-跨語言調(diào)試,讓調(diào)試更便捷高效
  • 基于 OpenHarmony 的智聯(lián)北斗海防系統(tǒng)
  • 玩轉(zhuǎn)OpenHarmony智能家居:如何實現(xiàn)樹莓派“碰一碰”設(shè)備控制
  • 玩轉(zhuǎn)OpenHarmony社交場景:即時通訊平臺
  • HarmonyOS多媒體框架介紹


提示:本文由電子發(fā)燒友社區(qū)發(fā)布,轉(zhuǎn)載請注明以上來源。如需社區(qū)合作及入群交流,請?zhí)砑游⑿臙EFans0806,或者發(fā)郵箱liuyong@huaqiu.com。


原文標題:一文總結(jié) ACE 代碼框架

文章出處:【微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電子發(fā)燒友
    +關(guān)注

    關(guān)注

    34

    文章

    592

    瀏覽量

    34395
  • 開源社區(qū)
    +關(guān)注

    關(guān)注

    1

    文章

    95

    瀏覽量

    815

原文標題:一文總結(jié) ACE 代碼框架

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    ACE1502系列算術(shù)控制器引擎:低功耗應用的理想之選

    ACE1502系列算術(shù)控制器引擎:低功耗應用的理想之選 作為電子工程師,我們在設(shè)計過程中常常為尋找款高性能、低功耗且尺寸小巧的微控制器而絞盡腦汁。今天我要給大家介紹Fairchild
    的頭像 發(fā)表于 04-10 14:55 ?80次閱讀

    探索ACE1202:專為低功耗應用打造的算術(shù)控制器引擎

    探索ACE1202:專為低功耗應用打造的算術(shù)控制器引擎 在電子設(shè)備日益追求高性能與低功耗的今天,款優(yōu)秀的微控制器對于產(chǎn)品的成功至關(guān)重要。Fairchild Semiconductor推出
    的頭像 發(fā)表于 04-10 14:55 ?88次閱讀

    ACE1502產(chǎn)品家族:低功耗應用的算術(shù)控制器引擎

    ?),無疑為低功耗應用領(lǐng)域帶來了新的解決方案。下面,我們就來詳細了解下這款產(chǎn)品。 文件下載: ACE1502EN.pdf 、產(chǎn)品概述 ACE1502是
    的頭像 發(fā)表于 04-10 14:45 ?130次閱讀

    深入了解ACE1101:適用于低功耗應用的算術(shù)控制器引擎

    ACE1101產(chǎn)品家族算術(shù)控制器引擎(ACEx?),正是滿足這需求的優(yōu)秀解決方案。下面我們將深入探討ACE1101的特性、電氣參數(shù)、核心架構(gòu)、定時器功能以及開發(fā)工具等方面。 文件下載
    的頭像 發(fā)表于 04-10 14:45 ?153次閱讀

    探索ACE1001:低功耗應用的理想算術(shù)控制器引擎

    (Arithmetic Controller Engine)系列的員,憑借其出色的特性和功能,成為眾多低功耗應用的理想選擇。下面,我們就來深入了解ACE1001。 文件下載
    的頭像 發(fā)表于 04-10 14:40 ?150次閱讀

    COSEL ACE系列AC - DC可配置型電源供應器詳解

    COSEL ACE系列AC - DC可配置型電源供應器詳解 在電子設(shè)備的設(shè)計中,電源供應器是至關(guān)重要的環(huán),它直接關(guān)系到設(shè)備的性能和穩(wěn)定性。今天我們就來詳細介紹COSEL的ACE系列AC - DC
    的頭像 發(fā)表于 03-27 10:40 ?172次閱讀

    大曉機器人開源空間智能通用模型ACE-Brain-0

    近日,大曉機器人聯(lián)合上海交通大學、南洋理工大學、香港中文大學、香港大學等研究機構(gòu)共同推出以空間智能為底層框架、跨不同具身本體的通用基礎(chǔ)模型“ACE-Brain-0”,正式面向全行業(yè)開源。
    的頭像 發(fā)表于 03-11 13:45 ?358次閱讀
    大曉機器人開源空間智能通用模型<b class='flag-5'>ACE</b>-Brain-0

    RK平臺聲卡基礎(chǔ)知識總結(jié)(基于ALSA框架

    RK 平臺聲卡基于ALSA(Advanced Linux Sound Architecture)框架構(gòu)建,核心目標是實現(xiàn)音頻數(shù)據(jù)的“采集 - 傳輸 - 處理 - 輸出” 全鏈路管理。其本質(zhì)是通過
    的頭像 發(fā)表于 02-06 16:58 ?3525次閱讀
    RK平臺聲卡基礎(chǔ)知識<b class='flag-5'>總結(jié)</b>(基于ALSA<b class='flag-5'>框架</b>)

    LuatOS框架的使用(上)

    在資源受限的物聯(lián)網(wǎng)終端設(shè)備中,如何實現(xiàn)快速開發(fā)與穩(wěn)定運行是關(guān)鍵挑戰(zhàn)。LuatOS框架通過將Lua語言與底層硬件抽象層深度融合,提供了套簡潔高效的開發(fā)范式。本文將圍繞LuatOS框架的使用展開,從
    的頭像 發(fā)表于 01-27 19:38 ?370次閱讀
    LuatOS<b class='flag-5'>框架</b>的使用(上)

    NVIDIA ACE現(xiàn)已支持開源Qwen3-8B小語言模型

    為助力打造實時、動態(tài)的 NPC 游戲角色,NVIDIA ACE 現(xiàn)已支持開源 Qwen3-8B 小語言模型(SLM),可實現(xiàn) PC 游戲中的本地部署。
    的頭像 發(fā)表于 10-29 16:59 ?1416次閱讀

    知乎開源“智能預渲染框架” 幾行代碼實現(xiàn)鴻蒙應用頁面“秒開”

    ,交互延遲等核心痛點,通過智能預測用戶瀏覽目標進行提前渲染,只需幾行代碼即可顯著提升復雜頁面的加載性能,實現(xiàn)“頁面秒開”的高效體驗,為鴻蒙開發(fā)者帶來開發(fā)效率和用戶體驗的雙重飛躍。 隨著鴻蒙生態(tài)快速發(fā)展,應用開發(fā)者難免會遇到些性能問題
    的頭像 發(fā)表于 08-29 14:32 ?710次閱讀
    知乎開源“智能預渲染<b class='flag-5'>框架</b>” 幾行<b class='flag-5'>代碼</b>實現(xiàn)鴻蒙應用頁面“秒開”

    ArkUI-X框架LogInterface使用指南

    ArkUI-X框架支持日志攔截能力,Android側(cè)提供原生接口,用于注入LogInterface接口,框架日志及ts日志通過該接口輸出,本文的核心內(nèi)容是介紹如何在Android平臺上有效利用
    發(fā)表于 06-15 23:20

    Ace 5至尊版搭載聯(lián)發(fā)科天璣9400+處理器

    想要成為掌管游戲的“神”?當然要性能、觸控、網(wǎng)絡都在線!新發(fā)布的Ace 5 至尊版搭載游戲全鏈路芯片級硬件解決方案「電競?cè)尽?,集天璣 9400+ 旗艦芯、靈犀觸控芯、電競 Wi-Fi 芯片 G1 于體,打造超流暢的至尊
    的頭像 發(fā)表于 06-03 17:28 ?1805次閱讀

    電競?cè)?游戲至尊 Ace 5 至尊系列售價 2499 元起

    2025年5月27日,加正式推出Ace5至尊系列,包含Ace5至尊版與
    的頭像 發(fā)表于 05-27 16:55 ?2944次閱讀
    電競?cè)?游戲至尊 <b class='flag-5'>一</b>加 <b class='flag-5'>Ace</b> 5 至尊系列售價 2499 元起

    電競?cè)?,游戲至?Ace 5 至尊系列正式定檔5月27日

    5月20日,加官方宣布Ace5至尊系列正式定檔5月27日。Ace5至尊系列搭載天璣9400系列旗艦性能芯的同時,集靈犀觸控芯、電競
    的頭像 發(fā)表于 05-20 16:04 ?1097次閱讀
    電競?cè)?,游戲至?<b class='flag-5'>一</b>加 <b class='flag-5'>Ace</b> 5 至尊系列正式定檔5月27日
    马山县| 略阳县| 南木林县| 通州区| 江华| 泾阳县| 石首市| 武城县| 将乐县| 嘉定区| 吉木萨尔县| 芜湖市| 乡宁县| 新营市| 红河县| 凤凰县| 泰宁县| 称多县| 莆田市| 嘉义市| 马山县| 鸡东县| 香格里拉县| 许昌市| 大厂| 威远县| 翁牛特旗| 合作市| 邵武市| 大荔县| 霍林郭勒市| 镇康县| 丰城市| 兴海县| 富锦市| 长沙市| 富川| 木兰县| 岳阳县| 山阳县| 鄂伦春自治旗|