OpenHarmony介紹
OpenHarmony 是由開(kāi)放原子開(kāi)源基金會(huì)孵化及運(yùn)營(yíng)的開(kāi)源項(xiàng)目,目標(biāo)是面向全場(chǎng)景、全連接、全智能時(shí)代,基于開(kāi)源的方式,搭建一個(gè)智能終端設(shè)備操作系統(tǒng)的框架和平臺(tái),促進(jìn)萬(wàn)物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。
OpenHarmony架構(gòu)與安全

OpenHarmony整體架構(gòu)遵從分層設(shè)計(jì),從下往上依次為:內(nèi)核層,系統(tǒng)服務(wù)層,框架層和應(yīng)用層。
系統(tǒng)功能按照“系統(tǒng)>子系統(tǒng)>功能/模塊”逐級(jí)展開(kāi),在多設(shè)備部署
OpenHarmony 系統(tǒng)類(lèi)型

輕量系統(tǒng)(mini system)
面向MCU類(lèi)處理器例如Arm Cortex-M、RISC-V 32位的設(shè)備,硬件資源極其有限,支持的設(shè)備最小內(nèi)存為128KiB,可以提供多種輕量級(jí)網(wǎng)絡(luò)協(xié)議,輕量級(jí)的圖形框架,以及豐富的IOT總線讀寫(xiě)部件等??芍蔚漠a(chǎn)品如智能家居領(lǐng)域的連接類(lèi)模組、傳感器設(shè)備、穿戴類(lèi)設(shè)備等。
小型系統(tǒng)(small system)
面向應(yīng)用處理器例如Arm Cortex-A的設(shè)備,支持的設(shè)備最小內(nèi)存為1MiB,可以提供更高的安全能力、標(biāo)準(zhǔn)的圖形框架、視頻編解碼的多媒體能力??芍蔚漠a(chǎn)品如智能家居領(lǐng)域的IP Camera、電子貓眼、路由器以及智慧出行域的行車(chē)記錄儀等。
標(biāo)準(zhǔn)系統(tǒng)(standard system)
面向應(yīng)用處理器例如Arm Cortex-A的設(shè)備,支持的設(shè)備最小內(nèi)存為128MiB,可以提供增強(qiáng)的交互能力、3D GPU以及硬件合成能力、更多控件以及動(dòng)效更豐富的圖形能力、完整的應(yīng)用框架。可支撐的產(chǎn)品如高端的冰箱顯示屏。
ArkUI
方舟開(kāi)發(fā)框架(簡(jiǎn)稱(chēng):ArkUI)是一套構(gòu)建分布式應(yīng)用界面的聲明式UI開(kāi)發(fā)框架。它使用極簡(jiǎn)的UI信息語(yǔ)法、豐富的UI組件、以及實(shí)時(shí)界面預(yù)覽工具,幫助大家在OpenHarmony應(yīng)用開(kāi)發(fā)中提升開(kāi)發(fā)效率30%。您只需使用一套ArkTS API,就能在多個(gè)OpenHarmony設(shè)備上提供生動(dòng)而流暢的用戶(hù)界面體驗(yàn)。
極簡(jiǎn)的UI信息語(yǔ)法
ArkUI開(kāi)發(fā)框架采用基于 TypeScript
擴(kuò)展的極簡(jiǎn)的聲明式UI描述界面語(yǔ)法,提供了類(lèi)自然語(yǔ)言的UI描述和組合,開(kāi)發(fā)者只需用幾行簡(jiǎn)單直觀的聲明式代碼,即可完成界面功能。
豐富的內(nèi)置UI組件
ArkUI開(kāi)發(fā)框架內(nèi)置了豐富而精美的多態(tài)組件,可滿(mǎn)足大部分應(yīng)用界面開(kāi)發(fā)的需求,開(kāi)發(fā)者可以輕松地向幾乎任何UI控件添加動(dòng)畫(huà)并選擇一系列框架內(nèi)置的動(dòng)畫(huà)能力,可為用戶(hù)帶來(lái)平滑而自然的體驗(yàn)。其中多態(tài)是指UI描述是統(tǒng)一的,UI呈現(xiàn)在不同類(lèi)型設(shè)備上會(huì)有所不同。比如 Button
組件在手機(jī)和手表會(huì)有不同的樣式和交互方式。
多維度的狀態(tài)管理機(jī)制
ArkUI開(kāi)發(fā)框架為開(kāi)發(fā)者提供了跨設(shè)備數(shù)據(jù)綁定功能和多維度的狀態(tài)管理機(jī)制(組件內(nèi)/組件間/全局/分布式數(shù)據(jù)驅(qū)動(dòng)UI變更),支持靈活的數(shù)據(jù)驅(qū)動(dòng)的UI變更,幫助開(kāi)發(fā)者節(jié)省70%代碼完成跨端界面應(yīng)用開(kāi)發(fā)。
支持多設(shè)備開(kāi)發(fā)
ArkUI開(kāi)發(fā)框架除了提供UI開(kāi)發(fā)套件外還圍繞著多設(shè)備開(kāi)發(fā)提供了多維度的解決方案,進(jìn)一步簡(jiǎn)化開(kāi)發(fā):
基礎(chǔ)開(kāi)發(fā)能力:包括基礎(chǔ)的分層參數(shù)配置(比如色彩、字號(hào)、圓角、間距等),柵格系統(tǒng),原子化布局能力(比如拉伸、折行、隱藏等)。
零部件組件層:包括多態(tài)控件,統(tǒng)一交互能力,以及在此基礎(chǔ)上的組件組合。
面向典型場(chǎng)景:提供分類(lèi)的頁(yè)面組合模板以及示例代碼。
原生性能體驗(yàn)
ArkUI開(kāi)發(fā)框架內(nèi)置了許多核心的UI控件和動(dòng)效,如圖片、列表、網(wǎng)格、屬性動(dòng)畫(huà)、轉(zhuǎn)場(chǎng)動(dòng)畫(huà)等,加持自研的 ArkCompiler 方舟編譯器和 ArkRuntime 方舟運(yùn)行時(shí)深度優(yōu)化,這些都可以在 HarmonyOS / OpenHarmony 設(shè)備上達(dá)到移動(dòng)原生應(yīng)用一樣的性能體驗(yàn)。
實(shí)時(shí)預(yù)覽機(jī)制
ArkUI開(kāi)發(fā)框架支持實(shí)時(shí)界面預(yù)覽特性可幫助開(kāi)發(fā)快速的所見(jiàn)即所得的開(kāi)發(fā)和調(diào)測(cè)界面,無(wú)需連接真機(jī)設(shè)備就可以顯示應(yīng)用界面在任何 HarmonyOS / OpenHarmony 設(shè)備上的UI效果,預(yù)覽的關(guān)鍵特性主要包括:
一致性渲染:和目標(biāo)設(shè)備一致的UI呈現(xiàn)效果。
實(shí)時(shí)性預(yù)覽:改動(dòng)相應(yīng)的代碼,實(shí)時(shí)呈現(xiàn)出相應(yīng)UI效果。另外,代碼能夠和UI雙向聯(lián)動(dòng),代碼改動(dòng)的同時(shí)UI也實(shí)時(shí)變更,UI改動(dòng)的同時(shí)代碼也相應(yīng)地變更。
多維度預(yù)覽:支持頁(yè)面級(jí)預(yù)覽、組件級(jí)預(yù)覽、多設(shè)備預(yù)覽。
高級(jí)UI組件擴(kuò)展能力
ArkUI框架提供了基于XComponent組件的C++自繪制引擎接入(比如游戲引擎)能力,和基于Web組件的HTML5/Web的渲染能力。滿(mǎn)足了開(kāi)發(fā)者在游戲、相機(jī)、地圖、瀏覽器等復(fù)雜應(yīng)用場(chǎng)景的開(kāi)發(fā)訴求,降低了這類(lèi)應(yīng)用移植的門(mén)檻。
Stage 模型
面向開(kāi)發(fā)者提供十幾種不同場(chǎng)景的擴(kuò)展服務(wù)Extension機(jī)制,在保證了應(yīng)用后臺(tái)進(jìn)程合理運(yùn)行的基礎(chǔ)上,規(guī)避了應(yīng)用進(jìn)程之間無(wú)序拉起,達(dá)到保證前臺(tái)資源供給,應(yīng)用調(diào)度更加有序的目的。
ArkTS
之前寫(xiě)一個(gè)應(yīng)用需要了解三種語(yǔ)言(JS/TS、HTML和CSS)。這對(duì)Web開(kāi)發(fā)者相對(duì)友好,但對(duì)非Web開(kāi)發(fā)者來(lái)說(shuō),負(fù)擔(dān)較重。
ArkTS是OpenHarmony優(yōu)選的主力應(yīng)用開(kāi)發(fā)語(yǔ)言。ArkTS基于TypeScript(簡(jiǎn)稱(chēng)TS)語(yǔ)言擴(kuò)展而來(lái),是TS的超集。
ArkTS繼承了TS的所有特性。
當(dāng)前,ArkTS在TS的基礎(chǔ)上主要擴(kuò)展了聲明式UI能力,讓開(kāi)發(fā)者能夠以更簡(jiǎn)潔、更自然的方式開(kāi)發(fā)高性能應(yīng)用。當(dāng)前擴(kuò)展的聲明式UI能力包括如下特性。
基本UI描述:ArkTS定義了各種裝飾器、自定義組件、UI描述機(jī)制,再配合UI開(kāi)發(fā)框架中的內(nèi)置組件及其相關(guān)的事件方法、屬性方法等共同構(gòu)成了UI開(kāi)發(fā)的主體。
狀態(tài)管理:ArkTS提供了多維度的狀態(tài)管理機(jī)制,在UI開(kāi)發(fā)框架中,和UI相關(guān)聯(lián)的數(shù)據(jù),不僅可以在組件內(nèi)使用,還可以在不同組件層級(jí)間傳遞,比如父子組件之間、爺孫組件之間,也可以是應(yīng)用全局范圍內(nèi)的傳遞,還可以是跨設(shè)備傳遞。另外,從數(shù)據(jù)的傳遞形式來(lái)看,可分為只讀的單向傳遞和可變更的雙向傳遞。開(kāi)發(fā)者可以靈活的利用這些能力來(lái)實(shí)現(xiàn)數(shù)據(jù)和UI的聯(lián)動(dòng)。
動(dòng)態(tài)構(gòu)建UI元素:ArkTS提供了動(dòng)態(tài)構(gòu)建UI元素的能力,不僅可以自定義組件內(nèi)部的UI結(jié)構(gòu),還可以復(fù)用組件樣式,擴(kuò)展原生組件。
渲染控制:ArkTS提供了渲染控制的能力。條件渲染可根據(jù)應(yīng)用的不同狀態(tài),渲染對(duì)應(yīng)狀態(tài)下的UI內(nèi)容。循環(huán)渲染可從數(shù)據(jù)源中迭代獲取數(shù)據(jù),并在每次迭代過(guò)程中創(chuàng)建相應(yīng)的組件。
使用限制與擴(kuò)展:ArkTS在使用過(guò)程中存在限制與約束,同時(shí)也擴(kuò)展了雙向綁定等能力。

