技術架構
[2]HarmonyOS整體遵從分層設計,從下向上依次為:内核層、系統服務層、框架層和應用層。在多設備部署場景下,支持根據實際需求裁剪某些非必要的子系統或功能模塊。HarmonyOS技術架構如下所示。
HarmonyOS應用研發
内核層
内核子系統:HarmonyOS采用多内核設計,支持針對不同資源受限設備選用适合的OS内核。内核抽象層(KAL,Kernel Abstract Layer)通過屏蔽多内核差異,對上層提供基礎的内核能力,包括進程/線程管理、内存管理、文件系統、網絡管理和外設管理等。
驅動子系統:硬件驅動框架(HDF)是HarmonyOS硬件生态開放的基礎,提供統一外設訪問能力和驅動開發、管理框架。
系統服務層
系統服務層是HarmonyOS的核心能力集合,通過框架層對應用程序提供服務。該層包含以下幾個部分:
系統基本能力子系統集:為分布式應用在HarmonyOS多設備上的運行、調度、遷移等操作提供了基礎能 力,由分布式軟總線、分布式數據管理、分布式任務調度、方舟多語言運行時、公共基礎庫、多模輸入、圖形、安全、AI等子系統組成。其中,方舟運行時提供了C/C++/JS多語言運行時和基礎的系統類庫,也為使用方舟編譯器靜态化的Java程序(即應用程序或框架層中使用Java語言開發的部分)提供運行時。
基礎軟件服務子系統集:為HarmonyOS提供公共的、通用的軟件服務,由事件通知、電話、多媒體、DFX(Design For X) 、MSDP&DV等子系統組成。
增強軟件服務子系統集:為HarmonyOS提供針對不同設備的、差異化的能力增強型軟件服務,由智慧屏專有業務、穿戴專有業務、IoT專有業務等子系統組成。
硬件服務子系統集:為HarmonyOS提供硬件服務,由位置服務、生物特征識别、穿戴專有硬件服務、IoT專有硬件服務等子系統組成。
根據不同設備形态的部署環境,基礎軟件服務子系統集、增強軟件服務子系統集、硬件服務子系統集内部可以按子系統粒度裁剪,每個子系統内部又可以按功能粒度裁剪。
框架層
框架層為HarmonyOS應用開發提供了Java/C/C++/JS等多語言的用戶程序框架和Ability框架,兩種UI框架(包括适用于Java語言的Java UI框架、适用于JS語言的JS UI框架),以及各種軟硬件服務對外開放的多語言框架API。根據系統的組件化裁剪程度,HarmonyOS設備支持的API也會有所不同。
應用層
應用層包括系統應用和第三方非系統應用。HarmonyOS的應用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,FA有UI界面,提供與用戶交互的能力;而PA無UI界面,提供後台運行任務的能力以及統一的數據訪問抽象。FA在進行用戶交互時所需的後台數據訪問也需要由對應的PA提供支撐。基于FA/PA開發的應用,能夠實現特定的業務功能,支持跨設備調度與分發,為用戶提供一緻、高效的應用體驗。
參考資料
[1] 開發概覽(華為鴻蒙HarmonyOS應用開發) · HarmonyOS官網[引用日期2021-05-24]
[2] 應用開發(華為鴻蒙HarmonyOS) · HarmonyOS官網[引用日期2021-05-24]








