天天看點

HarmonyOS(鴻蒙)應用程式包結構介紹一、HarmonyOS應用程式簡介二、使用者應用程式包結構

目錄

一、HarmonyOS應用程式簡介

二、使用者應用程式包結構

2.1 結構示意圖

2.2 HAP子產品類型

2.3 子產品介紹

2.3.1 Ability

2.3.2 庫檔案

2.3.3 資源檔案

2.3.4 配置檔案

2.3.5 pack.info

2.3.6 HAR

一、HarmonyOS應用程式簡介

應用程式泛指運作在作業系統之上,為使用者提供特定服務的程式,簡稱——“應用(Application)”,一般運作在手機和平闆電腦上!

HarmonyOS的運作狀态有兩種:

  • 傳統的需要安裝的應用
  • HarmonyOS特定的,免安裝的原子化服務

官網關于原子化服務的介紹如下:

原子化服務是HarmonyOS提供的一種面向未來的服務提供方式,是有獨立入口的(使用者可通過點選方式直接觸發)、免安裝的(無需顯式安裝,由系統程式架構背景安裝後即可使用)、可為使用者提供一個或多個便捷服務的使用者應用程式形态。

原子化服務基于HarmonyOS API開發,支援運作在1+8+N裝置上,供使用者在合适的場景、合适的裝置上便捷使用。原子化服務相對于傳統方式的需要安裝的應用形态更加輕量,同時提供更豐富的入口、更精準的分發。

原子化服務由1個或多個HAP包組成,1個HAP包對應1個FA或1個PA。每個FA或PA均可獨立運作,完成1個特定功能;1個或多個功能(對應FA或PA)完成1個特定的便捷服務。

原子化服務與傳統方式的需要安裝的應用對比:

項目 原子化服務 傳統方式的需要安裝的應用
軟體包形态 APP Pack(.app) APP Pack(.app)
分發平台 由原子化服務平台(Huawei Ability Gallery)管理和分發 由應用市場(AppGallery)管理和分發
安裝後有無桌面icon 無桌面icon,但可手動添加到桌面,顯示形式為服務卡片 有桌面icon
HAP包免安裝要求 所有HAP包(包括Entry HAP和Feature HAP)均需滿足免安裝要求 所有HAP包(包括Entry HAP和Feature HAP)均為非免安裝的

二、使用者應用程式包結構

2.1 結構示意圖

HarmonyOS的使用者應用程式包以APP Pack(Application Package)形式釋出,它是由一個或多個HAP(HarmonyOS Ability Package)以及描述每個HAP屬性的pack.info組成。HAP是Ability的部署包,HarmonyOS應用代碼圍繞Ability元件展開。

如下展示一個HelloWord基礎鴻蒙應用程式結構:

HarmonyOS(鴻蒙)應用程式包結構介紹一、HarmonyOS應用程式簡介二、使用者應用程式包結構

2.2 HAP子產品類型

一個HAP由代碼、資源、第三方庫及應用配置檔案組成,分為entry和feature兩種子產品類型!

entry:應用主子產品。一個App中,對于統一裝置類型必須有且隻有一個entry類型的HAP,可獨立安裝運作。

HarmonyOS(鴻蒙)應用程式包結構介紹一、HarmonyOS應用程式簡介二、使用者應用程式包結構

feature:應用的動态特性子產品。一個App中可以包含一個或多個feature類型的HAP,也可以不包含。隻有包含Ability的HAP才能夠獨立運作(意思是不包含Abilitu的feature子產品無法獨立運作)。

APP邏輯視圖:

HarmonyOS(鴻蒙)應用程式包結構介紹一、HarmonyOS應用程式簡介二、使用者應用程式包結構

2.3 子產品介紹

2.3.1 Ability

Ability是應用所具備的能力的抽象,一個應用可以包含一個或多個Ability。Ability分為兩種類型

  • FA(Feature Ability)
  • PA(Paticle Ability)

FA/PA是應用的基本組成單元,能夠實作特定的業務功能。FA有UI界面,PA無UI界面。

2.3.2 庫檔案

應用依賴的第三方代碼(jar、bin、so、har等二進制檔案),存放在libs目錄

HarmonyOS(鴻蒙)應用程式包結構介紹一、HarmonyOS應用程式簡介二、使用者應用程式包結構

2.3.3 資源檔案

應用的資源檔案(圖檔、音頻等)存放于resources目錄下,便于開發者使用和維護,後續會詳細介紹。

HarmonyOS(鴻蒙)應用程式包結構介紹一、HarmonyOS應用程式簡介二、使用者應用程式包結構

2.3.4 配置檔案

配置檔案(config.json)是應用的Ability資訊,用于聲明應用的Ability,以及應用所需要的權限資訊等,後續會詳細介紹。

HarmonyOS(鴻蒙)應用程式包結構介紹一、HarmonyOS應用程式簡介二、使用者應用程式包結構

2.3.5 pack.info

描述應用軟體包中每個HAP的屬性,由IDE編譯生成,應用市場根據該檔案進行拆包和HAP的分類存儲。HAP的具體屬性包括:

  • delivery-with-install: 表示該HAP是否支援随應用安裝。“true”表示支援随應用安裝;“false”表示不支援随應用安裝
  • name:HAP檔案名
  • module-type:子產品類型,entry或feature
  • device-type:表示支援該HAP運作的裝置類型

2.3.6 HAR

HAR(HarmonyOS Ability Resources)可以提供建構應用所需的所有内容,包括源代碼、資源檔案和config.json檔案。HAR不同于HAP,HAR不能獨立安裝運作在裝置上,隻能作為應用子產品的依賴項被引用。

繼續閱讀