用戶應用程序
用戶應用程序泛指運行在設備的操作系統之上,為用戶提供特定服務的程序,簡稱“應用”。
在HarmonyOS上運行的應用,有兩種形態:
- 傳統方式的需要安裝的應用。
- 提供特定功能,免安裝的應用(即原子化服務)。
用戶應用程序包結構
HarmonyOS的用戶應用程序包以APP Pack(Application Package)形式發布,它是由一個或多個HAP(HarmonyOS Ability Package)以及描述每個HAP屬性的pack.info組成。HAP是Ability的部署包,HarmonyOS應用代碼圍繞Ability組件展開。
一個HAP是由代碼、資源、第三方庫及應用配置文件組成的模塊包可分為entry和feature兩種模塊類型,如圖1所示。
- entry:應用的主模塊。一個APP中,對于同一設備類型必須有且只有一個entry類型的HAP,可獨立安裝運行。
-
feature:應用的動態特性模塊。一個APP可以包含一個或多個feature類型的HAP,也可以不含。只有包含Ability的HAP才能夠獨立運行。
圖1 APP邏輯視圖
在這里插入圖片描述
Ability
Ability是應用所具備的能力的抽象,一個應用可以包含一個或多個Ability。Ability分為兩種類型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是應用的基本組成單元,能夠實現特定的業務功能。FA有UI界面,而PA無UI界面。
庫文件
庫文件是應用依賴的第三方代碼(例如so、jar、bin、har等二進制文件),存放在libs目錄。
資源文件
應用的資源文件(字符串、圖片、音頻等)存放于resources目錄下,便于開發者使用和維護,詳見資源文件的分類。
配置文件
配置文件 (config.json) 是應用的Ability信息,用于聲明應用的Ability,以及應用所需權限等信息,詳見應用配置文件。
pack.info
描述應用軟件包中每個HAP的屬性,由IDE編譯生成,應用市場根據該文件進行拆包和HAP的分類存儲。HAP的具體屬性包括:
- delivery-with-install: 表示該HAP是否支持隨應用安裝?!皌rue”表示支持隨應用安裝;“false”表示不支持隨應用安裝。
- name:HAP文件名。
- module-type:模塊類型,entry或feature。
- device-type:表示支持該HAP運行的設備類型。
HAR
HAR(HarmonyOS Ability Resources)可以提供構建應用所需的所有內容,包括源代碼、資源文件和config.json文件。HAR不同于HAP,HAR不能獨立安裝運行在設備上,只能作為應用模塊的依賴項被引用。