工程目录
新建工程目录如下:
其中详细如下:
- AppScope 中存放应用全局所需要的资源文件。
- entry 是应用的主模块,存放 HarmonyOS 应用的代码、资源等。
- oh_modules 是工程的依赖包,存放工程依赖的源文件。
- build-profile.json5 是工程级配置信息,包括签名、产品配置等。
- hvigorfile.ts 是工程级编译构建任务脚本,hvigor 是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。
- oh-package.json5 是工程级依赖配置文件,用于记录引入包的配置信息。
在 AppScope,其中有 resources 文件夹和配置文件 app.json5。AppScope > resources > base 中包含 element 和 media 两个文件夹,
- 其中 element 文件夹主要存放公共的字符串、布局文件等资源。
- media 存放全局公共的多媒体资源文件。
模块级目录
entry > src 目录中主要包含总的 main 文件夹,单元测试目录 ohosTest,以及模块级的配置文件。
- main 文件夹中,ets 文件夹用于存放ets代码,resources 文件存放模块内的多媒体及布局文件等,module.json5 文件为模块的配置文件。
- ohosTest 是单元测试目录。
- build-profile.json5 是模块级配置信息,包括编译构建配置项。
- hvigorfile.ts 文件是模块级构建脚本。
- oh-package.json5 是模块级依赖配置信息文件。
进入 src > main > ets 目录中,其分为 entryability、pages 两个文件夹。
- entryability 存放 ability 文件,用于当前 ability 应用逻辑和生命周期管理。
- pages 存放UI界面相关代码文件,初始会生成一个Index页面。
resources 目录下存放模块公共的多媒体、字符串及布局文件等资源,分别存放在 element、media 文件夹中。
app.json5
AppScope > app.json5 是应用的全局的配置文件,用于存放应用公共的配置信息。
其中配置信息如下:
- bundleName 是包名。
- vendor 是应用程序供应商。
- versionCode 是用于区分应用版本。
- versionName 是版本号。
- icon 对应于应用的显示图标。
- label 是应用名。
module.json5
entry > src > main > module.json5 是模块的配置文件,包含当前模块的配置信息。
其中 module 对应的是模块的配置信息,一个模块对应一个打包后的 hap 包,hap 包全称是 HarmonyOS Ability Package,其中包含了 ability、第三方库、资源和配置文件。其具体属性及其描述可以参照下表。
| 属性 | 描述 |
|---|---|
| name | 该标签标识当前 module 的名字,module 打包成 hap 后,表示 hap 的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一。 |
| type | 表示模块的类型,类型有三种,分别是 entry、feature 和 har。 |
| srcEntry | 当前模块的入口文件路径。 |
| description | 当前模块的描述信息。 |
| mainElement | 该标签标识 hap 的入口 ability 名称或者 extension 名称。只有配置为 mainElement 的 ability 或者 extension 才允许在服务中心露出。 |
| deviceTypes | 该标签标识 hap 可以运行在哪类设备上,标签值采用字符串数组的表示。 |
| deliveryWithInstall | 标识当前 Module 是否在用户主动安装的时候安装,表示该 Module 对应的HAP是否跟随应用一起安装。- true:主动安装时安装。- false:主动安装时不安装。 |
| installationFree | 标识当前 Module 是否支持免安装特性。- true:表示支持免安装特性,且符合免安装约束。- false:表示不支持免安装特性。 |
| pages | 对应的是 main_pages.json 文件,用于配置 ability 中用到的 page 信息。 |
| abilities | 是一个数组,存放当前模块中所有的 ability 元能力的配置信息,其中可以有多个 ability。 |
对于 abilities 中每一个 ability 的属性项,其描述信息如下表:
| 属性 | 描述 |
|---|---|
| name | 该标签标识当前 ability 的逻辑名,该名称在整个应用要唯一,标签值采用字符串表示(最大长度127个字节)。 |
| srcEntry | ability 的入口代码路径。 |
| description | ability 的描述信息。 |
| icon | ability 的图标。该标签标识 ability 图标,标签值为资源文件的索引。该标签可缺省,缺省值为空。如果ability 被配置为 MainElement,该标签必须配置。 |
| label | ability的标签名。 |
| startWindowIcon | 启动页面的图标。 |
| startWindowBackground | 启动页面的背景色。 |
| visible | ability 是否可以被其他应用程序调用,true 表示可以被其它应用调用, false 表示不可以被其它应用调用。 |
| skills | 标识能够接收的意图的 action 值的集合,取值通常为系统预定义的 action 值,也允许自定义。 |
| entities | 标识能够接收 Want 的 Entity 值的集合。 |
| actions | 标识能够接收的 Want 的 Action 值的集合,取值通常为系统预定义的 action 值,也允许自定义。 |
main_pages.json
src / main / resources / base / profile / main_pages.json 文件保存的是页面 page 的路径配置信息,所有需要进行路由跳转的 page 页面都要在这里进行配置。







