问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

HarmonyOS NEXT开发指南:module.json5配置详解

创作时间:
作者:
@小白创作中心

HarmonyOS NEXT开发指南:module.json5配置详解

引用
CSDN
1.
https://m.blog.csdn.net/mayumin/article/details/143675314

本文详细介绍了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"
            ]
          }
        ]
      },
    ],
  }
}
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号