瞭解 HarmonyOS

2023-08-30 12:00:53

引言

在開始 HarmonyOS 開發之前,瞭解其背景、特點和架構是非常重要的。本章將為你提供一個全面的 HarmonyOS 概覽。

目錄

    1. 什麼是 HarmonyOS
    1. HarmonyOS 的發展歷程
    1. HarmonyOS 的特點
    1. HarmonyOS 的架構
    1. HarmonyOS 與其他作業系統的比較

1. 什麼是 HarmonyOS

HarmonyOS 是華為推出的一個全場景、多裝置型別、多核心的分散式作業系統。
鴻蒙(即HarmonyOS,開發代號Ark,正式名稱為華為終端鴻蒙智慧裝置作業系統軟體)是華為公司自2012年以來開發的一款可相容AOSP的作業系統。系統效能包括利用「分散式」技術將各款裝置融合成一個「超級終端」,便於操作和共用各裝置資源。

系統架構支援多核心,包括Linux核心、LiteOS和鴻蒙微核心,可按各種智慧裝置選擇所需核心,例如在低功耗裝置上使用LiteOS核心。

華為於2021年6月正式釋出了HarmonyOS。

定義

全場景: HarmonyOS 旨在提供一個統一的作業系統,適用於多種型別的裝置,如智慧手機、平板、電視、智慧穿戴、車載系統、智慧家居等。這意味著開發者可以使用一套程式碼開發多種裝置的應用,大大減少了開發的複雜性和成本。

多裝置型別: HarmonyOS 不僅限於移動裝置,還包括 IoT 裝置、車載系統、工業裝置等。這意味著 HarmonyOS 可以應用於多種場景,滿足不同型別裝置的需求。

多核心: HarmonyOS 支援多種處理器架構,包括 ARM、x86、RISC-V 等。這意味著 HarmonyOS 可以執行在不同的硬體平臺上。

2. HarmonyOS 的發展歷程

2019年: 華為首次釋出 HarmonyOS,這是一個全新的作業系統,旨在提供一個統一的、分散式的作業系統。

2020年: 華為推出 HarmonyOS 2.0 版本,支援更多裝置型別,包括智慧手機、平板、電視、智慧穿戴等。

2021年: 華為推出 HarmonyOS 3.0 版本,增加了更多高階特性,如 AI 能力、分散式資料管理、分散式軟匯流排等。

3. HarmonyOS 的特點

分散式架構: HarmonyOS 的最大特點是分散式架構,它可以讓多個裝置協同工作,共用資源。這意味著開發者可以更容易地開發多裝置協同的應用,提供更好的使用者體驗。

安全性: HarmonyOS 內建了多層次的安全機制,包括安全啟動、安全執行、安全資料、安全通訊等。這意味著 HarmonyOS 可以提供更高的安全性,保護使用者的資料和隱私。

低延遲: HarmonyOS 優化了任務排程、記憶體管理、IO 處理等,減少了系統的延遲。這意味著 HarmonyOS 可以提供更流暢的使用者體驗。

4. 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應用開發提供了ArkTS/JS/C/C++/Java等多語言的使用者程式框架,兩種UI框架(包括適用於ArkTS/JS語言的方舟開發框架即ArkUI、適用於Java語言的Java UI框架),以及各種軟硬體服務對外開放的多語言框架API。根據系統的元件化裁剪程度,HarmonyOS裝置支援的API也會有所不同。

應用層
應用層包括系統應用和第三方非系統應用。HarmonyOS的應用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,FA有UI介面,提供與使用者互動的能力;而PA無UI介面,提供後臺執行任務的能力以及統一的資料存取抽象。FA在進行使用者互動時所需的後臺資料存取也需要由對應的PA提供支撐。基於FA/PA開發的應用,能夠實現特定的業務功能,支援跨裝置排程與分發,為使用者提供一致、高效的應用體驗。

5. HarmonyOS 與其他作業系統的比較

5.1 與 Android、iOS 的比較

  • 架構:
    • HarmonyOS 使用了微核心架構,這意味著它的核心更小,更輕量級,可以提供更高的系統穩定性和安全性。
    • Android 使用了 Linux 核心,這是一個單核心架構。
    • iOS 使用了 XNU 核心,這是一個混合核心架構。
  • 分散式能力:
    • HarmonyOS 的最大特點是分散式架構,可以讓多個裝置協同工作,共用資源。這意味著開發者可以更容易地開發多裝置協同的應用,提供更好的使用者體驗。
    • Android 和 iOS 主要是為單一裝置設計的,雖然也有一些分散式能力,但不如 HarmonyOS。
  • 安全性:
    • HarmonyOS 內建了多層次的安全機制,包括安全啟動、安全執行、安全資料、安全通訊等。
    • Android 和 iOS 也有很高的安全性,但 HarmonyOS 在安全性上做了更多的優化。
  • 開發語言:
    • HarmonyOS 支援多種程式語言,包括 Java、JavaScript、C++ 等。
    • Android 主要使用 Java 和 Kotlin。
    • iOS 主要使用 Objective-C 和 Swift。

5.2 與 Linux、Windows 的比較

  • 架構:
    • HarmonyOS 使用了微核心架構。
    • Linux 使用了單核心架構。
    • Windows 使用了混合核心架構。
  • 分散式能力:
    • HarmonyOS 有很強的分散式能力。
    • Linux 和 Windows 主要是為單一裝置設計的。
  • 安全性:
    • HarmonyOS 內建了多層次的安全機制。
    • Linux 和 Windows 也有很高的安全性,但 HarmonyOS 在安全性上做了更多的優化。
  • 開發語言:
    • HarmonyOS 支援多種程式語言。
    • Linux 和 Windows 支援多種程式語言,但開發語言的選擇可能會受到一些限制。

本章提供了 HarmonyOS 的基礎知識,包括定義、發展歷程、特點、架構和與其他作業系統的比較。這為後續的開發工作打下了堅實的基礎。