一、什么是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模型(準(zhǔn)備放棄FA模型)楷怒。
二寨腔、目標(biāo)
本文章將帶領(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ù)雜性酪捡,適配和管理工作也將非常巨大。當(dāng)前移動應(yīng)用開發(fā)中遇到的主要挑戰(zhàn)包括以下一種:
- 針對不同設(shè)備上的不同操作系統(tǒng)纳账,重復(fù)開發(fā)逛薇,維護(hù)多套版本。
- 多種語言棧疏虫,對技術(shù)人員技能要求較高永罚。
- 多種開發(fā)框架,不同的編程范式卧秘。
- 命令式編程呢袱,需要關(guān)注細(xì)節(jié),變更頻繁翅敌,維護(hù)成本高羞福。
移動終端應(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正在成為新的趨勢恋昼,輕量化程序具備“即用即走看靠、無需安裝卸載、永遠(yuǎn)最新”的特征液肌,推動了App基于搜索下載的“人找應(yīng)用”的傳統(tǒng)分發(fā)想“服務(wù)找人”的智慧分發(fā)演進(jìn)挟炬。
鴻蒙生態(tài)迎接挑戰(zhàn)
-
單一設(shè)備延伸打多設(shè)備
應(yīng)用一次開發(fā)就能在多個設(shè)備上運(yùn)行,軟件實體能夠從單一的設(shè)備轉(zhuǎn)移到其他設(shè)備上,且多個設(shè)備之間能夠協(xié)同運(yùn)行谤祖,給消費(fèi)者提供全新的分布式體驗婿滓。
-
厚重應(yīng)用模式到輕量化服務(wù)模式
提供輕量化的服務(wù),最小化資源消耗粥喜,一步直達(dá)凸主,快速完成消費(fèi)者特定場景的任務(wù)。
-
智慧分發(fā)到AI加持下的智慧分發(fā)
為消費(fèi)者提供智慧服務(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)的分布式理念,能夠支持手機(jī)纳猫、平板婆咸、智能穿戴、智慧屏续担、車機(jī)等多種終端設(shè)備擅耽,提供全場景(移動辦公、運(yùn)動健康物遇、社交通訊、媒體娛樂)業(yè)務(wù)能力憾儒。
HarmonyOS發(fā)展史
2019年 > HarmonyOS正式發(fā)布并開源核心代碼询兴。
2020年 > 鴻蒙智聯(lián)面向硬件生態(tài)伙伴全面開放
2021年 > 手機(jī)及多種智能終端設(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ù)雙向綁定機(jī)制傳遞頁面變化邏輯录豺,將流轉(zhuǎn)7個步驟簡化為2個步驟朦肘。可將跨端遷移和協(xié)同的開發(fā)代碼量降低40%以上巩检。
方舟編譯器(ArkCompiler)
ArkCompiler是華為自研的統(tǒng)一編程平臺厚骗,包含編譯器、工具鏈兢哭、運(yùn)行時等關(guān)鍵部件领舰,支持多種編程語言、多種芯片平臺聯(lián)合編譯迟螺、運(yùn)行而設(shè)計的統(tǒng)一編程運(yùn)行時平臺冲秽。支持包括動態(tài)類型和靜態(tài)類型語言在內(nèi)的多種編程語言,如:JS矩父、TS锉桑、ArkTS等。
-
方舟編譯器是鴻蒙系統(tǒng)作為手機(jī)窍株、PC民轴、平板、電視球订、車機(jī)和智能穿戴設(shè)備等多種設(shè)備統(tǒng)一操作系統(tǒng)的編譯運(yùn)行時底座后裸。主要分成兩個部分:
-
編譯工具鏈
編譯工具鏈以ArkTS/TS/JS源碼作為輸入,將其編譯成為ABC(ArkCompiler Byte Code冒滩,即方舟字節(jié)碼)文件微驶。
-
運(yùn)行時
運(yùn)行時直接運(yùn)行字節(jié)碼文件,實現(xiàn)對應(yīng)語言規(guī)范的語義邏輯开睡。
-
方舟編譯器具有以下特點:
-
AOT編譯模式
ArkCompiler利用ArkTS的靜態(tài)類型信息因苹,進(jìn)行類型推導(dǎo)并生成對象描述和內(nèi)聯(lián)緩存,加速運(yùn)行時對字節(jié)碼的解釋執(zhí)行篇恒;AOT(Ahead-of-Time)Compiler利用靜態(tài)類型信息直接將字節(jié)碼編譯生成優(yōu)化機(jī)器碼扶檐,讓應(yīng)用啟動即可運(yùn)行高性能代碼,提升應(yīng)用啟動和運(yùn)行性能婚度。
arkcompiler-1.gif
-
LiteActor輕量化并發(fā)
ArkCompiler運(yùn)行時在HarmonyOS上提供了Worker API支持并發(fā)編程蘸秘。在運(yùn)行時實例內(nèi)存隔離的基礎(chǔ)上官卡,ArkCompiler通過共享運(yùn)行實例中的不可變或者不易變的對象、內(nèi)建代碼塊醋虏、方法字節(jié)碼等技術(shù)手段寻咒,優(yōu)化了并發(fā)運(yùn)行實例的啟動性能和內(nèi)存開銷。
arkcompiler-2.gif
-
源碼安全
ArkCompiler會把ArkTS/TS/JS編譯為方舟字節(jié)碼颈嚼,運(yùn)行時直接運(yùn)行方舟字節(jié)碼毛秘。并且ArkCompiler使用多種混淆技術(shù)提供更高強(qiáng)度的混淆與保護(hù),使得HarmonyOS應(yīng)用包中裝載的是多重混淆后的字節(jié)碼阻课,有效提高了應(yīng)用代碼安全的強(qiáng)度叫挟。
arkcompiler3.gif
開源開放的生態(tài)環(huán)境
- HarmonyOS是華為通過OpenHarmony項目,結(jié)合商業(yè)發(fā)行版增加能力限煞,構(gòu)建華為自研產(chǎn)品的完整解決方案抹恳。
- OpenHarmony是由開放原子開源基金會(OpenAtom Foundation)孵化及運(yùn)營的開源項目,目標(biāo)是面向全場景署驻、全鏈路奋献、全智能時代,基于開源的方式旺上,搭建一個智能終端設(shè)備操作系統(tǒng)的框架平臺瓶蚂,促進(jìn)萬物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。
OpenHarmony生態(tài)組成
OpenHarmony的生態(tài)由華為與生態(tài)合作伙伴共同構(gòu)建宣吱,旨在構(gòu)建一個健康的窃这,可以自我正想迭代的生態(tài)系統(tǒng),以持續(xù)吸引開發(fā)者和合作伙伴的加入征候,從而進(jìn)而帶動更多的用戶選擇杭攻。
-
HMS
HMS類似于Google的GMS,是一個集華為全家桶的一個App疤坝,包含著許多功能接口的API的服務(wù)能力朴上,是華為自由的不開源的。
-
華為商用的HarmonyOS
相當(dāng)于基于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è)備全生命周期運(yùn)營運(yùn)維等一站式智能化解決方案扮饶,由基礎(chǔ)服務(wù)、增強(qiáng)服務(wù)乍构、HarmonyOS Connect 云等組成甜无。基礎(chǔ)服務(wù)為設(shè)備賦予超級終端體驗,增強(qiáng)服務(wù)提供設(shè)備運(yùn)維分析岂丘、運(yùn)營變現(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
相當(dāng)于Android中的AOSP秸苗,是一個開源的項目,具有最基礎(chǔ)的操作系統(tǒng)的能力运褪。
HarmonyOS Connect介紹
- HarmonyOS Connect(中文:鴻蒙智聯(lián))是華為統(tǒng)一的硬件生態(tài)品牌惊楼。
- HarmonyOS Connect生態(tài)伙伴可以基于華為提供的芯片設(shè)計吐句、操作系統(tǒng)胁后、連接、云嗦枢、AI和用戶體驗設(shè)計能力攀芯,為消費(fèi)者提供高品質(zhì)的智能硬件生態(tài)設(shè)備,使該設(shè)備能夠與華為HarmonyOS設(shè)備(包括手機(jī)文虏、全屋主機(jī)侣诺、智能座艙、智慧屏氧秘、手表等終端)以及其他的HarmonyOS Connect生態(tài)設(shè)備進(jìn)行連接和協(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é){機(jī)、蘇泊爾小C主廚料理機(jī)灭忠、方太智能電蒸箱膳算、探夢者滑板車、新日電動車弛作、奧佳華按摩椅等等涕蜂。
四、HarmonyOS設(shè)計理念
HarmonyOS設(shè)計理念概述
HarmonyOS從用戶和開發(fā)者視角出發(fā)映琳,開發(fā)出一款面向萬物互聯(lián)時代的操作系統(tǒng)机隙。
-
HarmonyOS的設(shè)計理念有兩條:
-
消費(fèi)者體驗最佳原則
在終端硬件形態(tài)多樣化的趨勢下蜘拉,保證用戶分布式多設(shè)備協(xié)同的體驗一致性,實現(xiàn)多端生態(tài)一體化有鹿。
-
開發(fā)者最小代價原則
像開發(fā)單設(shè)備一樣開發(fā)分布式應(yīng)用旭旭,一次開發(fā)多端部署。
-
HarmonyOS試圖解決的問題
HarmonyOS作為面向智能終端的新一代OS印颤,智能終端在萬物互聯(lián)的時代面臨的問題就是HarmonyOS需要解決的問題目標(biāo)范圍您机。
- 軟件能力割裂
- 應(yīng)用生態(tài)割裂
- 用戶數(shù)據(jù)割裂
- 多設(shè)備交互割裂
HarmonyOS設(shè)計目標(biāo)
- 業(yè)務(wù)設(shè)計目標(biāo)
- HarmonyOS的定位是面向萬物互聯(lián)下的操作系統(tǒng),支撐萬物互聯(lián)下的多種設(shè)備和業(yè)務(wù)訴求年局,并隨同相關(guān)技術(shù)而不斷演進(jìn)际看。
- 架構(gòu)設(shè)計目標(biāo)
- 彈性
- 可演進(jìn)性
- 生態(tài)友好性
- 可重構(gòu)性
- 可用性
- 流暢性
- 安全性
- 架構(gòu)設(shè)計原則
- 分層抽象構(gòu)建原則
- 積木化搭建原則
- 用戶體驗優(yōu)化原則
- 隱私保護(hù)與安全原則
- 生態(tài)開放原則
- 分布式架構(gòu)原則
- 接口隔離及兼容性原則
- 高性能低功耗原則
- 開源引用原則
鴻蒙生態(tài)應(yīng)用核心技術(shù)理念
在萬物智聯(lián)時代重要機(jī)遇期,鴻蒙系統(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)核能力绍刮,包括進(jìn)程/線程管理糜工、內(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è)備上的運(yùn)行帆啃、調(diào)度、遷移等操作提供了基礎(chǔ)能力窍帝,由分布式軟總線努潘、分布式數(shù)據(jù)管理、分布式任務(wù)調(diào)度坤学、方舟多語言運(yùn)行時疯坤、公共基礎(chǔ)庫、多模輸入深浮、圖形压怠、安全、AI等子系統(tǒng)組成飞苇。其中菌瘫,方舟運(yùn)行時提供了C/C++/JS多語言運(yùn)行時和基礎(chǔ)的系統(tǒng)類庫,也為使用方舟編譯器靜態(tài)化的Java程序(即應(yīng)用程序或框架層中使用Java語言開發(fā)的部分)提供運(yùn)行時布卡。
基礎(chǔ)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供公共的雨让、通用的軟件服務(wù),由事件通知忿等、電話栖忠、多媒體、DFX(Design For X) 这弧、MSDP&DV等子系統(tǒng)組成娃闲。
增強(qiáng)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供針對不同設(shè)備的、差異化的能力增強(qiáng)型軟件服務(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)集纯衍、增強(qiá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(單片機(jī))類處理器樟凄,例如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è)備
- 可以提供更高的安全能力俺亮,標(biāo)準(zhǔn)的圖形框架、視頻編解碼的多媒體能力疟呐〗旁可支撐的產(chǎn)品如智能家居領(lǐng)域的IP Camera、電子貓眼启具、路由器以及智慧出行領(lǐng)域的行車記錄儀等本讥。
- 標(biāo)準(zhǔn)系統(tǒng)(standard system)
- 支持的設(shè)備最小內(nèi)存為128MiB
- 面向應(yīng)用處理例如Arm Cortex-A的設(shè)備
- 可以提供增強(qiáng)的交互能力、3D GPU以及硬件合成能力、更多控件以及動效豐付的圖形能力囤踩、完整的應(yīng)用框架旨椒。可支持的產(chǎn)品如高端的冰箱顯示屏堵漱。
開發(fā)語言介紹
- 純應(yīng)用軟件開發(fā),基于官方提供的系統(tǒng)SDK進(jìn)行應(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)的軟件工程方法拔莱,綜合運(yùn)用模塊化碗降、部件化、組件化等手段塘秦,有效支撐了統(tǒng)一的操作在不同規(guī)格讼渊、不同形態(tài)、不同類型的設(shè)備上的彈性部署尊剔。
架構(gòu)分層與組件化
能力集合
- HarmonyOS針對不同的系統(tǒng)規(guī)格爪幻,分別定義了基礎(chǔ)部件能力集合(BCG)和可選部件能力集合(OCG),方便設(shè)備卡發(fā)著按需配置须误,已支撐其特色功能的擴(kuò)展或定制開發(fā)挨稿。同時,HarmonyOS也支撐設(shè)廠商擴(kuò)展私有的系統(tǒng)能力(PCG)京痢,打造設(shè)備差異化競爭力奶甘。
- 針對相同系統(tǒng)規(guī)格設(shè)備,具有相同的BCG系統(tǒng)能力历造,允許設(shè)備廠商按需選擇好OCG系統(tǒng)能力甩十、擴(kuò)展PCG系統(tǒng)能力。
部件管理
-
為了支持基于部件的HarmonyOS積木花拼裝吭产,部件的基本特征包括:
部件之間的相對獨立
和所依賴的部件一起拼裝部署
-
可對外提供一定的系統(tǒng)軟硬件能力
- HPM(HarmonyOS Package Manager)是HarmonyOS部件包的管理和分發(fā)工具侣监,面向設(shè)備開發(fā)時,用于獲取臣淤、定制HarmonyOS部件源碼橄霉,執(zhí)行安裝、編譯邑蒋、打包等操作姓蜂,最終構(gòu)建特定產(chǎn)品的OS軟件包按厘,面向多設(shè)備部署時,如果部件之間存在依賴钱慢,則要求和被依賴的部件一起部署逮京。
七、三大技術(shù)特性
-
消費(fèi)體驗
硬件互助束莫,資源共享
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ù)特征進(jìn)行靈活裁剪渠啤,滿足不同形態(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ù)邏輯和界面邏輯進(jìn)行復(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)度等。
分布式軟總線
分布式軟總線是手機(jī)幔嗦、平板酿愧、智能穿戴設(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)用)機(jī)制己英,支持對跨設(shè)備的應(yīng)用進(jìn)行遠(yuǎn)程啟動、遠(yuǎn)程調(diào)用吴旋、遠(yuǎn)程連接以及遷移等操作悯蝉,更夠根據(jù)不同設(shè)備的能力唱星、位置运授、業(yè)務(wù)運(yùn)行狀態(tài)咏尝、資源使用情況,以及用戶的習(xí)慣和意圖褂傀,選擇合適的設(shè)備運(yùn)行分布式任務(wù)忍啤。
八、系統(tǒng)安全
設(shè)備互信認(rèn)證服務(wù)
-
設(shè)備互信認(rèn)證服務(wù)
保證設(shè)備之間相互正確可信仙辟,并能夠在驗證信任關(guān)系后搭建安全的連接通道同波,實現(xiàn)用戶數(shù)據(jù)的安全傳輸。
-
用戶身份認(rèn)證
除傳統(tǒng)身份認(rèn)證方式外叠国,還提供生物認(rèn)證方式和分布式協(xié)同認(rèn)證能力未檩。
-
應(yīng)用程序隔離和權(quán)限管理
系統(tǒng)化地規(guī)范應(yīng)用程序的行為準(zhǔn)則與權(quán)限許可并強(qiáng)制執(zhí)行。
-
數(shù)據(jù)分級訪問控制架構(gòu)
數(shù)據(jù)都能獲得與其個人數(shù)據(jù)敏感程度粟焊、系統(tǒng)數(shù)據(jù)重要程度和應(yīng)用程序數(shù)據(jù)資產(chǎn)價值匹配的保護(hù)措施冤狡。
-
數(shù)據(jù)防泄漏保護(hù)
數(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ā)纪岁,支持運(yùn)行在1+8+N設(shè)備上,供用戶在合適的場景则果、合適的設(shè)備上便捷使用蜂科。元服務(wù)是支撐可分可合,自由流轉(zhuǎn)的輕量化程序?qū)嶓w短条,幫助開發(fā)者的服務(wù)更快觸達(dá)用戶。具備以下特點:
服務(wù)中心
服務(wù)中心為用戶提供統(tǒng)一的元服務(wù)查看才菠、搜索茸时、收藏和管理功能。
元服務(wù)的服務(wù)流轉(zhuǎn)
-
用戶手動流轉(zhuǎn)
用戶可以通過手動選擇合適的設(shè)備進(jìn)行流轉(zhuǎn)赋访。用戶點擊圖標(biāo)后可都,會調(diào)起系統(tǒng)提供的流轉(zhuǎn)面板。面板中心會展示出用戶應(yīng)用程序的信息及可流轉(zhuǎn)的設(shè)備蚓耽,引導(dǎo)用戶進(jìn)行后續(xù)的流轉(zhuǎn)操作渠牲。
-
系統(tǒng)推薦流轉(zhuǎn)
系統(tǒng)會通過分布式軟總線自發(fā)的驗證設(shè)備安全性,然后組網(wǎng)步悠,組網(wǎng)之后就會去判斷當(dāng)前用戶所處的環(huán)境中沒有用戶體驗更佳的可選設(shè)備签杈,如果存在這樣的設(shè)備那么系統(tǒng)就會推薦用戶進(jìn)行流轉(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的重要信息或操作前置到卡片钳降,以達(dá)到服務(wù)直達(dá)厚宰,減少體驗層級的目的。
- 卡片常用于嵌入到其他應(yīng)用(當(dāng)前只支持系統(tǒng)應(yīng)用)中作為其界面的一部分顯示遂填,并支持拉起頁面铲觉,發(fā)送消息等基礎(chǔ)的交互能力。