在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

OpenHarmony ACE 代碼框架總結

電子發燒友開源社區 ? 來源:未知 ? 2022-12-30 19:05 ? 次閱讀

一:ACE_Engine框架概述:

ACE_Engine框架是OpenHarmony 的UI開發框架,提供開發者在進行應用UI開發時所必需的各種組件,以及定義這些組件的屬性,樣式,事件及方法。通過這些組件可以很方便的進行OpenHarmony上UI應用的開發。 ACE_Engine提供的組件分為兩種類型,即:類Web開發范式類型和聲明式開發范式類型。其中類Web開發范式中定義一個頁面需要三個文件,html,css和js文件。html文件負責頁面布局,css文件負責定義組件的樣式,js文件負責業務邏輯實現。而聲明式范式僅需要1個ets文件,頁面布局和組件的樣式以及業務邏輯實現都在此文件中。如圖:c7ab3cee-8830-11ed-bfe3-dac502259ad0.png ?二:ACE_Engine框架模塊劃分對于類Web開發范式組件,根據組件從前端到后端的過程,可以將整個框架劃分為JsFrameWork,DomNode, ComPonent, RenderNode四個模塊。其作用分別如下:
  • JsFrameWork:
負責解析前端html和css文件,創建出DomNode樹。該樹的結構和前端頁面是一一對應的。2. DomNode: 負責將Dom樹轉換為Component樹。注意一個Dom節點轉換過后的Component節點實際上并不是一個單獨的節點,而是一顆以rootComponent為跟節點的組件樹。該樹中逐層包裹了對應的功能組件,最內部才是真正的主節點(這樣的作用是功能解耦合,將某一特定的功能放到對應的組件中去)。如BoxComponet負責組件的邊框繪制,DisplayComponent負責組件透明度繪制,TouchComponent負責組件觸摸時間的處理等。,一個詳細過程見DOMNode::GenerateComponentNode函數。3. ComPonent: 負責將Component樹中所有繼承自RenderComponent的節點(可繪制節點)創建對應的RendNode節點,生成對應的RendNode樹。見RenderComponent ::CreateRenderNode虛函數,4. RenderNode: RenderNode即可繪制的節點,負責組件的最終布局和繪制。其中布局函數為PerformLayout虛函數,由每個組件對應的實現類Render***類來實現。繪制函數為Paint虛函數,由每個組件對應的子類FlutterRender***類來實現。 對于聲明式開發范式組件,根據組件從前端到后端的過程,可以將整個框架劃分為EtsLoader,JsView, ComPonent, RenderNode四個模塊。其作用分別如下:
  • EtsLoader
負責解析ets頁面,根據組件的tag標簽創建對應的JsView對象,生成jsView樹。2. JsView 負責處理組件的屬性,方法和事件。并通過Create函數創建對應的Component樹。3. ComPonent: 同Web開發范式組件中的Component4. RenderNode: 同Web開發范式組件中的RenderNode 各模塊創建示意圖如下圖所示:c7c84d84-8830-11ed-bfe3-dac502259ad0.png ?各模塊見的調用關系及主要函數如下:c7eb86aa-8830-11ed-bfe3-dac502259ad0.png ?三:組件的屬性/樣式的傳遞過程
  1. 組件的屬性和樣式是保存在前端頁面的,通過JsframeWork解析頁面,并調用JsEngine的CreateDomNode接口創建Dom節點的同時傳遞新節點屬性和樣式。 如果頁面中屬性樣式發生變化,則單獨調用SetAttr或SetStyle來更新屬性和樣式。
  2. DomNode收到屬性和樣式之后,會將通用屬性保存在Declation類中,將組件特有的屬性通過SetSpecialAttr和SetSpectialStyle函數保存在自身。
  3. DomNode調用對應Component類的Set***函數,將所有屬性和樣式設置到Component中。
  4. RenderNode創建后,會調用其Update函數。 該函數內調用對應Component的Get***函數,來接收組件的所有屬性和樣式。
  5. PipeLine中會遍歷每個RenderNode進行布局和繪制,此時,就依據RenderNode中接收的屬性和樣式,進行布局并繪制。
c80423ae-8830-11ed-bfe3-dac502259ad0.png ? ?四:總結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 代碼框架總結

文章出處:【微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。


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

    關注

    33

    文章

    562

    瀏覽量

    33405
  • 開源社區
    +關注

    關注

    0

    文章

    95

    瀏覽量

    593

