作者:peitaiyi,華為終端OS產(chǎn)品交付專家HarmonyOS是一款面向萬物互聯(lián)時(shí)代的、全新的分布式操作系統(tǒng)。在傳統(tǒng)的單設(shè)備系統(tǒng)能力基礎(chǔ)上,HarmonyOS提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念,能夠支持手機(jī)、平板、智能穿戴、智慧屏、車機(jī)等多種終端設(shè)備,實(shí)現(xiàn)更好的萬物互聯(lián)。那么,HarmonyOS是如何用一套OS源碼部署到多種終端的呢?本文將為你揭秘。
一、面臨的挑戰(zhàn)
首先,我們先簡單介紹一套OS部署到多種終端面臨的兩大挑戰(zhàn)。
傳統(tǒng)OS能力比較單一:一套OS系統(tǒng)部署到多種終端,不僅要支持百KB到GB級(jí)的內(nèi)存,還需支持主流CPU架構(gòu)、板級(jí)的器件、各種SoC及外設(shè)模組。而傳統(tǒng)OS大都是單設(shè)備操作系統(tǒng),一套OS僅適配于一套設(shè)備,無法滿足碎片化的硬件需求。
傳統(tǒng)OS裁剪拼裝能力差:產(chǎn)品形態(tài)分布于千行百業(yè),大到汽車、電視、手機(jī),小到手表、門鈴、烤箱,不同功能的產(chǎn)品對(duì)OS的能力訴求不同,這要求OS可以靈活地剪和拼裝。而傳統(tǒng)OS裁剪拼裝能力差,無法滿足千行百業(yè)的產(chǎn)品。
圖1 硬件和產(chǎn)品形態(tài)的碎片
二、HarmonyOS應(yīng)對(duì)策略
基于上述的挑戰(zhàn),HarmonyOS應(yīng)對(duì)策略是“OS可大可小,部件一次開發(fā)可在多種終端上部署” 。
1. 部件介紹部件是HarmonyOS系統(tǒng)能力的基本單元,具有可復(fù)用、可裁剪、可配置、可獨(dú)立編譯和測(cè)試的特點(diǎn)。以源碼、配置和資源文件為劃分依據(jù),擁有獨(dú)立的文件和目錄,可在不同的設(shè)備上實(shí)例化為不同的庫或二進(jìn)制文件,圖2所示。從系統(tǒng)角度看,部件可視為任何能運(yùn)行在HarmonyOS上的軟件。從外部設(shè)備看,部件則可視為一個(gè)個(gè)按設(shè)備所需組裝成OS的系統(tǒng)能力。
圖2 HarmonyOS部件化示意圖2. 部件拼裝
HarmonyOS源碼由“必選部件集”和“可選部件集”組成,必選部件集具有HarmonyOS特征的必選系統(tǒng)能力,可選部件集則具有產(chǎn)品可裁剪的系統(tǒng)能力。被裁剪的部件只會(huì)引起對(duì)應(yīng)系統(tǒng)能力的缺失,不會(huì)引起系統(tǒng)的異常。
必選部件和可選部件像“積木”一樣,根據(jù)設(shè)備硬件模塊(攝像頭、揚(yáng)聲器、屏幕、網(wǎng)絡(luò))與內(nèi)存大小靈活拼裝成不同的OS軟件包,并部署到不同設(shè)備。“大設(shè)備裝大系統(tǒng),小設(shè)備裝小系統(tǒng)。”無論智能設(shè)備的運(yùn)存大小如何,總能找到匹配TA的那一塊系統(tǒng)積木。
圖3 積木拼裝HarmonyOS部件拼裝流程如圖4所示。HarmonyOS發(fā)布?xì)w一化的SDK,應(yīng)用開發(fā)者使用SDK和IDE進(jìn)行跨設(shè)備的應(yīng)用開發(fā),再按不同的設(shè)備類型分發(fā)應(yīng)用。同時(shí),三方的部件也可以與OS軟件包一起部署到設(shè)備中。
圖4 HarmonyOS部件拼裝流程至此,相信大家對(duì)部件拼裝有了一定的認(rèn)識(shí)。隨著萬物互聯(lián)時(shí)代的不斷發(fā)展,HarmonyOS將適配越來越多的硬件設(shè)備,這就使得部件開發(fā)將馬不停蹄,以適應(yīng)千行百業(yè)的硬件產(chǎn)品。開發(fā)者如何開發(fā)部件呢?下文將為你解答。
三、如何開發(fā)部件
我們都知道,HarmonyOS是基于開源項(xiàng)目OpenHarmony開發(fā)的面向多種全場景智能設(shè)備的商用版本,HarmonyOS的部件大都來自O(shè)penHarmony,所以下文對(duì)部件開發(fā)的解答,將圍繞OpenHarmony部件的開發(fā)展開。
在OpenHarmony生態(tài)中有三大類開發(fā)者:OS開發(fā)者、芯片解決方案廠商和產(chǎn)品解決方案廠商,如圖5所示。
圖5 OpenHarmony開發(fā)者
OS開發(fā)者提供OpenHarmony所需的部件,包括內(nèi)核、驅(qū)動(dòng)框架、圖形、媒體等基礎(chǔ)的系統(tǒng)能力。
芯片解決方案廠商對(duì)OS的驅(qū)動(dòng)和接口進(jìn)行適配,形成基于開發(fā)板的完整芯片解決方案。
產(chǎn)品解決方案廠商基于OS和成熟的芯片解決方案組裝產(chǎn)品。
1. 部件標(biāo)準(zhǔn)化
部件開發(fā)前需完備部件詳細(xì)設(shè)計(jì),在此過程中部件標(biāo)準(zhǔn)化尤為重要。
部件標(biāo)準(zhǔn)化確定了部件的名稱、功能、可配置的特性、詳細(xì)的規(guī)格和依賴。一個(gè)典型的部件的定義,圖6所示。它包含了部件的名稱、功能描述、是否系統(tǒng)必選、ROM/RAM、可配置特性和依賴等等。部件的依賴應(yīng)盡量簡單合理,杜絕循環(huán)和冗余的依賴。禁止部件直接依賴特定硬件和產(chǎn)品。
圖6 部件定義文件只有OS的系統(tǒng)能力都按部件進(jìn)行標(biāo)準(zhǔn)化后,對(duì)外的系統(tǒng)能力才能靈活按需拼裝。2. 部件、開發(fā)板和產(chǎn)品嚴(yán)格解耦
為了保持OS可裁剪可拼裝的能力,部件開發(fā)過程中,部件與開發(fā)板和產(chǎn)品之間應(yīng)嚴(yán)格解耦且可獨(dú)立編譯。至此,我們將開發(fā)視圖分為OS部件、芯片解決方案和產(chǎn)品解決方案,如圖7所示。“OS部件”目錄主要存放OS的能力集,比如內(nèi)核、媒體、圖形、電話、分布式軟總線、安全等等。“芯片解決方案”目錄主要存放芯片廠商基于某個(gè)開發(fā)板或者SoC對(duì)OS的適配。“產(chǎn)品解決方案”目錄主要存放產(chǎn)品相關(guān)的配置以及廠商對(duì)OS接口的實(shí)現(xiàn)。
圖7 OpenHarmony開發(fā)視圖目錄樹示意圖基于OpenHarmony開發(fā)視圖目錄樹,實(shí)現(xiàn)了部件、開發(fā)板和產(chǎn)品各自獨(dú)立的開發(fā),保障了三者良好的解耦性。3. 全流程管控
部件在設(shè)計(jì)、開發(fā)和測(cè)試過程中,需嚴(yán)格管控整個(gè)流程。如圖8所示,設(shè)計(jì)文檔在對(duì)應(yīng)PMC審核通過后方可啟動(dòng)部件的開發(fā),在SIG組開發(fā)功能成熟后,再經(jīng)OpenHarmony對(duì)應(yīng)子系統(tǒng)的committer審核合入。合入后,測(cè)試團(tuán)隊(duì)將按部件獨(dú)立測(cè)試驗(yàn)收,驗(yàn)收的范圍不僅包括部件的功能和穩(wěn)定性,還包括部件是否可獨(dú)立編譯、獨(dú)立測(cè)試、依賴是否合入等等。HPM(HarmonyOS Package Manager)審核人員審核通過后,便可以申請(qǐng)HPM上架。
圖8 HarmonyOS部件管控流程
說明:
PMC(Projects Management Centre)是指項(xiàng)目管理委員會(huì),負(fù)責(zé)OpenHarmony 社區(qū)的管理工作,擁有代碼庫寫權(quán)限、OpenHarmony 新版本發(fā)布、Roadmap發(fā)布、新PMC/Committer等社區(qū)事務(wù)的投票權(quán)、以及新的 PMC 成員和 Committer 提名權(quán)。
SIG(Special Interest Group)是指特別興趣小組,SIG在PMC項(xiàng)目管理委員會(huì)指導(dǎo)下,負(fù)責(zé)OpenHarmony社區(qū)特定子領(lǐng)域及創(chuàng)新項(xiàng)目的架構(gòu)設(shè)計(jì)、開源開發(fā)及項(xiàng)目維護(hù)等工作。以上就是本期全部內(nèi)容!相信大家對(duì)部件有了一定的認(rèn)識(shí),歡迎廣大開發(fā)者參與到部件開發(fā)中。
原文標(biāo)題:“積木拼裝”,HarmonyOS彈性部署大揭秘!
文章出處:【微信公眾號(hào):HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
cpu
+關(guān)注
關(guān)注
68文章
11017瀏覽量
215454 -
終端
+關(guān)注
關(guān)注
1文章
1184瀏覽量
30549 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
2006瀏覽量
31953
原文標(biāo)題:“積木拼裝”,HarmonyOS彈性部署大揭秘!
文章出處:【微信號(hào):HarmonyOS_Dev,微信公眾號(hào):HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
HarmonyOS應(yīng)用開發(fā)-設(shè)計(jì)、文檔、源碼、資源查閱&下載匯總
【HarmonyOS】應(yīng)用開發(fā)-設(shè)計(jì)、文檔、源碼、資源查閱&下載匯總
HarmonyOS學(xué)習(xí)之一:鴻蒙HarmonyOS系統(tǒng)簡介
[文章] HarmonyOS學(xué)習(xí)之一:鴻蒙HarmonyOS系統(tǒng)介紹
[文章] HarmonyOS學(xué)習(xí)之一:鴻蒙HarmonyOS系統(tǒng)介紹
一文帶你看懂HarmonyOS如何適配多種終端
HDC2021技術(shù)分論壇:“積木拼裝”,HarmonyOS彈性部署大揭秘!
APL庫是一套AS功能庫與OS操作對(duì)象的集合

一文解析HarmonyOS的技術(shù)特性、子系統(tǒng)架構(gòu)、四大技術(shù)特性

HarmonyOS學(xué)習(xí)之一:鴻蒙系統(tǒng)簡介
鴻蒙OS與Lite OS的區(qū)別是什么
HarmonyOS提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念
解讀HarmonyOS如何實(shí)現(xiàn)一套網(wǎng)絡(luò)請(qǐng)求框架
華為開發(fā)者大會(huì)2021智能硬件開發(fā)—一套OS源碼拼裝產(chǎn)品流程

如何用java語言開發(fā)一套數(shù)字化產(chǎn)科系統(tǒng)? 數(shù)字化產(chǎn)科管理平臺(tái)源碼

評(píng)論