面向开发者,HarmonyOS 推出了 DevEco Studio 和 Dev Device Tool 两款开发工具,前者目前迭代至 3.1 版本(对外开放版本),用于开发 HarmonyOS 应用;后者用于开发智能设备
应用的工程主体结构如上图
在这里我们可以看到有几个主要的模块,就是AppScope , entry 目录, 还有oh_modules 这三个主要的目录。
在这里有两个隐藏文件.hvigor这个是发布时候存储配置构建文件信息的目录
.idea是一个开发工具有关的配置就放在这两个里面
AppScope 目录包含一个 app.json5 文件和 resources 文件夹 。这个文件存放的是全局的公共资源的文件。
-
app.json5 用来配置应用的 bundle 名称(可以理解为应用包名)、bundleType 可以设置为 app 和 atomicService,用于标识应用是普通应用或元服务;其他信息主要是应用的版本信息、SDK 支持版本、应用图标和名称、设备特殊配置以及是否支持多工程联合开发等
-
resources 目录 存放公共类型资源文件,module 中 media 的图片 icon 资源不能和该目录下 media 中的 icon 重名
- elements一般存放一些字符类型的资源
- media 一般存放图片视频这些媒体资源
app.json5 存放的是这个hap的一些全局工具资源的配置
{
"app": {
"bundleName": "com.example.myapplication",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.0",
"icon": "$media:app_icon",
"label": "$string:app_name"
}
}
entry 目录是当前工程中的一个 module,一个工程允许包含一个 entry 类型 module 和 多个 feature 类型module,前者表示是应用的主模块,后者是应用的动态特性模块;该目录下包含了这个module所有的代码、文本、多媒体、图片、配置等各种资源;
在这里main 目录下面包含的是这个APP主要模块的代码,ohosTest 包含的是这个模块对应的测试代码。
我们可以发现在这里有一个oh-package.json5的文件,这个表示的是这个模块配置的第三方依赖的文件。但是我们还可以发现一个整个项目的配置依赖文件, 下面这个是工程级 oh-package.json5
这个模块需要使用第三方库,那么我们可以看到这样的引用方式
{
"license": "",
"devDependencies": {
},
"author": "",
"name": "entry",
"description": "Please describe the basic information.",
"main": "",
"version": "1.0.0",
"dependencies": {
//在大括号内添加依赖
"@ohos/lottie": "^2.0.0"
}
}
hvigor 目录: hvigor 是一款基于任务管理机制实现的一套自动化构建工具(基于TypeScript + npm 包管理机制实现的轻量化前端构建工具),HarmonyOS 在迭代时,使用它替代 Gradle。该目录下有2个配置文件:
-
hvigor-config.json5:会以插件形式引入 hvigor 构建工具并且标识其版本;
-
hvigor-wrapper.js:是一个 js 脚本文件,与 hvigor相关的包装器
HarmonyOS API Version 8 ~ 9 采用 Hvigor构建工具和构建插件(hvigor-ohos-plugin)组成,该插件利用Hvigor的任务编排机制实现应用/服务构建任务流的执行,完成HAP/APP的构建打包,应用于应用/服务的构建。使用该插件需要在 hvigor 目录下 hvigor-config.json5 中配置。
{
“hvigorVersion”: "2.2.1",
"dependencies":