一、什么是HarmonyOS
- 2019年8月9日,華為在華為開發(fā)者大會上正式發(fā)布HarmonyOS 1.0,同時將該操作系統(tǒng)開源。
- 2020年9月10日,HarmonyOS 2.0 正式發(fā)布。
- 2022年11月4日,全新的HarmonyOS 3.1發(fā)布,引入全新的Stage模型(準備放棄FA模型)。
二、目標
本文章將帶領(lǐng)我們掌握以下技能:
- 理解HarmonyOS基本概念;
- 體會HarmonyOS設(shè)計理念;
- 區(qū)分HarmonOS技術(shù)架構(gòu)層次;
- 了解HarmonOS部件化架構(gòu)設(shè)計;
- 掌握HarmonOS技術(shù)特性;
- 了解HarmonOS系統(tǒng)安全;
三、HarmonyOS簡介
萬物互聯(lián)時代正在開啟
經(jīng)過十多年的發(fā)展,傳統(tǒng)移動互聯(lián)網(wǎng)的增長紅利已漸見頂,IoT時代即將到來。
新場景帶來的挑戰(zhàn)
不同的設(shè)備類型意味著不同的傳感器能力、硬件能力。屏幕尺寸、操作系統(tǒng)和開發(fā)語言,以及交互方式等。同時跨設(shè)備協(xié)作也讓開發(fā)者面臨這分布式開發(fā)帶來的各種復(fù)雜性,適配和管理工作也將非常巨大。當前移動應(yīng)用開發(fā)中遇到的主要挑戰(zhàn)包括以下一種:
- 針對不同設(shè)備上的不同操作系統(tǒng),重復(fù)開發(fā),維護多套版本。
- 多種語言棧,對技術(shù)人員技能要求較高。
- 多種開發(fā)框架,不同的編程范式。
- 命令式編程,需要關(guān)注細節(jié),變更頻繁,維護成本高。
移動終端應(yīng)用生態(tài)面臨變革
傳統(tǒng)應(yīng)用具有以下優(yōu)缺點:
優(yōu)點:
- 功能齊全
- 整體體驗好
缺點:
- 厚重
- 開發(fā)周期長、成本高
- 信息、應(yīng)用孤島(傳統(tǒng)應(yīng)用之間是彼此獨立的、碎片化的)
- 以應(yīng)用未中心,而非用戶為中心
- 需要用戶主動關(guān)注等顯性操作
輕量化程序?qū)嶓w正在成為新的趨勢,輕量化程序具備“即用即走、無需安裝卸載、永遠最新”的特征,推動了App基于搜索下載的“人找應(yīng)用”的傳統(tǒng)分發(fā)想“服務(wù)找人”的智慧分發(fā)演進。
鴻蒙生態(tài)迎接挑戰(zhàn)
-
單一設(shè)備延伸打多設(shè)備
應(yīng)用一次開發(fā)就能在多個設(shè)備上運行,軟件實體能夠從單一的設(shè)備轉(zhuǎn)移到其他設(shè)備上,且多個設(shè)備之間能夠協(xié)同運行,給消費者提供全新的分布式體驗。
-
厚重應(yīng)用模式到輕量化服務(wù)模式
提供輕量化的服務(wù),最小化資源消耗,一步直達,快速完成消費者特定場景的任務(wù)。
-
智慧分發(fā)到AI加持下的智慧分發(fā)
為消費者提供智慧服務(wù)場景服務(wù),實現(xiàn)“服務(wù)找人”。
-
純軟件到軟硬芯協(xié)同的AI能力
提供軟硬芯協(xié)同話的原生AI能力,全面滿足應(yīng)用高性能訴求。
HarmonyOS系統(tǒng)定義
- HarmonyOS是一款面向萬物互聯(lián)時代的、全新的分布式操作系統(tǒng)。
- 在傳統(tǒng)的單設(shè)備系統(tǒng)能力基礎(chǔ)上,HarmonyOS提出了基于同一套系統(tǒng)能力、設(shè)備多種終端形態(tài)的分布式理念,能夠支持手機、平板、智能穿戴、智慧屏、車機等多種終端設(shè)備,提供全場景(移動辦公、運動健康、社交通訊、媒體娛樂)業(yè)務(wù)能力。
HarmonyOS發(fā)展史
2019年 > HarmonyOS正式發(fā)布并開源核心代碼。
2020年 > 鴻蒙智聯(lián)面向硬件生態(tài)伙伴全面開放
2021年 > 手機及多種智能終端設(shè)備搭載HarmonyOS 2
2022年 > 全新的HarmonyOS 3.1發(fā)布并推出Stage模型,五大場景體驗持續(xù)化鴻蒙生態(tài)更加成熟
2023年 > HarmonyOS 4 發(fā)布
2024年 > HarmonyOS NEXT 正式發(fā)布,拋棄對AOSP的支持,鴻蒙原生應(yīng)用全面啟動。(不出意外的話,因為現(xiàn)在還是2023年,偷笑.jpg)
ArkTS
ArkTs 是華為自研的開發(fā)語言。它在TypeScript的基礎(chǔ)上,匹配ArkUI框架,拓展了聲明式UI、狀態(tài)管理等相應(yīng)的能力,讓開發(fā)者以更簡潔、更自然的方式開發(fā)跨端應(yīng)用。
@Entry
@Component
struct SecondPage {
@State myText: string = 'World'
build() {
Column() {
Text(`Hello ${this.myText}`)
.fontSize(50)
Divider()
Button('Click me')
.onClick(() => {
this.myText = 'ArkUI'
})
.height(50)
.width(100)
.margin({ top: 20 })
}
.height('100%')
.justifyContent(FlexAlign.Center)
}
}
ArkUI
ArkUI是一套構(gòu)建分布式應(yīng)用界面的聲明式UI開發(fā)框架。它使用極簡的UI信息語法、豐富的UI組件、以及實時界面預(yù)覽工具,提升開發(fā)效率。使用一套ArkTS API,就能在多個HarmonyOS設(shè)備上提供生動流暢的用戶界面體驗。
邏輯和UI分離通過利用數(shù)據(jù)雙向綁定機制傳遞頁面變化邏輯,將流轉(zhuǎn)7個步驟簡化為2個步驟。可將跨端遷移和協(xié)同的開發(fā)代碼量降低40%以上。
方舟編譯器(ArkCompiler)
ArkCompiler是華為自研的統(tǒng)一編程平臺,包含編譯器、工具鏈、運行時等關(guān)鍵部件,支持多種編程語言、多種芯片平臺聯(lián)合編譯、運行而設(shè)計的統(tǒng)一編程運行時平臺。支持包括動態(tài)類型和靜態(tài)類型語言在內(nèi)的多種編程語言,如:JS、TS、ArkTS等。
-
方舟編譯器是鴻蒙系統(tǒng)作為手機、PC、平板、電視、車機和智能穿戴設(shè)備等多種設(shè)備統(tǒng)一操作系統(tǒng)的編譯運行時底座。主要分成兩個部分:
-
編譯工具鏈
編譯工具鏈以ArkTS/TS/JS源碼作為輸入,將其編譯成為ABC(ArkCompiler Byte Code,即方舟字節(jié)碼)文件。
-
運行時
運行時直接運行字節(jié)碼文件,實現(xiàn)對應(yīng)語言規(guī)范的語義邏輯。
-
方舟編譯器具有以下特點:
-
AOT編譯模式
ArkCompiler利用ArkTS的靜態(tài)類型信息,進行類型推導(dǎo)并生成對象描述和內(nèi)聯(lián)緩存,加速運行時對字節(jié)碼的解釋執(zhí)行;AOT(Ahead-of-Time)Compiler利用靜態(tài)類型信息直接將字節(jié)碼編譯生成優(yōu)化機器碼,讓應(yīng)用啟動即可運行高性能代碼,提升應(yīng)用啟動和運行性能。
arkcompiler-1.gif
-
LiteActor輕量化并發(fā)
ArkCompiler運行時在HarmonyOS上提供了Worker API支持并發(fā)編程。在運行時實例內(nèi)存隔離的基礎(chǔ)上,ArkCompiler通過共享運行實例中的不可變或者不易變的對象、內(nèi)建代碼塊、方法字節(jié)碼等技術(shù)手段,優(yōu)化了并發(fā)運行實例的啟動性能和內(nèi)存開銷。
arkcompiler-2.gif
-
源碼安全
ArkCompiler會把ArkTS/TS/JS編譯為方舟字節(jié)碼,運行時直接運行方舟字節(jié)碼。并且ArkCompiler使用多種混淆技術(shù)提供更高強度的混淆與保護,使得HarmonyOS應(yīng)用包中裝載的是多重混淆后的字節(jié)碼,有效提高了應(yīng)用代碼安全的強度。
arkcompiler3.gif
開源開放的生態(tài)環(huán)境
- HarmonyOS是華為通過OpenHarmony項目,結(jié)合商業(yè)發(fā)行版增加能力,構(gòu)建華為自研產(chǎn)品的完整解決方案。
- OpenHarmony是由開放原子開源基金會(OpenAtom Foundation)孵化及運營的開源項目,目標是面向全場景、全鏈路、全智能時代,基于開源的方式,搭建一個智能終端設(shè)備操作系統(tǒng)的框架平臺,促進萬物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。
OpenHarmony生態(tài)組成
OpenHarmony的生態(tài)由華為與生態(tài)合作伙伴共同構(gòu)建,旨在構(gòu)建一個健康的,可以自我正想迭代的生態(tài)系統(tǒng),以持續(xù)吸引開發(fā)者和合作伙伴的加入,從而進而帶動更多的用戶選擇。
-
HMS
HMS類似于Google的GMS,是一個集華為全家桶的一個App,包含著許多功能接口的API的服務(wù)能力,是華為自由的不開源的。
-
華為商用的HarmonyOS
相當于基于Android的AOSP所構(gòu)建的EMUI、MIUI等高度自定義UI的Android系統(tǒng)。HarmonyOS是基于OpenHarmony構(gòu)建的商業(yè)版的操作系統(tǒng)。
-
HarmonyOS Connect
華為向合作廠商提供的一種解決方案。
HarmonyOS Connect 服務(wù)包為合作伙伴提供設(shè)備開發(fā)、原子化服務(wù)開發(fā)、設(shè)備全生命周期運營運維等一站式智能化解決方案,由基礎(chǔ)服務(wù)、增強服務(wù)、HarmonyOS Connect 云等組成。基礎(chǔ)服務(wù)為設(shè)備賦予超級終端體驗,增強服務(wù)提供設(shè)備運維分析、運營變現(xiàn)能力以及專屬場景服務(wù),HarmonyOS Connect 云連接設(shè)備與用戶,共同助力開發(fā)者快速實現(xiàn)產(chǎn)品智能化升級,打造互聯(lián)互通的 HarmonyOS Connect 生態(tài)。
根據(jù)伙伴選擇的不同的解決方案與產(chǎn)品體驗特性,我們提供基于 OpenHarmony 系統(tǒng)的閉源服務(wù)包,您可以在“管理中心”中,完成產(chǎn)品定義后,即可獲取對應(yīng)的服務(wù)包。
-
OpenHarmony
相當于Android中的AOSP,是一個開源的項目,具有最基礎(chǔ)的操作系統(tǒng)的能力。
HarmonyOS Connect介紹
- HarmonyOS Connect(中文:鴻蒙智聯(lián))是華為統(tǒng)一的硬件生態(tài)品牌。
- HarmonyOS Connect生態(tài)伙伴可以基于華為提供的芯片設(shè)計、操作系統(tǒng)、連接、云、AI和用戶體驗設(shè)計能力,為消費者提供高品質(zhì)的智能硬件生態(tài)設(shè)備,使該設(shè)備能夠與華為HarmonyOS設(shè)備(包括手機、全屋主機、智能座艙、智慧屏、手表等終端)以及其他的HarmonyOS Connect生態(tài)設(shè)備進行連接和協(xié)同,共同打造互聯(lián)互通的HarmonyOS Connect生態(tài)。
HarmonyOS Connect協(xié)助三種商業(yè)形態(tài)發(fā)展
1個平臺、3種商業(yè)模式:
-
鴻蒙智聯(lián)產(chǎn)品
伙伴自由渠道為主
-
華為智選
華為全渠道銷售為主
-
全屋子系統(tǒng)
全屋渠道銷售為主
HarmonyOS Connect生態(tài)智能家居產(chǎn)品合作伙伴案例
美的智能化家電、九陽不用手洗豆?jié){機、蘇泊爾小C主廚料理機、方太智能電蒸箱、探夢者滑板車、新日電動車、奧佳華按摩椅等等。
四、HarmonyOS設(shè)計理念
HarmonyOS設(shè)計理念概述
HarmonyOS從用戶和開發(fā)者視角出發(fā),開發(fā)出一款面向萬物互聯(lián)時代的操作系統(tǒng)。
-
HarmonyOS的設(shè)計理念有兩條:
-
消費者體驗最佳原則
在終端硬件形態(tài)多樣化的趨勢下,保證用戶分布式多設(shè)備協(xié)同的體驗一致性,實現(xiàn)多端生態(tài)一體化。
-
開發(fā)者最小代價原則
像開發(fā)單設(shè)備一樣開發(fā)分布式應(yīng)用,一次開發(fā)多端部署。
-
HarmonyOS試圖解決的問題
HarmonyOS作為面向智能終端的新一代OS,智能終端在萬物互聯(lián)的時代面臨的問題就是HarmonyOS需要解決的問題目標范圍。
- 軟件能力割裂
- 應(yīng)用生態(tài)割裂
- 用戶數(shù)據(jù)割裂
- 多設(shè)備交互割裂
HarmonyOS設(shè)計目標
- 業(yè)務(wù)設(shè)計目標
- HarmonyOS的定位是面向萬物互聯(lián)下的操作系統(tǒng),支撐萬物互聯(lián)下的多種設(shè)備和業(yè)務(wù)訴求,并隨同相關(guān)技術(shù)而不斷演進。
- 架構(gòu)設(shè)計目標
- 彈性
- 可演進性
- 生態(tài)友好性
- 可重構(gòu)性
- 可用性
- 流暢性
- 安全性
- 架構(gòu)設(shè)計原則
- 分層抽象構(gòu)建原則
- 積木化搭建原則
- 用戶體驗優(yōu)化原則
- 隱私保護與安全原則
- 生態(tài)開放原則
- 分布式架構(gòu)原則
- 接口隔離及兼容性原則
- 高性能低功耗原則
- 開源引用原則
鴻蒙生態(tài)應(yīng)用核心技術(shù)理念
在萬物智聯(lián)時代重要機遇期,鴻蒙系統(tǒng)結(jié)合移動生態(tài)發(fā)展的趨勢,提出了三大技術(shù)理念。
超級終端
超級終端是按用戶在不同場景下使用各種智能終端,通過HarmonyOS的自動協(xié)同組成的一個邏輯終端。超級終端包含了各種類型的只能終端,是HarmonyOS管理的終端類型,對用戶而言,就像一個終端。
五、HarmonyOS技術(shù)架構(gòu)
HarmonyOS整體遵從分層設(shè)計,從下向上依次為:內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層。系統(tǒng)功能按照“系統(tǒng) > 子系統(tǒng) > 功能/模塊”逐級展開,在多設(shè)備部署場景下,支持根據(jù)實際需求裁剪某些非必要的子系統(tǒng)或功能/模塊。HarmonyOS技術(shù)架構(gòu)如下所示。
內(nèi)核層
內(nèi)核子系統(tǒng):HarmonyOS采用多內(nèi)核設(shè)計,支持針對不同資源受限設(shè)備選用適合的OS內(nèi)核。內(nèi)核抽象層(KAL,Kernel Abstract Layer)通過屏蔽多內(nèi)核差異,對上層提供基礎(chǔ)的內(nèi)核能力,包括進程/線程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)管理和外設(shè)管理等。
驅(qū)動子系統(tǒng):硬件驅(qū)動框架(HDF)是HarmonyOS硬件生態(tài)開放的基礎(chǔ),提供統(tǒng)一外設(shè)訪問能力和驅(qū)動開發(fā)、管理框架。
系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層是HarmonyOS的核心能力集合,通過框架層對應(yīng)用程序提供服務(wù)。該層包含以下幾個部分:
系統(tǒng)基本能力子系統(tǒng)集:為分布式應(yīng)用在HarmonyOS多設(shè)備上的運行、調(diào)度、遷移等操作提供了基礎(chǔ)能力,由分布式軟總線、分布式數(shù)據(jù)管理、分布式任務(wù)調(diào)度、方舟多語言運行時、公共基礎(chǔ)庫、多模輸入、圖形、安全、AI等子系統(tǒng)組成。其中,方舟運行時提供了C/C++/JS多語言運行時和基礎(chǔ)的系統(tǒng)類庫,也為使用方舟編譯器靜態(tài)化的Java程序(即應(yīng)用程序或框架層中使用Java語言開發(fā)的部分)提供運行時。
基礎(chǔ)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供公共的、通用的軟件服務(wù),由事件通知、電話、多媒體、DFX(Design For X) 、MSDP&DV等子系統(tǒng)組成。
增強軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供針對不同設(shè)備的、差異化的能力增強型軟件服務(wù),由智慧屏專有業(yè)務(wù)、穿戴專有業(yè)務(wù)、IoT專有業(yè)務(wù)等子系統(tǒng)組成。
硬件服務(wù)子系統(tǒng)集:為HarmonyOS提供硬件服務(wù),由位置服務(wù)、生物特征識別、穿戴專有硬件服務(wù)、IoT專有硬件服務(wù)等子系統(tǒng)組成。
根據(jù)不同設(shè)備形態(tài)的部署環(huán)境,基礎(chǔ)軟件服務(wù)子系統(tǒng)集、增強軟件服務(wù)子系統(tǒng)集、硬件服務(wù)子系統(tǒng)集內(nèi)部可以按子系統(tǒng)粒度裁剪,每個子系統(tǒng)內(nèi)部又可以按功能粒度裁剪。
框架層
框架層為HarmonyOS應(yīng)用開發(fā)提供了Java/C/C++/JS等多語言的用戶程序框架和Ability框架,兩種UI框架(包括適用于Java語言的Java UI框架、適用于JS語言的JS UI框架),以及各種軟硬件服務(wù)對外開放的多語言框架API。根據(jù)系統(tǒng)的組件化裁剪程度,HarmonyOS設(shè)備支持的API也會有所不同。
應(yīng)用層
- 應(yīng)用層包括系統(tǒng)應(yīng)用和第三方非系統(tǒng)應(yīng)用。
- Ability是應(yīng)用所具備能力的抽象,也是應(yīng)用程序的重要組成部分。Ability是系統(tǒng)調(diào)度應(yīng)用的最小單元,是能夠完成一個獨立功能的組件。一個應(yīng)用可以包含一個或多個Ability。
- Stage模型將Ability分為PageAbility和ExtensionAbility兩大類,其中ExtensionAbility又被拓展為ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等一系列的ExtensionAbility,以滿足更多的使用場景。
系統(tǒng)類型
根據(jù)設(shè)備的內(nèi)存差異,鴻蒙操作系統(tǒng)適配的系統(tǒng)類型分為三類:
- 輕量系統(tǒng)(mini system)
- 支持的設(shè)備最小內(nèi)存為128KiB
- 面向MCU(單片機)類處理器,例如Arm Cortex-M、RISC-V 32位的設(shè)備,硬件資源極其有限。
- 可以提供多種輕量級網(wǎng)絡(luò)協(xié)議,輕量級圖形框架,以及豐付的IOT總線讀寫部件等。可支撐的產(chǎn)品如智能家居領(lǐng)域的連接類模組、傳感器設(shè)備、穿戴類設(shè)備等。
- 小型系統(tǒng)(small system)
- 支持設(shè)備最小內(nèi)存為1MiB
- 面向應(yīng)用處理器,例如:Arm Cortex-A的設(shè)備
- 可以提供更高的安全能力,標準的圖形框架、視頻編解碼的多媒體能力。可支撐的產(chǎn)品如智能家居領(lǐng)域的IP Camera、電子貓眼、路由器以及智慧出行領(lǐng)域的行車記錄儀等。
- 標準系統(tǒng)(standard system)
- 支持的設(shè)備最小內(nèi)存為128MiB
- 面向應(yīng)用處理例如Arm Cortex-A的設(shè)備
- 可以提供增強的交互能力、3D GPU以及硬件合成能力、更多控件以及動效豐付的圖形能力、完整的應(yīng)用框架。可支持的產(chǎn)品如高端的冰箱顯示屏。
開發(fā)語言介紹
- 純應(yīng)用軟件開發(fā),基于官方提供的系統(tǒng)SDK進行應(yīng)用開發(fā)。
- 軟硬件結(jié)合的嵌入式開發(fā),注重硬件操作、驅(qū)動開發(fā)、操作系統(tǒng)裁剪定制等。
-
應(yīng)用開發(fā)
HarmonyOS支持如下語言
- ArkTS
- HML + JavaScript + CSS (僅FA模型可用)
- Java(僅API7及一下版本可用)
- C/C++
OpenHarmony支持如下語言
- ArkTS
- HML + JavaScript + CSS (僅FA模型可用)
- C/C++
-
設(shè)備開發(fā)
OpenHarmony設(shè)備開發(fā)僅支持
C/C++
編程語言。
六、部件化開發(fā)架構(gòu)設(shè)計
HarmonyOS在模塊化、組件化的基礎(chǔ)上,引入了部件化架構(gòu)的軟件工程方法,綜合運用模塊化、部件化、組件化等手段,有效支撐了統(tǒng)一的操作在不同規(guī)格、不同形態(tài)、不同類型的設(shè)備上的彈性部署。
架構(gòu)分層與組件化
能力集合
- HarmonyOS針對不同的系統(tǒng)規(guī)格,分別定義了基礎(chǔ)部件能力集合(BCG)和可選部件能力集合(OCG),方便設(shè)備卡發(fā)著按需配置,已支撐其特色功能的擴展或定制開發(fā)。同時,HarmonyOS也支撐設(shè)廠商擴展私有的系統(tǒng)能力(PCG),打造設(shè)備差異化競爭力。
- 針對相同系統(tǒng)規(guī)格設(shè)備,具有相同的BCG系統(tǒng)能力,允許設(shè)備廠商按需選擇好OCG系統(tǒng)能力、擴展PCG系統(tǒng)能力。
部件管理
-
為了支持基于部件的HarmonyOS積木花拼裝,部件的基本特征包括:
部件之間的相對獨立
和所依賴的部件一起拼裝部署
-
可對外提供一定的系統(tǒng)軟硬件能力
- HPM(HarmonyOS Package Manager)是HarmonyOS部件包的管理和分發(fā)工具,面向設(shè)備開發(fā)時,用于獲取、定制HarmonyOS部件源碼,執(zhí)行安裝、編譯、打包等操作,最終構(gòu)建特定產(chǎn)品的OS軟件包,面向多設(shè)備部署時,如果部件之間存在依賴,則要求和被依賴的部件一起部署。
七、三大技術(shù)特性
-
消費體驗
硬件互助,資源共享
HarmonyOS可以實現(xiàn)不同終端設(shè)備之間的快速連接、能力互助、資源共享,匹配合適的設(shè)備、提供流暢的全場景體驗。
-
應(yīng)用開發(fā)者體驗
一次開發(fā),多端部署
HarmonyOS采用了多種分布式技術(shù),使得應(yīng)用程序的開發(fā)實現(xiàn)與不同終端設(shè)備的形態(tài)差異無關(guān),降低了開發(fā)難度和成本。
-
設(shè)備開發(fā)者體驗
統(tǒng)一OS,彈性部署
HarmonyOS采用了組件化的設(shè)計方案,可以根據(jù)設(shè)備的資源能力和業(yè)務(wù)特征進行靈活裁剪,滿足不同形態(tài)的終端設(shè)備對于操作系統(tǒng)的要求。
統(tǒng)一OS彈性部署
HarmonyOS通過組件化和小型化等設(shè)計方法,支持多種終端設(shè)備按需彈性部署,能夠適配不同類別的硬件資源和功能需求。支撐通過編譯鏈關(guān)系去自動生成組件化的依賴關(guān)系,形成組件樹依賴圖,支撐產(chǎn)品系統(tǒng)的便捷開發(fā),降低硬件設(shè)備的開發(fā)門檻。
支持個組件的選擇(組件可有可無):根據(jù)硬件的形態(tài)和需求,可以選擇所需的組件。
支持組件內(nèi)功能集的配置(組件可大可小):像開發(fā)單設(shè)備根據(jù)硬件的資源情況和功能需求,可以選擇配置組件中的功能集。例如,選擇配置圖形礦建組件中的部分控件。一樣開發(fā)分布式應(yīng)用,一次開發(fā)多端部署。
支持組件間依賴的關(guān)聯(lián)(平臺可大可小):根據(jù)編譯鏈關(guān)系,可以自動生成組件化的以來關(guān)系。例如,選擇圖形框架組件,將會自動選擇依賴的圖形引擎組件等。
一次開發(fā)多端部署
- HarmonyOS提供了用戶程序框架、Ability框架以及UI框架,支持應(yīng)用開發(fā)過程中多端的業(yè)務(wù)邏輯和界面邏輯進行復(fù)用,能夠?qū)崿F(xiàn)應(yīng)用的一次開發(fā),多端部署,提升了跨設(shè)備易用的開發(fā)效率。
- 采用業(yè)界主流的設(shè)計方式,提供多種響應(yīng)式布局方案,支持柵格化布局,滿足不同屏幕的界面適配能力。
硬件互助,資源共享
多種設(shè)備之間能夠?qū)崿F(xiàn)硬件互助、資源共享,依賴的關(guān)鍵技術(shù)包括分布式軟總線、分布式設(shè)備虛擬化、分布式數(shù)據(jù)管理、分布式任務(wù)調(diào)度等。
分布式軟總線
分布式軟總線是手機、平板、智能穿戴設(shè)備等分布式設(shè)備的通信基座,為設(shè)備之間的互聯(lián)互動提供了統(tǒng)一的分布式通信能力,為設(shè)備間的無感發(fā)現(xiàn)和零等待傳輸創(chuàng)造了條件。開發(fā)者只需聚焦于業(yè)務(wù)邏輯的實現(xiàn),無需關(guān)注組網(wǎng)方式與底層協(xié)議。
分布式軟總線是如何自發(fā)現(xiàn)并連接的呢?
分布式軟總線提出自動發(fā)現(xiàn)設(shè)備,實現(xiàn)用戶零等待的自發(fā)現(xiàn)體驗,附近同賬號的設(shè)備自動發(fā)現(xiàn)無需等待,自動安全連接。分布式軟總線提出了異構(gòu)網(wǎng)絡(luò)組網(wǎng),自動構(gòu)建一個邏輯全連接網(wǎng)絡(luò),以解決設(shè)備間不同協(xié)議交互的問題。
分布式設(shè)備虛擬化
- 分布式設(shè)備虛擬化平臺可以實現(xiàn)不同設(shè)備的資源融合、設(shè)備管理、數(shù)據(jù)處理,多種設(shè)備共同形成一個超級虛擬終端。
- 針對不同類型的任務(wù),為用戶匹配并選擇能力合適的執(zhí)行硬件,讓業(yè)務(wù)連續(xù)的在不同設(shè)備間流轉(zhuǎn),充分發(fā)揮不同設(shè)備的能力優(yōu)勢,如顯示能力、攝像能力、音頻能力、交互能力以及傳感器能力等。
分布式數(shù)據(jù)管理
用戶數(shù)據(jù)不再與單一物理設(shè)備綁定,業(yè)務(wù)邏輯與數(shù)據(jù)存儲分離,跨設(shè)備的數(shù)據(jù)處理如同本地數(shù)據(jù)一樣方便快捷,讓開發(fā)者能夠輕松實現(xiàn)全場景、多設(shè)備下的數(shù)據(jù)存儲、共享和訪問,為打造一致、流暢的用戶體驗創(chuàng)造了基礎(chǔ)條件。
分布式任務(wù)調(diào)度
分布式任務(wù)調(diào)度基于分布式軟總線、分布式數(shù)據(jù)管理、分布式Profile等技術(shù)特性,構(gòu)建統(tǒng)一的分布式服務(wù)管理(發(fā)現(xiàn)、同步、注冊、調(diào)用)機制,支持對跨設(shè)備的應(yīng)用進行遠程啟動、遠程調(diào)用、遠程連接以及遷移等操作,更夠根據(jù)不同設(shè)備的能力、位置、業(yè)務(wù)運行狀態(tài)、資源使用情況,以及用戶的習(xí)慣和意圖,選擇合適的設(shè)備運行分布式任務(wù)。
八、系統(tǒng)安全
設(shè)備互信認證服務(wù)
-
設(shè)備互信認證服務(wù)
保證設(shè)備之間相互正確可信,并能夠在驗證信任關(guān)系后搭建安全的連接通道,實現(xiàn)用戶數(shù)據(jù)的安全傳輸。
-
用戶身份認證
除傳統(tǒng)身份認證方式外,還提供生物認證方式和分布式協(xié)同認證能力。
-
應(yīng)用程序隔離和權(quán)限管理
系統(tǒng)化地規(guī)范應(yīng)用程序的行為準則與權(quán)限許可并強制執(zhí)行。
-
數(shù)據(jù)分級訪問控制架構(gòu)
數(shù)據(jù)都能獲得與其個人數(shù)據(jù)敏感程度、系統(tǒng)數(shù)據(jù)重要程度和應(yīng)用程序數(shù)據(jù)資產(chǎn)價值匹配的保護措施。
-
數(shù)據(jù)防泄漏保護
數(shù)據(jù)生命周期范圍內(nèi),數(shù)據(jù)的存儲、訪問和傳輸過程中數(shù)據(jù)泄露風(fēng)險比較大。
九、元服務(wù)(原子化服務(wù))
元服務(wù)定義
元服務(wù)是HarmonyOS提供的一種全新的應(yīng)用形態(tài),具有獨立入口,用戶可通過點擊、碰一碰、掃一掃等方式直接觸發(fā),無需顯示安裝,由程序框架后臺靜默安裝后即可使用,可為用戶提供便捷服務(wù)。
元服務(wù)特性
元服務(wù)基于鴻蒙系統(tǒng)API開發(fā),支持運行在1+8+N設(shè)備上,供用戶在合適的場景、合適的設(shè)備上便捷使用。元服務(wù)是支撐可分可合,自由流轉(zhuǎn)的輕量化程序?qū)嶓w,幫助開發(fā)者的服務(wù)更快觸達用戶。具備以下特點:
服務(wù)中心
服務(wù)中心為用戶提供統(tǒng)一的元服務(wù)查看、搜索、收藏和管理功能。
元服務(wù)的服務(wù)流轉(zhuǎn)
-
用戶手動流轉(zhuǎn)
用戶可以通過手動選擇合適的設(shè)備進行流轉(zhuǎn)。用戶點擊圖標后,會調(diào)起系統(tǒng)提供的流轉(zhuǎn)面板。面板中心會展示出用戶應(yīng)用程序的信息及可流轉(zhuǎn)的設(shè)備,引導(dǎo)用戶進行后續(xù)的流轉(zhuǎn)操作。
-
系統(tǒng)推薦流轉(zhuǎn)
系統(tǒng)會通過分布式軟總線自發(fā)的驗證設(shè)備安全性,然后組網(wǎng),組網(wǎng)之后就會去判斷當前用戶所處的環(huán)境中沒有用戶體驗更佳的可選設(shè)備,如果存在這樣的設(shè)備那么系統(tǒng)就會推薦用戶進行流轉(zhuǎn)。
元服務(wù)開發(fā)總體要求
-
免安裝HAP包不能超過10MB
以提供快速響應(yīng)的體驗。超過此大小的HAP包不符合免安裝要求,也無法再服務(wù)中心露出。
-
Project Type字段選擇“Atomic Service”
HarmonyOS 2.0以上版本,通過DevEco Studio工程向?qū)?chuàng)建元服務(wù)。
-
保持免安裝屬性
對于元服務(wù)升級場景:版本更新時要保持免安裝屬性。如果新版本不支持免安裝,將不允許新版本上架。
-
HAP包必須包含F(xiàn)A
如果某便捷服務(wù)的入口需要在服務(wù)中心露出,則該服務(wù)對應(yīng)的HAP包必須包含F(xiàn)A,且FA中必須制定一個唯一的mainAbility(定位用戶操作入口),mainAbility必須為PageAbility。
服務(wù)卡片定義
- 服務(wù)卡片(以下簡稱卡片)是FA的一種界面展示形式,將FA的重要信息或操作前置到卡片,以達到服務(wù)直達,減少體驗層級的目的。
- 卡片常用于嵌入到其他應(yīng)用(當前只支持系統(tǒng)應(yīng)用)中作為其界面的一部分顯示,并支持拉起頁面,發(fā)送消息等基礎(chǔ)的交互能力。