女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

ArkUI,更高效的框架設計

HarmonyOS開發者 ? 來源:未知 ? 2022-12-21 09:15 ? 次閱讀

上期文章我們講到了ArkUI的三大特性,同時提到了ArkUI是一套用于構建HarmonyOS應用界面的UI開發框架,本期我們將從架構設計上來聊聊ArkUI的設計理念。

daa6ca04-80cc-11ed-8abf-dac502259ad0.png

ArkUI架構圖

從架構圖可以看出,ArkUI的設計理念是在端到端整條技術路徑設計上建立了一整套完整的分層機制。接下來我們依次分層為大家介紹。

ArkUI框架的“前驅”——【前端層】

dab7c5c0-80cc-11ed-8abf-dac502259ad0.png

前端層

架構的第一層【前端層】又稱【聲明式UI前端】,這一層包含了上期文章介紹的極簡的UI信息語法規范,UI組件以及ArkTS語言特有的狀態管理機制。

dad6fc74-80cc-11ed-8abf-dac502259ad0.gif

獨立的封裝

此外,ArkUI對常用的UI組件的結構、樣式、事件三大屬性進行了獨立的封裝,內置于SDK中。開發人員可以根據項目設計需求,調用與設計匹配的組件函數,傳入相應的參數來完成UI描述。

db018a48-80cc-11ed-8abf-dac502259ad0.png

聲明式UI信息語法

同時使用聲明式UI信息語法,可以讓數據和View進行聯動更新,華為自研語言ArkTS為這種聯動刷新提供了多維度的狀態管理機制,開發人員通過對數據進行注釋標記,合理控制數據對應View的更新作用范圍。

db14aab0-80cc-11ed-8abf-dac502259ad0.gif

三種更新方式

如:只單獨更新、父子單向更新,父子雙向同步更新等。

到這里,第一層【前端層】就介紹完畢了。

ArkUI框架的“核心部分”——【核心層】

接下來我們來到了框架的第二層【核心層】。

db37a920-80cc-11ed-8abf-dac502259ad0.png

核心層

這一層主要包含兩部分【方舟編譯運行時】和【聲明式UI后端引擎】。

db4d8efc-80cc-11ed-8abf-dac502259ad0.png

方舟編譯運行時

【核心層】的第一部分是【方舟編譯運行時】,它涉及到開發環境和終端環境

db6a4e66-80cc-11ed-8abf-dac502259ad0.png

運行流程圖

【方舟編譯運行時】的流程包含4步

db7acd5e-80cc-11ed-8abf-dac502259ad0.gif

跨語言調用

第1步是跨語言調用

ArkUI在開發項目時支持多語言開發,為不同的開發語言相互通信提供了通道,例如:提供了JS/TS與C/ C++交互的NAPI機制。

dbddfb86-80cc-11ed-8abf-dac502259ad0.png

新語言ArkTS

而在ArkUI支持的多種語言中,ArkTS是以TS為語法基礎的應用編程語言。

dbf427bc-80cc-11ed-8abf-dac502259ad0.png

類型系統

在預編譯的過程中,數據的靜態類型信息會攜帶在生成的統一字節碼中,后端編譯的時候能直接利用這種類型信息加速機器碼的執行,避免了運行時收集對象造成的額外開銷,同時這些類型信息被用于AOT編譯過程,使得應用啟動時就可以執行AOT生成的優化機器碼獲得高性能運行體驗。

dc0a46a0-80cc-11ed-8abf-dac502259ad0.png

統一字節碼

第2步是統一字節碼

完成項目開發將項目進行打包時,方舟編譯器將編寫的高級編程語言通過內置的工具鏈,編譯為一種與運行設備和系統無關的可移植介質,這種介質就叫統一字節碼(又稱方舟碼,abc文件),這個過程也稱為字節碼預編譯。

dc1a3506-80cc-11ed-8abf-dac502259ad0.png

統一字節碼

第3步是機器碼和安裝包

字節碼在設備上可以通過解釋執行或者編譯后執行的方式運行,對于執行性能要求高的部分字節碼調用AOT生成機器碼。

最后,應用經歷了開發、字節碼預編譯、AOT靜態優化編譯、打包簽名就形成了一個完整安裝包,這樣一來就終于可以在設備上運行預覽了。