示例中所包含的ArkTS聲明式開(kāi)發(fā)范式的基本組成說(shuō)明如下:
裝飾器: 用于裝飾類(lèi)、結(jié)構(gòu)、方法以及變量,賦予其特殊的含義,如上述示例中@Entry、@Component和@State都是裝飾器。 具體而言,@Component表示這是個(gè)自定義組件;@Entry則表示這是個(gè)入口組件;@State表示這是組件中的狀態(tài)變量,這個(gè)變量變化會(huì)觸發(fā)UI刷新。
自定義組件:可復(fù)用的UI單元,可組合其他組件,如上述被@Component裝飾的struct Hello。
UI描述:聲明式的方法來(lái)描述UI的結(jié)構(gòu),例如build()方法中的代碼塊。
內(nèi)置組件:ArkTS中默認(rèn)內(nèi)置的基礎(chǔ)組件、容器組件、媒體組件、繪制組件、畫(huà)布組件等各種組件,開(kāi)發(fā)者可以直接調(diào)用,如示例中的Column、Text、Divider、Button等。
屬性方法:用于組件屬性的配置,如fontSize()、width()、height()、color()等,可通過(guò)鏈?zhǔn)秸{(diào)用的方式設(shè)置多項(xiàng)屬性。
事件方法:用于添加組件對(duì)事件的響應(yīng)邏輯,如跟隨在Button后面的onClick(),同樣可以通過(guò)鏈?zhǔn)秸{(diào)用的方式設(shè)置多個(gè)事件響應(yīng)邏輯。
審核編輯:湯梓紅
-
開(kāi)源
+關(guān)注
關(guān)注
3文章
3690瀏覽量
43841 -
OpenHarmony
+關(guān)注
關(guān)注
29文章
3854瀏覽量
18647
發(fā)布評(píng)論請(qǐng)先 登錄
OpenHarmony2025年度競(jìng)賽訓(xùn)練營(yíng)重磅開(kāi)啟
請(qǐng)問(wèn)下,openharmony支持哪一款龍芯的開(kāi)發(fā)板?有沒(méi)有開(kāi)源的龍芯的openharmony源碼?
2024年OpenHarmony社區(qū)年度激勵(lì)公示
OpenHarmony程序分析框架論文入選ICSE 2025

鴻湖萬(wàn)聯(lián)亮相OpenHarmony人才生態(tài)大會(huì)2024
觸覺(jué)智能亮相OpenHarmony人才生態(tài)大會(huì)2024

通過(guò)WebSocket操作OpenHarmony機(jī)器
OpenHarmony首次亮相歐洲開(kāi)源會(huì)議

第三屆OpenHarmony技術(shù)大會(huì)星光璀璨、致謝OpenHarmony社區(qū)貢獻(xiàn)者
第三屆OpenHarmony技術(shù)大會(huì) “OpenHarmony開(kāi)發(fā)者激勵(lì)計(jì)劃”授牌儀式圓滿(mǎn)舉行

OpenHarmony年度技術(shù)俱樂(lè)部、個(gè)人及活動(dòng)評(píng)選結(jié)果公示
基于ArkTS語(yǔ)言的OpenHarmony APP應(yīng)用開(kāi)發(fā):HelloOpenharmony

基于ArkTS語(yǔ)言的OpenHarmony APP應(yīng)用開(kāi)發(fā):HelloOpenharmony
河南大學(xué)OpenHarmony技術(shù)俱樂(lè)部正式揭牌成立

評(píng)論