- 鸿蒙HarmonyOS应用开发入门
- 柳伟卫编著
- 948字
- 2024-12-31 20:00:51
1.6 应用工程结构介绍
本节介绍应用工程结构及各个配置文件的含义。
1.6.1 工程级目录
工程的目录结构如图1-31所示。
![](https://epubservercos.yuewen.com/78B282/31397967504222906/epubprivate/OEBPS/Images/Figure-P32_13119.jpg?sign=1739407558-vElnhMMOiJBKO1gYK92eoUH34LXfhmQl-0-a94538a1d5dda14d2f1631b4ca2c1395)
图1-31 工程级目录
详细说明如下:
· AppScope中存放应用全局所需要的资源文件。
· entry是应用的主模块,存放HarmonyOS应用的代码、资源等。
· node_modules是工程的依赖包,存放工程依赖的源文件。
· build-profile.json5是工程级配置信息,包括签名、产品配置等。
· hvigorfile.ts是工程级编译构建任务脚本,Hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排、工程模型管理、配置管理等核心能力。
· package.json是工程级依赖配置文件,用于记录引入包的配置信息。
在AppScope中还有resources文件夹和配置文件app.json5。
在AppScope中的resources文件夹下的base中包含element和media两个文件夹。其中element文件夹主要存放公共的字符串、布局文件等资源;media文件夹存放全局公共的多媒体资源文件。
1.6.2 entry模块级目录
entry模块级目录如图1-32所示。
![](https://epubservercos.yuewen.com/78B282/31397967504222906/epubprivate/OEBPS/Images/Figure-P33_13142.jpg?sign=1739407558-sEGpqaJ4yWkyp7QI7EpJagPcsUOuxT8a-0-d7f69e1e8b36a91efcb3d29ba5692820)
图1-32 entry模块级目录
entry下的src目录中主要包含总的main文件夹、单元测试目录ohosTest以及模块级的配置文件。
· 在main文件夹中,ets文件夹用于存放ets代码,resources文件夹用于存放模块内的多媒体及布局文件等,module.json5文件为模块的配置文件。
· ohosTest是单元测试目录。
· build-profile.json5是模块级配置信息,包括编译构建配置项。
· hvigorfile.ts文件是模块级构建脚本。
· package.json是模块级依赖配置信息文件。
进入src→main→ets目录,如图1-33所示。其分为entryability和pages两个文件夹。entryability存放Ability文件,用于当前Ability应用逻辑和生命周期管理;pages存放UI界面相关代码文件,初始会生产一个Index页面。
![](https://epubservercos.yuewen.com/78B282/31397967504222906/epubprivate/OEBPS/Images/Figure-P33_13146.jpg?sign=1739407558-FW2WvfrExuhUGfbwzW9UJhcQYxH7doRf-0-4fa892cb66b9e7b0d26c5e9ffa61ba95)
图1-33 ets目录
resources目录下存放模块公共的多媒体、字符串及布局文件等资源,分别存放在element、media文件夹中,如图1-34所示。
![](https://epubservercos.yuewen.com/78B282/31397967504222906/epubprivate/OEBPS/Images/Figure-P34_13162.jpg?sign=1739407558-m4xdWqhGUXb10LQF0qdlkqsHfH5QSFp2-0-acdc7f3baff936fd3a4473a0b7c06f78)
图1-34 resources目录
1.6.3 配置文件
1 app.json5
AppScope下的app.json5是应用的全局配置文件,用于存放应用公共的配置信息。
![](https://epubservercos.yuewen.com/78B282/31397967504222906/epubprivate/OEBPS/Images/Figure-P34_23364.jpg?sign=1739407558-dLE6FtUKBfoautX8ej5rbOuNwvwn7t1t-0-6df98d5de9b673ccbc5d47dd9cdfa6f6)
其中配置信息如下:
· bundleName是包名。
· vendor是应用程序供应商。
· versionCode用于区分应用的版本。
· versionName是版本号。
· icon是应用的显示图标。
· label是应用名。
· distributedNotificationEnabled描述应用程序是否已分发通知。
2 module.json5
依次打开entry→src→main文件夹,其下的module.json5是模块的配置文件,包含当前模块的配置信息。
![](https://epubservercos.yuewen.com/78B282/31397967504222906/epubprivate/OEBPS/Images/Figure-P34_23363.jpg?sign=1739407558-kN7MZYBIXnrixDkyChgsgjsdMJxA7GFg-0-83960ccc90f55bb17a91365f0836719b)
其中module对应的是模块的配置信息,一个模块对应一个打包后的HAP(HarmonyOS Ability Package),其中包含Ability、第三方库、资源和配置文件。其具体属性及其描述如表1-1所示。
表1-1 module.json5默认配置属性及描述
![](https://epubservercos.yuewen.com/78B282/31397967504222906/epubprivate/OEBPS/Images/Figure-T36_23371.jpg?sign=1739407558-ZDs4QRNt1uhQQ08Me4H2f41Q537Qa0cn-0-0086fd4df0c8e8c34d35b506f0866f01)
表1-2 abilities中对象的默认配置属性及描述
![](https://epubservercos.yuewen.com/78B282/31397967504222906/epubprivate/OEBPS/Images/Figure-T36_23370.jpg?sign=1739407558-3PlZVovOV2OmI7oHmcdqAl9vTpA5bQlZ-0-12a7028fcfa852adaf9aec139a49b30b)
3 main_pages.json
依次打开src→main→resources→base→profile文件夹,其下的main_pages.json文件保存的是页面page的路径配置信息,所有需要进行路由跳转的page页面都要在这里进行配置。