dc368abc-80cc-11ed-8abf-dac502259ad0.png

GC機制

第4步是GC(Garbage Collection)機制

dc4db00c-80cc-11ed-8abf-dac502259ad0.png

搭載HarmonyOS系統的設備

對比其他設備,搭載HarmonyOS系統的設備上運行應用時會顯得特別流暢,這里的秘密是什么呢?

dc68123a-80cc-11ed-8abf-dac502259ad0.png

GC機制技術問題

由于在傳統的操作系統中,基于Tracing的GC存在著STW(Stop The World)階段暫停時間較長的問題。

dc79b72e-80cc-11ed-8abf-dac502259ad0.png

STW

手機內存資源不夠用的時候,傳統操作系統虛擬機就會召喚GC(Garbage Collection)封鎖公路,暫停手機運行的所有線程,等待它回收內存空間。

STW暫停時間較長

而且STW(Stop The World)階段的暫停時間段較長,開發者無法精確控制和干預,在性能較差的手機上會表現出較強的“間歇性”卡頓。這就好比行駛在市區道路的車輛,在經過每個路口都遇到了較長時間的紅燈等待,一路走走停停,行駛體驗感較差。

ddd195f6-80cc-11ed-8abf-dac502259ad0.png

HPP GC

而方舟編譯運行時在內存回收方面重新設計,基于Tracing GC推出了高性能內存回收技術——HPP GC(High Performance Partial Garbage Collection)。HPP GC綜合了多種Tracing GC算法,根據不同對象區域,采用不同的回收方式。這種GC機制可以縮短STW階段的時長,用在市區駕駛車輛來比喻,就是縮短了車輛在路口紅燈等待的時間,增加了行駛的體驗感。

ddec4ba8-80cc-11ed-8abf-dac502259ad0.gif

HPP GC

接下來我們來看核心層的第二部分——聲明式UI后端引擎。

它在HarmonyOS系統終端運行時,由C++編寫UI的基本組件、布局、動效和事件組成。供UI前端開發人員調用。

de127f80-80cc-11ed-8abf-dac502259ad0.gif

渲染管線

渲染管線是位于運行時內部的一個獨立的渲染線程,它負責支配CPU多線程地去工作,讓CPU為GPU提供更多的渲染數據,最大額度的調取GPU的能力。

到此,【核心層】已全部介紹完畢。

通過本期ArkUI架構的學習,相信大家已經了解方舟編譯運行時的技術和流程,也對ArkUI的設計理念有了基礎的認識。完整版的內容可查看上方的視頻,我們下期再見~

END

想了解更多HarmonyOS技術?

后臺留言給我們

立刻安排!


原文標題:ArkUI,更高效的框架設計

文章出處:【微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。


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

    關注

    79

    文章

    2027

    瀏覽量

    32075

