HDC2021技術分論壇:“積木拼裝”,HarmonyOS彈性部署大揭祕!

HarmonyOS開發者社群發表於2021-12-27

作者:peitaiyi,華為終端OS產品交付專家

 

HarmonyOS是一款面向萬物互聯時代的、全新的分散式作業系統。在傳統的單裝置系統能力基礎上,HarmonyOS提出了基於同一套系統能力、適配多種終端形態的分散式理念,能夠支援手機、平板、智慧穿戴、智慧屏、車機等多種終端裝置,實現更好的萬物互聯。

 

那麼,HarmonyOS是如何用一套OS原始碼部署到多種終端的呢?本文將為你揭祕。

 

一、面臨的挑戰


首先,我們先簡單介紹一套OS部署到多種終端面臨的兩大挑戰。

 

  • 傳統OS能力比較單一:一套OS系統部署到多種終端,不僅要支援百KB到GB級的記憶體,還需支援主流CPU架構、板級的器件、各種SoC及外設模組。而傳統OS大都是單裝置作業系統,一套OS僅適配於一套裝置,無法滿足碎片化的硬體需求。

 

  • 傳統OS裁剪拼裝能力差:產品形態分佈於千行百業,大到汽車、電視、手機,小到手錶、門鈴、烤箱,不同功能的產品對OS的能力訴求不同,這要求OS可以靈活地剪和拼裝。而傳統OS裁剪拼裝能力差,無法滿足千行百業的產品。

 

圖1 硬體和產品形態的碎片

 

二、HarmonyOS應對策略


基於上述的挑戰,HarmonyOS應對策略是“OS可大可小,部件一次開發可在多種終端上部署”

 

1. 部件介紹


部件是HarmonyOS系統能力的基本單元,具有可複用、可裁剪、可配置、可獨立編譯和測試的特點。以原始碼、配置和資原始檔為劃分依據,擁有獨立的檔案和目錄,可在不同的裝置上例項化為不同的庫或二進位制檔案,圖2所示。

 

從系統角度看,部件可視為任何能執行在HarmonyOS上的軟體。從外部裝置看,部件則可視為一個個按裝置所需組裝成OS的系統能力。

 

圖2 HarmonyOS部件化示意圖

 

2. 部件拼裝


HarmonyOS原始碼由“必選部件集”和“可選部件集”組成,必選部件集具有HarmonyOS特徵的必選系統能力,可選部件集則具有產品可裁剪的系統能力。被裁剪的部件只會引起對應系統能力的缺失,不會引起系統的異常。

 

必選部件和可選部件像“積木”一樣,根據裝置硬體模組(攝像頭、揚聲器、螢幕、網路)與記憶體大小靈活拼裝成不同的OS軟體包,並部署到不同裝置。

 

“大裝置裝大系統,小裝置裝小系統。”無論智慧裝置的運存大小如何,總能找到匹配他的那一塊系統積木。

 

圖3 積木拼裝

 

HarmonyOS部件拼裝流程如圖4所示。HarmonyOS釋出歸一化的SDK,應用開發者使用SDK和IDE進行跨裝置的應用開發,再按不同的裝置型別分發應用。同時,三方的部件也可以與OS軟體包一起部署到裝置中。

 

圖4  HarmonyOS部件拼裝流程

 

至此,相信大家對部件拼裝有了一定的認識。隨著萬物互聯時代的不斷髮展,HarmonyOS將適配越來越多的硬體裝置,這就使得部件開發將馬不停蹄,以適應千行百業的硬體產品。開發者如何開發部件呢?下文將為你解答。

 

三、如何開發部件


我們都知道,HarmonyOS是基於開源專案OpenHarmony開發的面向多種全場景智慧裝置的商用版本,HarmonyOS的部件大都來自OpenHarmony,所以下文對部件開發的解答,將圍繞OpenHarmony部件的開發展開。

 

在OpenHarmony生態中有三大類開發者:OS開發者、晶片解決方案廠商和產品解決方案廠商,如圖5所示。

 

圖5 OpenHarmony開發者

 

  • OS開發者提供OpenHarmony所需的部件,包括核心、驅動框架、圖形、媒體等基礎的系統能力。
  • 晶片解決方案廠商對OS的驅動和介面進行適配,形成基於開發板的完整晶片解決方案。
  • 產品解決方案廠商基於OS和成熟的晶片解決方案組裝產品。


1. 部件標準化


部件開發前需完備部件詳細設計,在此過程中部件標準化尤為重要。

 

部件標準化確定了部件的名稱、功能、可配置的特性、詳細的規格和依賴。一個典型的部件的定義,圖6所示。它包含了部件的名稱、功能描述、是否系統必選、ROM/RAM、可配置特性和依賴等等。部件的依賴應儘量簡單合理,杜絕迴圈和冗餘的依賴。禁止部件直接依賴特定硬體和產品。

 

圖6 部件定義檔案

 

只有OS的系統能力都按部件進行標準化後,對外的系統能力才能靈活按需拼裝。

 

2. 部件、開發板和產品嚴格解耦


為了保持OS可裁剪可拼裝的能力,部件開發過程中,部件與開發板和產品之間應嚴格解耦且可獨立編譯。至此,我們將開發檢視分為OS部件、晶片解決方案和產品解決方案,如圖7所示。“OS部件”目錄主要存放OS的能力集,比如核心、媒體、圖形、電話、分散式軟匯流排、安全等等。“晶片解決方案”目錄主要存放晶片廠商基於某個開發板或者SoC對OS的適配。“產品解決方案”目錄主要存放產品相關的配置以及廠商對OS介面的實現。

 

圖7 OpenHarmony開發檢視目錄樹示意圖

 

基於OpenHarmony開發檢視目錄樹,實現了部件、開發板和產品各自獨立的開發,保障了三者良好的解耦性。

 

3. 全流程管控


部件在設計、開發和測試過程中,需嚴格管控整個流程。如圖8所示,設計文件在對應PMC稽核通過後方可啟動部件的開發,在SIG組開發功能成熟後,再經OpenHarmony對應子系統的committer稽核合入。合入後,測試團隊將按部件獨立測試驗收,驗收的範圍不僅包括部件的功能和穩定性,還包括部件是否可獨立編譯、獨立測試、依賴是否合入等等。HPM(HarmonyOS Package Manager)稽核人員稽核通過後,便可以申請HPM上架。

 

圖8 HarmonyOS部件管控流程

 

說明:

  • PMC(Projects Management Centre)是指專案管理委員會,負責OpenHarmony 社群的管理工作,擁有程式碼庫寫許可權、OpenHarmony 新版本釋出、Roadmap釋出、新PMC/Committer等社群事務的投票權、以及新的 PMC 成員和 Committer 提名權。
  • SIG(Special Interest Group)是指特別興趣小組,SIG在PMC專案管理委員會指導下,負責OpenHarmony社群特定子領域及創新專案的架構設計、開源開發及專案維護等工作。

 

以上就是本期全部內容!相信大家對部件有了一定的認識,歡迎廣大開發者參與到部件開發中。

 

掃碼新增開發者小助手微信

獲取更多HarmonyOS開發資源和開發者活動資訊

相關文章