HarmonyOS NEXT开发指南:module.json5配置详解
HarmonyOS NEXT开发指南:module.json5配置详解
本文详细介绍了HarmonyOS NEXT开发中module.json5配置文件的各个标签及其子标签的含义和用法,包括module标签和abilities标签的具体配置项。对于HarmonyOS开发者来说,本文具有较高的参考价值。
介绍
为了使应用能够正常使用UIAbility,需要在module.json5配置文件的abilities标签中声明UIAbility的名称、入口、标签等相关信息。
配置文件例子
{
"module": {
"name": "entry",
"type": "entry",
"description": "$string:module_desc",
"mainElement": "EntryAbility",
"deviceTypes": [
"phone"
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",
"abilities": [
.....
],
"extensionAbilities": [
......
]
.....
}
}
module标签
子标签解释
name
标识当前Module的名称,确保该名称在整个应用中唯一。命名规则如下 :
- 由字母、数字和下划线组成,且必须以字母开头。
- 最大长度31字节。
type
标识当前Module的类型。支持的取值如下:
- entry:应用的主模块。
- feature:应用的动态特性模块。
- har:静态共享包模块。
- shared:动态共享包模块。
description
标识当前Module的描述信息
mainElement
标识当前Module的入口UIAbility名称或者ExtensionAbility名称
deviceTypes
标识当前Module可以运行在哪类设备上。
- 手机:phone
- 平板:tablet
- 2in1设备:2in1,融合了屏幕触控和键鼠操作的二合一设备。
- 智慧屏:tv
- 智能手表:wearable 系统能力较丰富的手表,具备电话功能。
- 车机:car
deliveryWithInstall
标识当前Module是否在用户主动安装的时候安装,即该Module对应的HAP是否跟随应用一起安装。
- true:主动安装时安装。
- false:主动安装时不安装。
installationFree
标识当前Module是否支持免安装特性。
- true:表示支持免安装特性,且符合免安装约束。
- false:表示不支持免安装特性。
说明:
当bundleType为元服务时,该字段需要配置为true。反之,该字段需要配置为false。
pages
标识当前Module的profile资源,用于列举每个页面信息
该标签是一个profile文件资源,指下面文件:
src/main/resources/base/profile/main_pages.json
解释详见链接
abilities标签
abilities标签描述UIAbility组件的配置信息,标签值为数组类型,该标签下的配置只对当前UIAbility生效。
子标签说明
name
标识当前UIAbility组件的名称,确保该名称在整个应用中唯一
srcEntry
标识入口UIAbility的代码路径
launchType
标识当前UIAbility组件的启动模式,该标签缺省为singleton,支持的取值如下:
- multiton:多实例模式,每次启动创建一个新实例。
- singleton:单实例模式,仅第一次启动创建新实例。
- specified:指定实例模式,运行时由开发者决定是否创建新实例。(例如:word,每次新建文档时,就新打开一个word程序;多次打开同一个文档,就只打开一个word程序)
- standard:multiton的曾用名,效果与多实例模式一致。
description
标识当前UIAbility组件的描述信息
icon
标识当前UIAbility组件的图标,取值为图标资源文件的索引。
如果UIAbility被配置为MainElement,该标签必须配置。
桌面图标
该配置指定桌面图标
注意:改名字后,需要卸载应用,再安装才能看到新名字
任务图标
该配置指定任务视图中的任务名字,如下图红框处:
label
标识当前UIAbility组件对用户显示的名称,要求采用该名称的资源索引,以支持多语言
如果UIAbility被配置为MainElement,该标签必须配置。
桌面应用名字
该配置指定桌面图标的名字
注意:改名字后,需要卸载应用,再安装才能看到新名字
任务名字
该配置指定任务视图中的任务名字,如下图红框处:
文件路径
该配置与语言相关,具体如下:
中文指下面文件:
src/main/resources/zh_CN/element/string.json
英文指下面文件:
src/main/resources/en_US/element/string.json
未匹配语言指下面文件:
src/main/resources/base/element/string.json
startWindowIcon
标识当前UIAbility组件启动页面图标资源文件的索引
startWindowBackground
标识当前UIAbility组件启动页面背景颜色资源文件的索引
exported
标识当前UIAbility组件是否可以被其他应用调用。
- true:表示可以被其他应用调用。
- false:表示不可以被其他应用调用,包括无法被aa工具命令拉起应用。
缺省值为false
例子
{
"module": {
// ...
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:layered_image",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:startIcon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
},
],
}
}