2.2 开发基础知识
2.2.1 应用基础知识
1.App
HarmonyOS的应用软件包以App Pack(Application Package,简称App)形式发布,它由一个或多个HAP(HarmonyOS Ability Package),以及描述每个HAP属性的pack.info文件组成。HAP是Ability的部署包,HarmonyOS应用代码围绕Ability组件展开。
一个HAP是由代码、资源、第三方库及应用配置文件组成的模块包,可分为Entry和Feature两种模块类型,如图2-39所示。
图2-39 HAP组成
Entry:应用的主模块。在一个App中,对于同一设备类型,必须有且只有一个Entry类型的HAP,可独立安装运行。
Feature:应用的动态特性模块。一个App可以包含一个或多个Feature类型的HAP,也可以不包含。只有包含Ability的HAP才能够独立运行。
2.Ability
Ability是应用所具备的能力的抽象,一个应用可以包含一个或多个Ability。Ability分为两种类型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是应用的基本组成单元,能够实现特定的业务功能。FA有UI界面,而PA无UI界面。
3.库文件
库文件是应用依赖的第三方代码(例如so、jar、bin、har等二进制文件),存放在libs目录中。
4.pack.info
pack.info描述应用软件包中每个HAP的属性,由IDE编译生成,应用市场根据该文件进行拆包和HAP的分类存储。HAP的具体属性包括:
□delivery-with-install:表示该HAP是否支持随应用安装。true表示支持随应用安装;false表示不支持随应用安装。
□name:HAP文件名。
□module-type:模块类型,entry或feature。
□device-type:表示支持该HAP运行的设备类型。
5.HAR
HAR(HarmonyOS Ability Resources)可以提供构建应用所需的所有内容,包括源代码、资源文件和config.json文件。HAR不同于HAP,HAR不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。