原文標題:ArkUI,更高效的框架設計

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    3576智能大屏,AI協作更高效

    億晟科技推出RK3576高性價比八核會議教育大屏主板。01旗艦級性能,全場景覆蓋RK3576芯片,八核架構,Mali-G52GPU,6TOPS算力,支持8K解碼和4K編碼,兼容主流AI框架。02
    的頭像 發表于 05-23 18:36 ?33次閱讀
    3576智能大屏,AI協作<b class='flag-5'>更高效</b>

    ArkUI-X跨平臺框架接入指南

    ArkUI跨平臺框架(ArkUI-X)進一步將ArkUI開發框架擴展到了多個OS平臺:目前支持OpenHarmony、Android、 iO
    發表于 05-18 18:21

    光伏電站運維系統讓太陽能發電更高效

    ?????? 光伏電站運維系統讓太陽能發電更高效 ?????? 光伏電站運維系統是一套幫助管理太陽能發電站的技術工具,它的作用是讓電站運行更穩定、發電更高效,同時減少人工維護的成本和麻煩。以下是它
    的頭像 發表于 03-28 16:22 ?284次閱讀
    光伏電站運維系統讓太陽能發電<b class='flag-5'>更高效</b>

    解碼TW6501:ONFI 5.0協議如何令存儲通訊更高效

    解碼TW6501:ONFI 5.0協議如何令存儲通訊更高效
    的頭像 發表于 01-21 14:51 ?412次閱讀
    解碼TW6501:ONFI 5.0協議如何令存儲通訊<b class='flag-5'>更高效</b>

    華為推出RN/H5多設備自適應組件庫

    存在大量用跨平臺框架開發的應用,部分頁面采用React Native(RN)和H5等框架開發,這些框架在系統級的多設備適配能力上相對有限,導致在折疊機、平板等設備上的適配效率不如ArkUI
    的頭像 發表于 01-16 14:46 ?569次閱讀

    詳解框架設

    后臺程序(控制中心),是程序的核心。它實現了各類RPC接口(遠程調用接口),供前臺程序、MQTT程序使用。
    的頭像 發表于 01-09 16:48 ?506次閱讀
    詳解<b class='flag-5'>框架設</b>計

    HarmonyOS開發指導類文檔更新速遞(上)

    、媒體相關能力新增、優化文檔,方便開發者更加高效使用文檔。 ArkUI(方舟UI框架ArkUI(方舟UI框架)是一個簡潔、高性能、支持跨
    的頭像 發表于 12-30 09:50 ?766次閱讀
    HarmonyOS開發指導類文檔更新速遞(上)

    SSM框架的源碼解析與理解

    MVC模式,使得開發Web應用程序變得更加高效和簡單。 1. Spring框架 基本功能: Spring是一個開源的Java平臺,它提供了全面的基礎設施支持,以便開發Java應用程序。Spring框架
    的頭像 發表于 12-17 09:20 ?802次閱讀

    智能升級,樓宇自控系統讓辦公更高效

    智能升級,樓宇自控系統讓辦公更高效 在快節奏的現代都市生活中,辦公效率成為了企業競爭力的關鍵因素之一。隨著科技的飛速發展,樓宇自控系統作為智能建筑的核心技術,正逐步滲透到我們的辦公環境中,以其獨特
    的頭像 發表于 09-19 14:12 ?429次閱讀

    GaN如何實現更高效、更緊湊的電源

    電子發燒友網站提供《GaN如何實現更高效、更緊湊的電源.pdf》資料免費下載
    發表于 09-12 10:00 ?0次下載
    GaN如何實現<b class='flag-5'>更高效</b>、更緊湊的電源

    一般高壓架設線路用的什么線

    高壓架設線路是指用于輸送高壓電流的架空線路,通常用于遠距離輸電。高壓架設線路的選用和設計需要考慮多種因素,包括線路的電壓等級、輸電距離、地形地貌、氣候條件等。 一、高壓架設線路的類型 按電壓等級分類
    的頭像 發表于 08-16 09:15 ?1437次閱讀

    如何在阿里ECS服務器上架設自己的OpenVPN服務器?

    需要自己架設服務器,讓現場的IR615路由器連接自己的服務器。能通過自己的服務器進行數據采集和遠程運維。
    發表于 07-25 06:14

    英偉達推出Flextron AI框架:賦能靈活高效的AI模型部署

    在人工智能與機器學習領域,隨著技術的不斷演進,模型的高效部署與適應性成為研究的新熱點。近日,英偉達與德克薩斯大學奧斯汀分校攜手宣布了一項重大突破——推出了一種名為FLEXTRON的新型靈活模型架構及訓練后優化框架,這一創新成果為AI模型的廣泛應用與
    的頭像 發表于 07-18 15:22 ?5183次閱讀

    如何使用PyTorch構建更高效的人工智能

    術界和工業界得到了廣泛應用。本文將深入探討如何使用PyTorch構建更高效的人工智能系統,從框架基礎、模型訓練、實戰應用等多個方面進行詳細解析。
    的頭像 發表于 07-02 13:12 ?664次閱讀

    鴻蒙Ability Kit(程序框架服務)【應用啟動框架AppStartup】

    `AppStartup`提供了一種更加簡單高效的初始化組件的方式,支持異步初始化組件加速應用的啟動時間。使用啟動框架應用開發者只需要分別為待初始化的組件實現`AppStartup`提供
    的頭像 發表于 06-10 18:38 ?1039次閱讀