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