
应用中的几种常见类型的文件
①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 是否支持随应用安装。
“true”表示支持随应用安装;
“false”表示不支持随应用安装。
name:HAP 文件名。
module-type:模块类型,entry 或 feature。
device-type:表示支持该 HAP 运行的设备类型。
⑥HAR
HAR(HarmonyOS Ability Resources)可以提供构建应用所需的所有内容,包括源代码、资源文件和 config.json 文件。
HAR 不同于 HAP,HAR 不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。
HarmonyOS 应用的目录结构
HarmonyOS 应用的逻辑结构如图 1 所示:

一个典型的 HarmonyOS 应用的具体目录结构如图 2 所示,主要包括 entry、gradle 目录等,其中的 build 目录是应用编译构建成功后自动生成的目录。

build 目录是在编译构建过程中生成的,该目录中主要包含该 entry 编译生成的 hap 包及其对应的描述文件 pack.info,以及用于索引所有资源文件的 ResourceTable 文件(如图 3 所示)。

entry 是该应用的主模块,其目录下包含 build、libs、src 目录和一个主要的 build.gradle 文件。

一类是 base 目录与限定词目录,目录中的资源文件会被编译成二进制文件,并赋予资源文件 ID(能被 ResourceTable 索引,通过指定资源类型(type)和资源名称(name)来引用)。
另一类是 rawfile 目录,目录中的资源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件 ID(不能被 ResourceTable 索引,通过指定文件路径和文件名来引用)。
其中最重要的是 base 目录(如图 5 所示),其目录内容如下:

resources>base>element:表示字符串、整型数、颜色、样式等常量资源,采用相应的JSON文件来表示,可以在其他地方被引用。
默认只包含一个string.json文件,程序员可根据自己的需要添加其他类型的文件,如图 6 所示:

strings.json:字符串值资源(默认包含)
boolean.json:布尔型资源
color.json:颜色资源
float.json:浮点型资源
intarray.json:整型数组资源
integer.json:整型资源
pattern.json:样式资源
plural.json:复数形式资源
strarray.json:字符串数组资源
base>graphic:xml 类型的可绘制资源。
resources>base>layout:表示布局资源,用 xml 文件来表示。
resources>base>media:表示媒体资源,包括图片、音频、视频等非文本格式的文件,支持的文件格式包括:.png、.gif、.mp3、.mp4 等。
👇点击关注鸿蒙技术社区👇
了解鸿蒙一手资讯

点“阅读原文”了解更多




