购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 项目结构

目前,应用/服务支持的API版本为4~10,并且API版本4~7和API版本8~10的构建工具和构建插件是不同的。其中,API版本4~7使用的是Gradle构建工具和构建插件,API版本8~10使用的是Hvigor构建工具和构建插件。所以,使用API版本4~7和API版本8~10构建的HarmonyOS项目的目录结构是存在差异的。

2.3.1 ArkTS工程结构

HarmonyOS支持使用Stage模型和FA模型两种模型来创建ArkTS工程。从版本9开始,HarmonyOS仅支持使用Stage模型创建的ArkTS工程,其工程目录结构如图2—12所示。

可以看到,Stage模型的ArkTS工程结构主要由AppScope、entry、hvigor、build-profile.json5以及hvigorfile.ts文件构成,说明如下。

图2—12 ArkTS的Stage模型工程结构

· AppScope > app.json5:应用的全局配置信息。

· entry:应用/服务模块,会编译构建生成一个HAP。

◆ oh_modules:存放应用/服务模块的第三方库依赖信息。

◆ src > main > ets:存放ArkTS源码。

◆ src > main > ets > entryability:应用/服务的入口文件。

◆ src > main > ets > pages:应用/服务业务页面。

◆ src > main > resources:存放应用/服务用到的资源文件,如图片、多媒体、字符串、布局文件等。

◆ src > main > module.json5:模块配置文件,包含HAP配置信息、应用配置信息。

◆ build-profile.json5:模块信息、编译配置文件,包括targets、buildOption配置等。

◆ hvigorfile.ts:模块级编译构建任务脚本。

◆ oh-package.json5:三方包声明文件的入口以及包名配置。

· build-profile.json5:应用级配置信息,包括签名、产品配置等。

· hvigorfile.ts:应用级编译构建任务脚本。

2.3.2 JavaScript工程结构

除了使用官方推荐的ArkTS编程语言,HarmonyOS还支持使用JavaScript来开发HarmonyOS应用。使用JavaScript开发HarmonyOS应用时只支持FA模型,且支持的API版本为8~10,工程目录结构如图2—13所示。

图2—13 JavaScript的FA模型工程结构

可以看到,除了所使用的编程语言不同,其工程结构和使用ArkTS编程语言的FA模型创建的工程结构是一样的,说明如下。

· entry:应用/服务模块,编译构建生成一个HAP。

◆ src > main > js:存放JavaScript源码。

◆ src > main > js > MainAbility:应用/服务的入口文件。

◆ src > main > js > MainAbility > i18n:配置不同语言场景的资源内容,如应用文本词条、图片路径等资源。

◆ src > main > js > MainAbility > pages: MainAbility包含的页面。

◆ src > main > js > MainAbility > app.js:承载Ability的生命周期。

◆ src > main > resources:存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。

◆ src > main > config.json:模块配置文件,主要包含HAP配置信息、应用配置信息以及应用全局配置信息。

◆ build-profile.json5:模块配置文件,包括targets、buildOption配置等。

◆ hvigorfile.ts:模块级编译构建任务脚本。

· build-profile.json5:应用级配置信息,包括签名、产品配置等。

· hvigorfile.ts:应用级编译构建任务脚本。

2.3.3 C++工程结构

在HarmonyOS应用开发过程中,当需要调用某个使用C++开发的动态库时就需要C++环境的支持,类似于Android开发中的JNI技术。创建一个支持C++环境的HarmonyOS项目,创建时需要指定项目支持的模型。需要注意的是,从版本9开始,仅支持使用Stage模型来创建HarmonyOS工程,使用ArkTS+C++创建的工程目录结构如图2—14所示。

图2—14 使用ArkTS+C++创建的工程目录结构

可以看到,使用Stage模型创建的ArkTS+C++工程和使用其他语言创建的工程的目录结构大体上是一样的,说明如下。

· entry:应用/服务模块,编译构建生成一个HAP。

◆ src > main > cpp > types:存放C++的API接口描述文件。

◆ src > main > cpp > types > libentry> index.d.ts:描述C++ API接口行为,如接口名、入参、返回参数等。

◆ src > main > cpp > types >libentry> oh-package.json5:配置.so三方包声明文件的入口及包名。

◆ src > main > cpp > CMakeLists.txt: CMake配置文件,提供CMake构建脚本。

◆ src > main > cpp > hello.cpp:定义C++ API接口的文件。

◆ src > main > ets:存放ArkTS源码。

◆ src > main > resources:存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。

◆ src > main > mudule.json5:Stage模型配置文件,包含HAP配置信息、应用在设备上的配置信息以及应用全局配置信息。

◆ build-profile.json5:模块信息、编译信息配置文件,包括buildOption、targets配置等。

◆ hvigorfile.ts:模块级编译构建任务脚本。

· build-profile.json5:应用级配置信息,包括签名、产品配置等。

· hvigorfile.ts:应用级编译构建任务脚本。

2.3.4 Java工程结构

在HarmonyOS早期的版本中,可以使用Java编程语言来开发HarmonyOS应用。使用Java创建的HarmonyOS工程目录结构如图2—15所示。

在早期的版本中,HarmonyOS使用的是Gradle构建工具来构建项目的,主要针对的是API 4~7的版本,使用Java构建的HarmonyOS项目结构如下。

图2—15 Java创建的HarmonyOS工程目录结构

· gradle: Gradle配置文件,由系统自动生成,一般情况下不需要进行修改。

· entry:默认启动模块,也是工程的主模块,用于编写源码文件以及开发资源文件的目录。

◆ entry > libs:存放entry模块的依赖文件。

◆ entry > src > main > java:存放Java源码。

◆ entry > src > main > java > slice >MainAbilitySlice:承载单页面的具体逻辑实现和UI。

◆ entry > src > main > java>MainAbility:应用/服务的入口文件。

◆ entry > src > main > resources:存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。

◆ entry > src > main > config.json:模块配置文件,包含HAP配置信息、应用配置信息以及应用全局配置信息。

目前的API 9及其更高的版本已经不再支持使用Java语言进行开发,所以读者需要注意。可以看到,不管是使用哪种编程语言,构建出来的HarmonyOS项目结构都是大体类似的,即由主模块、子模块和配置构成。随着HarmonyOS Next版本的推出,ArkTS将成为官方主力推广的语言。 EQyTDGr7Lk0ToqgIR8tjksRBBdCffac/QTLbiF5nIoyBdpCSqSsA/5icOtvw2Xix

点击中间区域
呼出菜单
上一章
目录
下一章
×