目錄
一、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基礎鴻蒙應用程式結構:

2.2 HAP子產品類型
一個HAP由代碼、資源、第三方庫及應用配置檔案組成,分為entry和feature兩種子產品類型!
entry:應用主子產品。一個App中,對于統一裝置類型必須有且隻有一個entry類型的HAP,可獨立安裝運作。
feature:應用的動态特性子產品。一個App中可以包含一個或多個feature類型的HAP,也可以不包含。隻有包含Ability的HAP才能夠獨立運作(意思是不包含Abilitu的feature子產品無法獨立運作)。
APP邏輯視圖:
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目錄
2.3.3 資源檔案
應用的資源檔案(圖檔、音頻等)存放于resources目錄下,便于開發者使用和維護,後續會詳細介紹。
2.3.4 配置檔案
配置檔案(config.json)是應用的Ability資訊,用于聲明應用的Ability,以及應用所需要的權限資訊等,後續會詳細介紹。
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不能獨立安裝運作在裝置上,隻能作為應用子產品的依賴項被引用。