原文標題:OpenHarmony ACE 代碼框架總結

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    貢獻 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芯
    的頭像 發表于 05-27 16:55 ?256次閱讀
    電競三芯 游戲至尊 一加 <b class='flag-5'>Ace</b> 5 至尊系列售價 2499 元起

    請問下,openharmony支持哪一款龍芯的開發板?有沒有開源的龍芯的openharmony源碼?

    想買個2k0300的開發板學習龍芯和openharmony,愣是沒有看到提供openharmony源碼的,也沒與看到開源的代碼。gitee上,openharmony的龍芯sig倉庫也是
    發表于 04-26 13:06

    北京迅為RK3568開發板OpenHarmony系統南向驅動開發內核HDF驅動框架架構

    北京迅為RK3568開發板OpenHarmony系統南向驅動開發內核HDF驅動框架架構
    的頭像 發表于 03-11 14:13 ?989次閱讀
    北京迅為RK3568開發板<b class='flag-5'>OpenHarmony</b>系統南向驅動開發內核HDF驅動<b class='flag-5'>框架</b>架構

    基于Django89的web框架代碼

    基于Django89的web框架代碼,超詳細
    發表于 02-10 15:38 ?0次下載

    迅為RK3568開發板篇OpenHarmony實操HDF驅動控制LED-編寫內核 LED HDF 驅動程序

    接下來編譯 LED 驅動,該驅動用于在基于華為設備框架(HDF)的系統中控制 LED 燈的開關,完整代碼如下所示: 更多內容可以關注:迅為RK3568開發板篇OpenHarmony
    發表于 01-17 15:13

    AKI跨語言調用庫神助攻C/C++代碼遷移至HarmonyOS NEXT

    )開發框架。它極大地簡化了JS與C/C++之間的跨語言訪問,為開發者提供了一種邊界性編程體驗友好的解決方案。通過AKI,開發者可以使用讓代碼更易讀的語法糖,實現JS與C/C++之間的無障礙跨語言互調
    發表于 01-02 17:08

    OpenHarmony程序分析框架論文入選ICSE 2025

      近日,ICSE 2025軟件工程實踐Track放榜,面向OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)的ArkTS程序分析基礎框架--方舟程序分析器(論文題目為
    的頭像 發表于 01-02 13:41 ?970次閱讀
    <b class='flag-5'>OpenHarmony</b>程序分析<b class='flag-5'>框架</b>論文入選ICSE 2025

    一加Ace 5系列正式發布

    一加 Ace 5系列正式發布。該系列中,一加 Ace 5 Pro搭載全新的驍龍8至尊版移動平臺,一加 Ace 5則搭載第三代驍龍8移動平臺。兩款新機在性能、屏幕、設計以及影像等方面帶來全方位升級,為用戶打造出更加硬核的電競傳奇體
    的頭像 發表于 12-27 11:52 ?1464次閱讀

    游戲體驗天花板,一加 Ace 5 系列售價 2299 元起

    2024年12月26日,一加正式發布游戲體驗天花板一加Ace5系列——一加Ace5及一加Ace5Pro。一加Ace5系列深度聚焦性能和游戲體驗,搭載驍龍8系旗艦平臺和行業首個自研芯片級
    的頭像 發表于 12-27 10:19 ?1248次閱讀
    游戲體驗天花板,一加 <b class='flag-5'>Ace</b> 5 系列售價 2299 元起

    第三屆OpenHarmony技術大會星光璀璨、致謝OpenHarmony社區貢獻者

    取得豐碩成果的TSG團隊、OpenHarmony技術俱樂部團隊及個人,本次大會特別舉辦了星光團隊和星光個人授牌儀式。共授牌4個星光TSG,分別是安全及機密計算TSG、跨平臺應用開發框架TSG、編程語言
    的頭像 發表于 10-21 14:10 ?482次閱讀

    【龍芯2K0300蜂鳥板試用】OpenHarmony代碼

    收到龍芯2K0300蜂鳥開發板后,對開發板做了一些了解和研究,現將OpenHarmony代碼提供給大家測試,也希望大家能更多的認識龍芯2K0300蜂鳥開發板,下面先簡單介紹一下這塊開發板。 廣東
    發表于 09-18 11:42

    基于ArkTS語言的OpenHarmony APP應用開發:HelloOpenharmony

    1、程序簡介該程序是基于OpenHarmony標準系統編寫的UI應用類:HelloOpenHarmony。本案例是基于API9接口開發。本案例已在OpenHarmony凌蒙派-RK3568開發
    的頭像 發表于 09-15 08:09 ?760次閱讀
    基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應用開發:Hello<b class='flag-5'>Openharmony</b>

    基于ArkTS語言的OpenHarmony APP應用開發:HelloOpenharmony

    開發板驗證通過,具體代碼可參考:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk3568-openharmony/tree/master
    發表于 09-14 12:47

    400萬!深開鴻OpenHarmony主倉代碼貢獻量再創里程碑!

    2024年7月8日,據OpenAtomOpenHarmony(以下簡稱“OpenHarmony”)官網顯示,深開鴻在OpenHarmony社區主倉代碼貢獻總量超過400萬行,在華為以外
    的頭像 發表于 07-09 08:33 ?552次閱讀
    400萬!深開鴻<b class='flag-5'>OpenHarmony</b>主倉<b class='flag-5'>代碼</b>貢獻量再創里程碑!
    主站蜘蛛池模板: 99久热| 五月天婷婷在线免费观看 | 午夜日韩精品 | 欧美一级片观看 | 色五阁| 777色狠狠一区二区三区香蕉 | 1024你懂的在线观看 | 人人爱干| 中国一级黄色毛片 | 色多多www网站 | 四虎精品久久久久影院 | 成人影院久久久久久影院 | 欧美性猛交ⅹxxx乱大交免费 | 国产亚洲综合精品一区二区三区 | 妇乱子伦激情 | 免费的黄色大片 | 黄黄的网站 | 91av视频免费在线观看 | 亚洲精品国产成人 | 亚洲情a成黄在线观看动 | 伊人久久大香线蕉综合亚洲 | 国模吧双双大尺度炮交gogo | 男人j进入女人j在线视频 | 天堂在线观看视频 | 亚洲一级毛片在线观播放 | 伊人丁香婷婷综合一区二区 | 日本三级在线视频 | 超级极品白嫩美女在线 | 香蕉视频在线观看黄 | 国产亚洲综合精品一区二区三区 | 一区二区三区在线免费 | 欧美黄又粗暴一进一出抽搐 | 黄h网站 | 免费网站黄成人影院 | 操碰视频在线观看 | 免费欧美 | h文 超乳 奶水 | 毛片a区| 性夜影院爽黄a爽免费看网站 | 欧美黄色片视频 | 午夜久久久久久网站 |