OpenHarmony DevEco Studio使用指南-工程管理
工程模板及开发语言介绍
DevEco Studio支持多种品类的OpenHarmony应用/服务开发,预置了丰富的工程模板,可以根据工程向导轻松创建适应于各类场景的工程,并自动生成对应的代码和资源模板。同时,DevEco Studio还提供了多种编程语言供开发者进行OpenHarmony应用/服务开发,包括ArkTS、JS和C/C++。
工程模板支持的开发语言、API版本、设备类型,如下表所示:
模板名称 | 支持的开发语言 | 支持的API版本 | 支持的设备 | 说明 |
Empty Ability | ArkTS | 8、9 | Default、Tablet | 用于设备的Feature Ability模板,展示了基础的Hello World功能。 |
JS | 8、9 | Default、Tablet | ||
Native C++ | ArkTS+C++ | 8、9 | Default、Tablet | 作为OpenHarmony应用/服务调用C++代码的示例工程,界面显示“Hello World”。 |
JS+C++ | 8、9 | Default、Tablet | ||
About Ability | ArkTS | 8、9 | Default、Tablet | 可以快速创建应用的关于页面。模板的上方通过基础组件Image、Text展示了应用的基本信息,点击中间的List组件可以打开详情页,下方使用Web组件加载了用户协议和隐私声明的Html文件。开发者可以在模板的基础上,补充List内容,替换相关显示信息。 |
Business Card Ability | ArkTS | 8、9 | Default、Tablet | 可以快速创建应用的名片页面。模板底部通过Tab组件实现不同名片的切换,中间的详情List组件使用了不同的Widget,如Information图标、Switch开关、右侧箭头图标等。开发者可以根据需要替换用户名称和List组件内容。 |
Category Ability | ArkTS | 8、9 | Default、Tablet | 可以快速创建应用的分类展示页面。模板上方是Navigation组件和search组件,下方是Tab组件。中间的List组件有联动,点击左边List的分类项,右边List会滑动到对应位置,反之亦然。开发者可以根据需要替换相关内容。 |
Category List Ability | ArkTS | 8、9 | Default、Tablet | 可以快速创建应用的卡片型设置页面。模板上方是Navigation组件和search组件,中间的List组件参考Settings的界面风格,由子标题加List卡片组成。开发者可以根据需要替换标题和每一个设置项的内容。 |
Grid Ability | ArkTS | 8、9 | Default、Tablet | 可以快速创建应用的网格布局页面。模板上方是Navigation组件,中间分割成两个大小不同的Grid组件,每个Grid组件的Item等比例显示。开发者可以通过模板学习Grid组件的使用方式。 |
List Ability | ArkTS | 8、9 | Default、Tablet | 可以快速创建应用的列表页面。模板上方是Navigation组件和search组件,下方是Tab组件。中间的List组件使用了双行布局,点击打开详情页。开发者可以根据需要替换双行列表和辅助文本内容。 |
Login Ability | ArkTS | 8、9 | Default、Tablet | 可以快速创建应用的登录页面。用户输入账号和密码之后,才能点击登录按钮。点击登录、注册和遇到问题分别会跳转到示例页面。模板底部使用Web组件加载了隐私声明的Html文件。开发者可以补充账号密码的存储逻辑,完善登录功能。 |
Splash Screen Ability | ArkTS | 8、9 | Default、Tablet | 可以快速创建应用的启动过程页面。模板右上角显示倒计时图标,点击跳过按钮或者等倒计时结束都会进入应用主界面,下方提供了应用的版权信息。开发者可以设置倒计时时间,根据需要整体替换广告背景。 |
创建OpenHarmony工程
当开始开发一个OpenHarmony应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。
当开始开发一个OpenHarmony应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。
创建和配置新工程
- 通过如下两种方式,打开工程创建向导界面。
- 如果当前未打开任何工程,可以在DevEco Studio的欢迎页,选择Create Project开始创建一个新工程。
- 如果已经打开了工程,可以在菜单栏选择File>New>Create Project来创建一个新工程。
- 根据工程创建向导,在OpenHarmony页签,选择“Empty Ability”模板,单击Next。
- 单击Next,进入到工程配置阶段,需要根据向导配置工程的基本信息。
- Project name:工程的名称,可以自定义,由大小写字母、数据和下划线组成。
- Project type:工程的类型,标识该工程是一个传统方式的需要安装的应用(Application)或原子化服务(Atomic service),默认类型为Application。工程创建完毕后,如何将原子化服务修改为应用,请参考将原子化服务工程改为应用工程。
说明
如果是创建的原子化服务,则:
- 原子化服务调试、运行时,在设备桌面上没有应用图标,请使用DevEco Studio应用/服务运行,来启动原子化服务。
- 原子化服务是免安装的,config.json中自动添加installationFree字段,取值为“true”。
- 如果entry模块的installationFree字段为“true”,则其相关的所有hap模块的installationFree字段都默认为“true”;如果entry模块的installationFree字段为“false”,则其相关的所有hap模块可以配置为“true”或“false”。
- 编译构建App时,每个HAP大小不能超过10MB。
- Bundle name:标识应用的包名,用于标识应用的唯一性。如果“Project type”选择了Atomic service,则Bundle name的后缀名必须是.hmservice。
- Save location:工程文件本地存储路径,由大小写字母、数字和下划线等组成,不能包含中文字符。
- Compile SDK:编译的SDK版本。
- Model:选择FA模型或Stage模型(Stage模型仅Compile API为9及以上支持)。
- Enable Super Visual:选择开发模式,部分模板支持低代码开发,可选择打开该开关。
- Language:开发语言。
- Compatible SDK:兼容的SDK最低版本。
- Device type:该工程模板支持的设备类型。其中,Default表示能够使用全部系统能力的OpenHarmony设备。
- Show in service center:是否在服务中心展示。
- 单击Finish,工具会自动生成示例代码和相关资源,等待工程创建完成。
将原子化服务工程改为应用工程
原子化服务是免安装的,如果创建的是原子化服务工程,config.json中会自动添加installationFree字段,取值为“true”。如果要将原子化服务工程改成应用工程,将config.json中的installationFree字段取值修改为“false”。
Gradle工程适配为Hvigor程。
该适配场景适用于开发者希望将原OpenHarmony API 7的工程升级到OpenHarmony API 8或9的工程。
原OpenHarmony API 7的工程采用的是Gradle自动化构建工具,而OpenHarmony API 8/9的工程则采用Hvigor自动化构建工具,由于Gradle构建工具和Hvigor构建工具的配置文件不同,因此,对于采用Gradle编译构建的历史工程,需要手动进行适配,以适用于使用Hvigor工具进行编译构建。
说明
由于OpenHarmony API 7的工程属于FA模型,因此将工程升级到OpenHarmony API 8/9时,也只能升级为FA模型,不支持升级为Stage模型。
关于OpenHarmony API 7工程的升级适配,提供如下两种方法:
适配方法一
- 使用DevEco Studio创建一个OpenHarmony新工程。在配置工程信息时,请注意:
- Bundle name:请与需要适配的历史工程的Bundle name保持一致。待适配工程的Bundle name字段可在模块目录下的config.json文件中进行查阅。
- Compile SDK:请选择将要适配的目标API版本,支持选择8/9。
- Model:请选择FA。
- Language:选择与待适配工程使用的代码语言保持一致。
- 等待工程npm install执行完成后,删除entry下的src目录,请注意,其它配置文件不要删除。
- 将待适配工程entry模块下的src目录,拷贝到上述工程的entry文件夹下。
说明
如果待适配工程存在多个模块,可拷贝上述整个entry模块文件夹并修改模块名,然后将待适配模块中的源码和资源文件夹,替换到该模块下即可。
- 检查模块下src\main\resources\base目录是否存在layout和graphic文件夹,如果有请删除;没有请跳过该操作。
- 打开模块下的build-profile.json5文件,删除“ohosTest” Target。
- 如果是ArkTS工程,请修改ArkTS源码文件中的引用包的后缀名,由import xx from‘xx.ets’修改为import xx from‘xx’,去掉.ets后缀名。
- 单击File > Sync and Refresh Project进行同步,等待工程同步完成。至此,OpenHarmony历史工程便适配完成,您可以通过单击Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建HAP。
适配方法二
- 在本地电脑中,进入OpenHarmony工程所在文件夹。
- 在工程根目录下,修改相关配置文件。
a. 删除Gradle相关的文件及缓存文件,如下图蓝色框所示的文件及文件夹。
b. 打开工程根目录下local.properties文件,并根据实际路径进行修改。
#OpenHarmony SDK路径
sdk.dir=D:/OpenHarmony/Sdk
#Node.js路径
nodejs.dir=D:/nodejs
c. 新建一个文本文件,命名修改为“hvigorfile.ts”。
d. 打开hvigorfile.ts文件,写入如下脚本信息。写入后,保存并关闭文件即可。
export { legacyAppTasks } from '@ohos/hvigor-ohos-plugin';
e. 打开package.json文件,写入如下脚本信息,其中:name、version和org字段,请根据实际进行填写,其余字段保持不变。写入后,保存并关闭文件即可。
{
"name": "myapplication",
"version": "1.0.0",
"ohos": {
"org": "huawei",
"buildTool": "hvigor",
"directoryLevel": "project"
},
"description": "example description",
"repository": {},
"license": "ISC",
"dependencies": {
"@ohos/hypium": "1.0.5",
"@ohos/hvigor": "1.4.0",
"@ohos/hvigor-ohos-plugin": "1.4.0"
}
}
f. 新建一个文本文件,命名修改为“build-profile.json5”。
g. 打开build-profile.json5文件,写入如下脚本信息,其中compileSdkVersion和compatibleSdkVersion请修改为8或9,其余字段请参考1.5.2-工程级build-profile.json5说明进行修改。写入后,保存并关闭文件即可。
{
"app": {
"signingConfigs": [],
"compileSdkVersion": 8,
"compatibleSdkVersion": 8,
"products": [
{
"name": "default",
"signingConfig": "default",
}
]
},
"modules": [
{
"name": "entry",
"srcPath": "./entry",
"targets": [
{
"name": "default",
"applyToProducts": [
"default"
]
}
]
}
]
}
- 进入模块目录下,修改相关配置文件。如有多个模块,请逐一修改。
a. 删除build文件夹、build.gradle和progurad-rules.pro文件。
b. 检查模块下src\main\resources\base目录是否存在layout和graphic文件夹,如果有 请删除;没有请跳过该操作。
c. 新建一个文本文件,命名修改为“package.json”。
d. 打开package.json文件,写入如下脚本信息。
{
"name": "entry",
"version": "1.0.0",
"ohos": {
"org": "huawei",
"buildTool": "hvigor",
"directoryLevel": "module"
},
"description": "example description",
"repository": {},
"license": "ISC",
"dependencies": {}
}
e 新建一个文本文件,命名修改为“hvigorfile.ts”。
f. 打开hvigorfile.ts文件,写入如下脚本信息。写入后,保存并关闭文件即可。
export { legacyHapTasks } from '@ohos/hvigor-ohos-plugin';
g. 新建一个文本文件,命名修改为“build-profile.json5”。
h. 打开build-profile.json5文件,写入如下脚本信息。写入后,保存并关闭文件即可。
{
"apiType": 'faMode',
"buildOption": {
},
"targets": [
{
"name": "default"
}
]
}
- 如果是ArkTS工程,请修改ArkTS源码文件中的引用包的后缀名,由import xx from‘xx.ets’修改为import xx from‘xx’,去掉.ets后缀名。
至此,HarmonyOS历史工程便适配完成,您可以通过单击Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建HAP。