一、应用配置文件概述

每个应用项目的代码目录下必须包含应用配置文件,这些配置文件会向编译工具、操作系统和应用市场提供应用的基本信息。

在基于 Stage 模型开发的应用项目代码下,都存在一个 app.json5 配置文件,以及一个或多个 module.json5 配置文件。

说明:

  • 编译后,单个模块的编译产物中,app.json5 和 module.json5 的内容会合并到一个 module.json 文件中。
  • app.json5 配置文件包含以下内容:
    • 应用的全局配置信息,包含应用的 Bundle 名称、开发厂商、版本号等基本信息。
    • 特定设备类型的配置信息。
  • module.json5 配置文件包含以下内容:
    • Module 的基本配置信息,包含 Module 名称、类型、描述、支持的设备类型等基本信息。
    • 应用组件信息,包含 UIAbility 组件和 ExtensionAbility 组件的描述信息。
    • 应用运行过程中需要的权限信息。

二、app.json5 配置文件

2.1 文件位置与作用

应用级配置文件,包含应用的全局配置信息和特定设备类型的配置信息,用于向编译工具、操作系统和应用市场提供应用的基本信息。

每个工程下必须包含一个 app.json5 配置文件,文件所在目录为:

工程名称/AppScope/app.json5

说明:

  • 配置文件中的示例代码直接拷贝到工程中可能编译不通过,请开发者根据需求进行配置。例如:通过 $ 符号引用的资源文件如果工程中不存在,需要开发者手动添加或替换为实际的资源文件。
  • 配置文件中,字段可以重复,以最后一个配置为准。

2.2 app.json5 配置文件示例

{
  "app": {
    "bundleName": "com.application.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:layered_image",
    "alternateIcons": [
      {
        "name": "summer_theme",
        "icon": "$media:layered_image"
      },
      {
        "name": "winter_theme",
        "icon": "$media:background"
      }
    ],
    "label": "$string:app_name",
    "description": "$string:description_application",
    "minAPIVersion": 9,
    "targetAPIVersion": 9,
    "debug": false,
    "car": {
      "minAPIVersion": 8
    },
    "appEnvironments": [
      {
        "name": "name1",
        "value": "value1"
      }
    ],
    "maxChildProcess": 5,
    "multiAppMode": {
      "multiAppModeType": "appClone",
      "maxCount": 5
    },
    "hwasanEnabled": false,
    "ubsanEnabled": false,
    "cloudFileSyncEnabled": false,
    "cloudStructuredDataSyncEnabled": false,
    "configuration": "$profile:configuration",
    "assetAccessGroups": [
      "com.ohos.photos",
      "com.ohos.screenshot",
      "com.ohos.note"
    ],
    "startMode": "mainTask",
    "buildVersion": "1.0.0",
    "allowListenBundleChangedEvent": [
      "5628971256935874952"
    ]
  }
}

2.3 app.json5 配置文件标签说明

下表整理自资料中的 app.json5 配置文件标签说明。

属性名称含义数据类型是否可缺省
bundleName标识应用的 Bundle 名称,用于标识应用的唯一性。命名规则:必须为以点号分隔的字符串,且至少包含三段;每段仅允许英文字母、数字、下划线;首段以英文字母开头,非首段以数字或英文字母开头,每一段以数字或英文字母结尾;不允许多个点号连续出现;字符串最小长度 7 字节,最大长度 128 字节;推荐采用反域名形式命名,如 com.example.demo。字符串不可缺省
bundleType标识应用的 Bundle 类型。支持 app、atomicService、shared、appService、appPlugin、skill。其中 skill 从 API 版本 26.0.0 开始支持,仅对预置应用生效。字符串可缺省,缺省值为 app
debug标识应用是否可调试。true 表示可调试,一般用于开发阶段;false 表示不可调试,一般用于发布阶段。布尔值由 DevEco Studio 编译构建时生成。可缺省,缺省值为 false
icon标识应用的图标,取值为图标资源文件的索引。支持配置单层图标和分层图标。字符串不可缺省
alternateIcons标识应用的备选图标列表,用于应用运行时动态切换图标。每个备选图标包含图标名称和图标资源文件的索引。从 API 版本 26.0.0 开始支持;仅当 bundleType 为 app 时可配置。对象数组可缺省,缺省值为空
label标识应用的名称,取值为字符串资源的索引,以支持多语言,字符串长度不超过 63 字节。字符串不可缺省
description标识应用的描述信息,取值为长度不超过 255 字节的字符串,内容为描述信息的字符串或者字符串资源索引。字符串可缺省,缺省值为空
vendor标识对应用开发厂商的描述,取值为长度不超过 255 字节的字符串。字符串可缺省,缺省值为空
versionCode标识应用的版本号,取值范围为 0~2147483647。数值越大表示版本越新。数值不可缺省
versionName标识向用户展示的应用版本号。取值为长度不超过 127 字节的字符串。可以是仅由数字和点构成的字符串,推荐采用 A.B.C.D 四段式;也可以是包含花括号 {} 的字符串,且字符串只能包含数字、字母、下划线、点号、花括号。字符串不可缺省
minCompatibleVersionCode标识应用能够兼容的最低历史版本号,用于应用多设备之间协同、数据迁移、跨设备兼容性判断。该标签为预留字段,暂未使用。取值范围 0~2147483647。数值可缺省,缺省值等于 versionCode 标签值
minAPIVersion标识应用运行所需的最小 SDK API 版本。取值范围 0~2147483647。数值在应用编译构建时自动生成,手动配置无效,对应工程级 build-profile.json5 文件中的 compatibleSdkVersion 标签
targetAPIVersion标识应用运行需要的 API 目标版本。取值范围 0~2147483647。数值在应用编译构建时自动生成,手动配置无效,对应工程级 build-profile.json5 文件中的 targetSdkVersion 标签;如果未配置 targetSdkVersion,则由工程级 build-profile.json5 文件中的 compileSdkVersion 自动生成
apiReleaseType标识应用运行需要的 API 目标版本的类型。取值为 CanaryN、BetaN 或 ReleaseN,其中 N 代表大于零的整数。Canary 表示受限发布的版本,Beta 表示公开发布的 Beta 版本,Release 表示公开发布的正式版本。字符串应用编译构建时根据当前使用的 SDK 的版本类型自动生成。手动配置无效
accessible标识应用是否能访问应用的安装目录。仅预置的系统应用配置生效,三方应用配置不生效。true 表示可以访问,false 表示不可以访问。布尔值可缺省,缺省值为 false
multiProjects标识当前工程是否支持多个工程的联合开发。true 表示支持,false 表示不支持。布尔值在应用编译构建时自动生成,手动配置无效,对应工程级 build-profile.json5 文件中的 multiProjects 标签
asanEnabled标识应用程序是否开启 asan 检测,用于辅助定位 buffer 越界造成的 crash 问题。true 表示开启,false 表示不开启。布尔值可缺省,缺省值为 false
tablet标识对 tablet 设备做的特殊配置,可以配置的属性标签有 minAPIVersion。如果使用该属性对 tablet 设备做了特殊配置,则应用在 tablet 设备中会采用此处配置的属性值,并忽略在 app.json5 公共区域的属性值。对象可缺省,缺省时 tablet 设备使用 app.json5 公共区域的属性值
tv标识对 tv 设备做的特殊配置,可以配置的属性标签有 minAPIVersion。对象可缺省,缺省时 tv 设备使用 app.json5 公共区域的属性值
wearable标识对 wearable 设备做的特殊配置,可以配置的属性标签有 minAPIVersion。对象可缺省,缺省时 wearable 设备使用 app.json5 公共区域的属性值
car标识对 car 设备做的特殊配置,可以配置的属性标签有 minAPIVersion。对象可缺省,缺省时 car 设备使用 app.json5 公共区域的属性值
default标识对 default 设备做的特殊配置,可以配置的属性标签有 minAPIVersion。对象可缺省,缺省时 default 设备使用 app.json5 公共区域的属性值
targetBundleName标识当前包所指定的目标应用,标签值的取值规则和范围与 bundleName 标签一致。配置该标签的应用为具有 overlay 特征的应用。字符串可缺省,缺省值为空
targetPriority标识当前应用的优先级,取值范围为 1~100。配置 targetBundleName 标签之后,才支持配置该标签。数值可缺省,缺省值为 1
generateBuildHash标识当前应用的所有 HAP 和 HSP 是否由打包工具生成哈希值。true 表示都生成对应的哈希值;false 表示都不生成。系统 OTA 升级时,若应用的 versionCode 保持不变,可根据哈希值判断应用是否需要升级。该标签仅对预置应用生效。布尔值可缺省,缺省值为 false
2in1标识对 PC/2in1 设备做的特殊配置,可以配置的属性标签为 minAPIVersion。对象可缺省,缺省时 PC/2in1 设备使用 app.json5 公共区域配置的属性值
GWPAsanEnabled标识应用程序是否开启 GWP-asan 堆内存检测工具,用于对内存越界、内存释放后使用等内存破坏问题进行分析。true 表示开启,false 表示不开启。布尔值可缺省,缺省值为 false
appEnvironments标识当前应用配置的应用环境变量。对象数组可缺省,缺省值为空
maxChildProcess标识当前应用自身可创建的子进程的最大个数,取值范围为 0~512,0 表示不限制。当应用有多个模块时,以 entry 模块的配置为准。数值可缺省,缺省时使用系统配置的默认值 512
multiAppMode标识当前应用配置的多开模式。仅 bundleType 为 app 的应用的 entry 或 feature 模块配置有效,存在多个模块时,以 entry 模块的配置为准。对象可缺省,缺省值为空
hwasanEnabled标识应用程序是否开启 HWAsan 检测。HWAsan 是利用 Top-Byte-Ignore 特性实现的增强版 Asan。true 表示开启,false 表示不开启。从 API version 14 开始支持该标签。布尔值可缺省,缺省值为 false
tsanEnabled标识应用程序是否开启使用 TSan 检测线程错误。TSan 是一个检测数据竞争的工具。true 表示开启,false 表示不开启。布尔值可缺省,缺省值为 false
ubsanEnabled标识应用程序是否使用 UBSan 检测未定义行为。true 表示开启,false 表示不开启。从 API version 14 开始支持该标签。布尔值可缺省,缺省值为 false
cloudFileSyncEnabled标识当前应用是否启用端云文件同步能力。true 表示启用,false 表示不启用。布尔值可缺省,缺省值为 false
cloudStructuredDataSyncEnabled标识当前应用是否启用端云结构化数据同步能力。true 表示启用,false 表示不启用。从 API version 20 开始支持该标签。布尔值可缺省,缺省值为 false
configuration标识当前应用字体大小跟随系统配置的能力。该标签是一个 profile 文件资源,用于指定描述应用字体大小跟随系统变更的配置文件。字符串可缺省,缺省时 configuration 使用不跟随系统默认设定
assetAccessGroups配置应用的 Group ID,它和 Developer ID 一起组成群组信息。打包 HAP 时,DevEco 使用开发者证书对群组信息签名。该标签仅在应用主模块下生效。从 API version 18 开始支持该标签。字符串数组可缺省,缺省值为空
appPreloadPhase配置应用预加载到不同阶段。支持 processCreated、abilityStageCreated、windowStageCreated。从 API version 20 开始支持。仅在 PC/2in1 设备上生效,仅在应用的 entry 模块配置有效。字符串可缺省,缺省时不进行预加载
startMode配置应用的启动模式。支持 mainTask、recentTask。从 API version 20 开始支持。仅在 launchType 为单实例模式时生效。仅支持 phone 和 tablet 设备(不包含自由多窗)。字符串可缺省,缺省值为 mainTask
buildVersion标识应用的构建版本号,建议采用 A.B.C 三段式。从 API version 23 开始支持该标签。字符串最小长度 1 字节,最大长度 18 字节;由数字和 . 组成;. 的数量限制 0 到 2 个,不能以 . 开头和结尾,也不能相邻;数字段可以为 0,但不能以 0 开头。字符串可缺省,缺省值为空
profileable标识是否允许调优工具对 Profile 签名文件为发布 Profile 的应用进行性能分析。从 API version 24 开始支持。仅当 bundleType 为 app 或 atomicService 时可以配置。布尔值可缺省,缺省值为 false
allowListenBundleChangedEvent配置允许监听当前应用的安装、更新、卸载和清理缓存公共事件的三方应用列表。一个数组元素即为一个应用程序的 appIdentifier。从 API 版本 26.0.0 开始支持。仅当 Profile 签名文件为 In-House 发布 Profile 时生效。仅当 bundleType 为 app 或 atomicService 时可以配置。字符串数组可缺省,缺省值为空
distributedNotificationEnabled标识应用是否开启分布式通知。从 API version 9 开始废弃。布尔值可缺省,缺省值为 false
entityType标识应用的类别,包括 game、media、communication、news、travel、utility、shopping、education、kids、business、photography、unspecified。从 API version 9 开始废弃。字符串可缺省,缺省为 unspecified
keepAlive标识应用程序是否保持活动状态。此属性仅在使用系统应用或特权应用时生效,不对三方应用开放。从 API version 9 开始废弃。布尔值可缺省,缺省值为 false
removable标识应用是否可移除。此属性仅在系统应用或特权应用使用时生效,不对三方应用开放。从 API version 9 开始废弃。布尔值可缺省,缺省值为 true
singleton标识应用程序是否为单例模式。此属性仅在使用系统应用或特权应用时生效,不对三方应用开放。从 API version 9 开始废弃。布尔值可缺省,缺省值为 false
userDataClearable标识是否允许应用程序清除用户数据。此属性仅在使用系统应用或特权应用时生效,不对三方应用开放。从 API version 9 开始废弃。布尔值可缺省,缺省值为 true

2.4 appEnvironments 标签

此标签标识应用配置的环境变量。应用运行时有时会依赖一些三方库,这些三方库会使用到一些自定义的环境变量,为了不修改三方库的实现逻辑,可以在工程的配置文件中设置自定义的环境变量,以供运行时使用。

属性名称含义数据类型是否可缺省
name标识环境变量的变量名称。取值为长度不超过 4096 字节的字符串。字符串可缺省,缺省值为空
value标识环境变量的值。取值为长度不超过 4096 字节的字符串。字符串可缺省,缺省值为空

示例:

{
  "app": {
    "appEnvironments": [
      {
        "name": "name1",
        "value": "value1"
      }
    ]
  }
}

2.5 multiAppMode 标签

应用多开模式。

属性名称含义数据类型是否可缺省
multiAppModeType标识应用多开模式类型。支持 multiInstance、appClone。multiInstance 仅支持 2in1 设备,常驻进程不支持该标签。appClone 为应用分身模式。字符串不可缺省
maxCount标识最大允许的应用多开个数。multiInstance 模式取值范围 1~10;appClone 模式取值范围 1~5。数值不可缺省

示例:

{
  "app": {
    "multiAppMode": {
      "multiAppModeType": "appClone",
      "maxCount": 5
    }
  }
}

2.6 configuration 标签

该标签对应一个 profile 文件资源,对应文件用于配置应用字体大小是否跟随系统变更。

示例:

{
  "app": {
    "configuration": "$profile:configuration"
  }
}

在开发视图的 AppScope/resources/base/profile 下面定义配置文件 configuration.json,其中文件名 configuration 可自定义,需要和 configuration 标签指定的文件资源对应。

属性名称含义数据类型是否可缺省
fontSizeScale应用字体大小是否跟随系统。支持 followSystem、nonFollowSystem。字符串可缺省,缺省值为 nonFollowSystem
fontSizeMaxScale应用字体大小选择跟随系统后,配置的应用字体最大放大倍数。支持 1、1.15、1.3、1.45、1.75、2、3.2。字符串可缺省,缺省值为 3.2

示例:

{
  "configuration": {
    "fontSizeScale": "followSystem",
    "fontSizeMaxScale": "3.2"
  }
}

2.7 alternateIcons 标签

该标签用于配置应用的备选图标列表,支持应用在运行时动态切换图标。开发者可以预先配置多个备选图标,应用可根据用户偏好、节日主题、品牌活动等场景动态更换应用图标。

从 API 版本 26.0.0 开始支持该标签。

属性名称含义数据类型是否可缺省
name标识备选图标的名称,用于标识和区分不同的备选图标。取值为长度不超过 255 字节的字符串。字符串不可缺省
icon标识备选图标的图标资源文件索引,取值为图标资源文件的索引,格式为 $media:icon_name。支持配置单层图标和分层图标。字符串不可缺省

示例:

{
  "app": {
    "alternateIcons": [
      {
        "name": "summer_theme",
        "icon": "$media:layered_image"
      },
      {
        "name": "winter_theme",
        "icon": "$media:background"
      }
    ]
  }
}

三、module.json5 配置文件

3.1 文件位置与作用

模块级配置文件,包含模块的基本配置信息、UIAbility 组件和 ExtensionAbility 组件信息,以及应用运行过程中需要的权限信息,用于向编译工具、操作系统和应用市场提供应用的基本信息。

每个模块下必须包括一个 module.json5 配置文件,文件所在目录为:

工程名称/模块名称(例如 entry)/src/main/module.json5

说明:

  • 配置文件中的示例代码直接拷贝到工程中可能编译不通过,请开发者根据需求进行配置。
  • 配置文件中,字段可以重复,以最后一个配置为准。

3.2 module.json5 配置文件示例

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "tv",
      "tablet"
    ],
    "deliveryWithInstall": true,
    "pages": "$profile:main_pages",
    "appStartup": "$profile:app_startup_config",
    "metadata": [
      {
        "name": "string",
        "value": "string",
        "resource": "$profile:distributionFilter_config"
      }
    ],
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:layered_image",
        "label": "$string:EntryAbility_label",
        "startWindow": "$profile:start_window",
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "ohos.want.action.home"
            ]
          }
        ],
        "continueType": [
          "continueType1"
        ],
        "continueBundleName": [
          "com.example.myapplication1",
          "com.example.myapplication2"
        ]
      }
    ],
    "requestPermissions": [
      {
        "name": "ohos.permission.ACCESS_BLUETOOTH",
        "reason": "$string:reason",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "inuse"
        }
      }
    ],
    "querySchemes": [
      "app1Scheme",
      "app2Scheme"
    ],
    "routerMap": "$profile:router_map",
    "appEnvironments": [
      {
        "name": "name1",
        "value": "value1"
      }
    ],
    "fileContextMenu": "$profile:menu",
    "crossAppSharedConfig": "$profile:shared_config",
    "skillProfiles": [
      {
        "name": "my-skill",
        "abilityName": "EntryAbility",
        "version": "1.0.0",
        "visibility": "public",
        "srcEntries": [
          "../../my-skill/scripts/Test.ets"
        ],
        "permissions": []
      }
    ]
  }
}

3.3 module.json5 配置文件标签说明

下表整理自资料中的 module.json5 配置文件标签说明。

属性名称含义数据类型是否可缺省
name标识当前 Module 的名称,确保该名称在整个应用中唯一。由字母、数字和下划线组成,且必须以字母开头。最大长度 128 字节。应用升级时允许修改该名称,但需要应用适配 Module 相关数据目录的迁移。字符串不可缺省
type标识当前 Module 的类型。支持 entry、feature、har、shared、skill。skill 从 API 版本 26.0.0 开始支持,仅对预置应用生效。字符串不可缺省
srcEntry标识 AbilityStage 组件的代码路径,取值为长度不超过 127 字节的字符串。字符串可缺省,缺省值为空
description标识当前 Module 的描述信息,取值为长度不超过 255 字节的字符串,可以采用字符串资源索引格式。字符串可缺省,缺省值为空
mainElement标识当前 Module 的入口 UIAbility 名称,取值为长度不超过 255 字节的字符串。字符串可缺省,缺省值为空
deviceTypes标识当前 Module 可以运行在哪类设备上。当存在多个模块时,各模块的配置可以不同,但都必须包含将要安装的设备类型。字符串数组不可缺省
deliveryWithInstall标识当前 Module 是否在用户主动安装的时候安装。true 表示跟随应用一起安装;false 表示不跟随应用一起安装,通过按需分发的方式安装。布尔值当前 Module 类型为 HAP 或 HSP 时,不可缺省
installationFree标识当前 Module 是否支持免安装特性。true 表示支持,false 表示不支持。布尔值可缺省。编译构建时自动生成,手动配置不生效。当 bundleType 为元服务时,自动配置为 true;反之自动配置为 false
virtualMachine标识当前 Module 运行的目标虚拟机类型,供云端分发使用。如果目标虚拟机类型为 ArkTS 引擎,则其值为 ark+版本号。字符串可缺省,手动配置不生效,由编译构建时自动生成
pages标识当前 Module 的 profile 资源,用于列举每个页面信息,取值为长度不超过 255 字节的字符串。字符串可缺省,缺省值为空
metadata标识当前 Module 的自定义元信息,可通过资源引用的方式配置 distributionFilter、shortcuts 等信息。只对当前 Module、UIAbility、ExtensionAbility 生效。对象数组可缺省,缺省值为空
abilities标识当前 Module 中 UIAbility 的配置信息,只对当前 UIAbility 生效。对象数组可缺省,缺省值为空
extensionAbilities标识当前 Module 中 ExtensionAbility 的配置信息,只对当前 ExtensionAbility 生效。对象数组可缺省,缺省值为空
requestPermissions标识当前应用运行时需向系统申请的权限集合。对象数组可缺省,缺省值为空
testRunner标识用于测试当前 Module 的测试框架的配置。对象可缺省,缺省值为空
atomicService标识当前应用是元服务时,有关元服务的相关配置。对象可缺省,缺省值为空
dependencies标识当前模块运行时依赖的共享库列表。对象数组可缺省,缺省值为空。手动配置不生效,由编译构建时自动生成
targetModuleName标识当前包所指定的目标 Module。取值为长度不超过 128 字节的字符串,不支持中文。配置该标签的 Module 具有 overlay 特性。仅在动态共享包 HSP 中适用。字符串可缺省,缺省值为空
targetPriority标识当前 Module 的优先级,取值范围 1~100。配置 targetModuleName 标签之后,才需要配置该标签。仅在动态共享包 HSP 中适用。整型数值可缺省,缺省值为 1
proxyData标识当前 Module 提供的数据代理列表。对象数组可缺省,缺省值为空
isolationMode标识当前 Module 的多进程配置项。支持 nonisolationFirst、isolationFirst、isolationOnly、nonisolationOnly。仅 2in1 和 tablet 设备支持将当前 Module 设置为独立进程。该标签仅对 HAP 生效。字符串可缺省,缺省值为 nonisolationFirst
generateBuildHash标识当前 HAP/HSP 是否由打包工具生成哈希值。该标签仅在 app.json5 文件中的 generateBuildHash 标签为 false 时使能。仅对预置应用生效。布尔值可缺省,缺省值为 false
compressNativeLibs在打包 hap 时,该标签标识 libs 库是否以压缩存储的方式打包到 HAP。true 表示压缩存储,false 表示不压缩存储。布尔值可缺省,在打包 hap 时缺省值为 false
extractNativeLibs标识应用安装时,libs 库是否解压到应用安装目录。当 compressNativeLibs 和 extractNativeLibs 都配置为 false 时,应用以不解压 libs 库的方式安装;其他场景,应用以解压 libs 库的方式安装。从 API version 20 开始支持。布尔值可缺省,缺省值为 true
libIsolation在 libs 目录下是否生成模块名称目录存储 so,用于区分同一应用中不同 HAP 的 .so 文件,以防止 .so 文件冲突。true 表示当前 HAP 的 .so 文件会储存在 libs 目录中以 Module 名命名的路径下;false 表示直接储存在 libs 目录中。布尔值可缺省,缺省值为 false
fileContextMenu标识当前 HAP 的右键菜单配置项,是一个 profile 文件资源。取值为长度不超过 255 字节的字符串。仅在 PC/2in1 设备上生效,仅允许在 entry 类型模块中配置。字符串可缺省,缺省值为空
querySchemes标识允许当前应用进行跳转查询的 URL schemes,只允许 entry 类型模块配置,每个字符串取值不超过 128 字节。从 API version 21 开始,最多允许配置 200 个 URL scheme;API version 20 及之前最多允许配置 50 个。字符串数组可缺省,缺省值为空
routerMap标识当前模块配置的路由表路径。取值为长度不超过 255 字节的字符串。字符串可缺省,缺省值为空
appEnvironments标识当前模块配置的应用环境变量,只允许 entry 和 feature 模块配置。对象数组可缺省,缺省值为空
appStartup标识当前 Module 启动框架配置路径,只允许 entry 类型模块配置。从 API version 18 开始,新增支持在 HSP、HAR 中配置。从 API version 20 开始,新增支持在 feature 类型的 Module 中配置。字符串可缺省,缺省值为空
hnpPackages标识当前应用包含的 Native 软件包信息。只允许 entry 类型模块配置。对象数组可缺省,缺省值为空
systemTheme标识当前使用的系统主题配置项。只允许 entry 类型模块配置。取值为不超过 255 字节的字符串。从 API version 20 开始支持。字符串可缺省,缺省值为空
abilitySrcEntryDelegator标识当前 Module 需要重定向到的 UIAbility 的名称,与 abilityStageSrcEntryDelegator 标签组合使用,共同指定重定向的目标对象。从 API version 17 开始支持。当 UIAbility 是通过 startAbilityByCall 接口启动时,该标签不生效。不支持在 HAR 的配置文件中配置该标签,也不支持重定向到 HAR 的 UIAbility。字符串可缺省,缺省值为空
abilityStageSrcEntryDelegator标识当前 Module 需要重定向到的 UIAbility 对应的 Module 名称(不可为当前 Module 名称),与 abilitySrcEntryDelegator 标签组合使用,共同指定重定向的目标对象。从 API version 17 开始支持。字符串可缺省,缺省值为空
crossAppSharedConfig标识应用间共享配置的配置文件名。取值为不超过 255 字节的字符串。用于发布配置给其他应用读取,在应用安装时生效,应用卸载时失效。从 API version 20 开始支持。字符串可缺省,缺省值为空
formWidgetModule在独立卡片包中,应用包需要配置该标签,用来关联卡片包。取值为卡片包的模块名称,对应卡片包 module.json5 中的 name 标签。从 API version 20 开始支持。字符串可缺省,缺省值为空
formExtensionModule在独立卡片包中,卡片包需要配置该标签,用来关联应用包。取值为应用包的模块名称,对应应用包 module.json5 中的 name 标签。从 API version 20 开始支持。字符串可缺省,缺省值为空
shareFiles标识应用沙箱中分享目录的配置文件路径,用于为应用文件提供有安全保障的开放范围,保护应用资产。只允许 entry 类型模块配置,取值为长度不超过 255 字节的字符串。从 API version 23 开始支持。字符串可缺省,缺省值为空
skillProfiles标识当前模块的技能配置信息,用于定义 AI 代理的技能能力。仅允许 type 字段取值为 entry、feature、shared、skill 的模块配置,对于 skill 类型的模块必须配置该标签。从 API 版本 26.0.0 开始支持。对象数组对于 skill 类型的模块不可缺省;对于其他类型的模块可缺省,缺省值为空
executableBinaryPaths标识应用内可执行二进制文件的路径信息。从 API version 24 开始支持,仅在 PC/2in1 设备上生效。对象数组可缺省,缺省值为空
uiSyntax标识当前 Module syntax 定义该 JS Component 的语法类型。hml 表示使用 hml/css/js 进行开发;ets 表示使用 ArkTS 声明式语法进行开发。从 API version 9 开始废弃。字符串可缺省,缺省值为 hml
srcEntrance标识当前 Module 所对应的代码路径,标签值为字符串(最长为 127 字节)。从 API version 9 开始废弃,请使用 srcEntry 字段替代。字符串可缺省,缺省值为空
requiredDeviceFeatures标识当前 Module 运行所需要的特定的设备特性,应用市场可以根据此配置,将应用分发给支持该特性的设备。从 API version 19 开始支持。不支持插件应用配置。对象可缺省,缺省值为空
easyGo标识系统提供的一种兼容配置模式的配置文件路径,以满足不同产品的定制能力,当前仅支持平行视界分栏能力。只允许 entry 类型模块配置,取值为长度不超过 255 字节的字符串。从 API version 23 开始支持。字符串可缺省,缺省值为空

3.4 deviceTypes 标签

设备类型枚举值说明
手机phone-
平板tablet-
PC/2in12in1即 PC 设备,主要交互方式以多窗口、多任务及键盘鼠标操作为主。在 HarmonyOS 文档中,所有“2in1”均代表“PC/2in1”。
智慧屏tv-
智能手表wearable系统能力较丰富的手表,具备电话功能。
车机car-
默认设备default配置为 default 类型的应用,虽然可以正常编译构建,但是不支持发布上架。建议使用 phone 替代。

示例:

{
  "module": {
    "name": "myHapName",
    "type": "feature",
    "deviceTypes": [
      "tv",
      "tablet"
    ]
  }
}

3.5 pages 标签

该标签是一个 profile 文件资源,用于指定描述页面信息的配置文件。

{
  "module": {
    "pages": "$profile:main_pages"
  }
}

在开发视图的 resources/base/profile 下面定义配置文件 main_pages.json,其中文件名 main_pages 可自定义,需要和 pages 标签指定的信息对应。配置文件中列举了当前应用组件中的页面信息,包含页面的路由信息和显示窗口相关的配置。

属性名称含义数据类型是否可缺省
src标识当前 Module 中所有页面的路由信息,包括页面路径和页面名称。其中,页面路径是以当前 Module 的 src/main/ets 为基准。该标签取值为一个字符串数组,其中每个元素表示一个页面。字符串数组不可缺省
window标识用于定义与显示窗口相关的配置。对象可缺省,缺省值为空

window 标签说明:

属性名称含义数据类型是否可缺省
designWidth标识页面设计基准宽度。以此为基准,根据实际设备宽度来缩放元素大小。数值可缺省,缺省值为 720px
autoDesignWidth标识页面设计基准宽度是否自动计算。当配置为 true 时,designWidth 将会被忽略,设计基准宽度由设备宽度与屏幕密度计算得出。当配置为 false 时,设计基准宽度为 designWidth。布尔值可缺省,缺省值为 false

示例:

{
  "src": [
    "pages/Index"
  ],
  "window": {
    "designWidth": 720,
    "autoDesignWidth": false
  }
}

3.6 metadata 标签

该标签标识 HAP 的自定义元信息,标签值为数组类型,包含 name、value、resource 三个子标签。

属性名称含义数据类型是否可缺省
name标识数据项的名称,取值为长度不超过 255 字节的字符串。字符串可缺省,缺省值为空
value标识数据项的值,取值为长度不超过 255 字节的字符串。字符串可缺省,缺省值为空
resource标识用户自定义数据,取值为长度不超过 255 字节的字符串,内容为该数据的资源索引,例如配置成 $profile:shortcuts_config,表示指向了 /resources/base/profile/shortcuts_config.json 配置文件。字符串可缺省,缺省值为空

示例:

{
  "module": {
    "metadata": [
      {
        "name": "pageConfig",
        "value": "main page config of application",
        "resource": "$profile:main_pages"
      }
    ]
  }
}

3.7 abilities 标签

abilities 标签描述 UIAbility 组件的配置信息,标签值为数组类型,该标签下的配置只对当前 UIAbility 生效。

属性名称含义数据类型是否可缺省
name标识当前 UIAbility 组件的名称,确保该名称在整个应用中唯一。取值为长度不超过 127 字节的字符串,以字母开头,可包含字母、数字、下划线或点号。字符串不可缺省
srcEntry标识当前 UIAbility 的代码路径,取值为长度不超过 127 字节的字符串。字符串不可缺省
launchType标识当前 UIAbility 组件的启动模式。支持 multiton、singleton、specified、standard。standard 是 multiton 的曾用名。元服务启动模式需要设置为单例模式。字符串可缺省,缺省为 singleton
description标识当前 UIAbility 组件的描述信息,取值为长度不超过 255 字节的字符串。建议采用描述信息的资源索引,以支持多语言。字符串可缺省,缺省值为空
icon标识当前 UIAbility 组件的图标,取值为图标资源文件的索引,支持配置单层图标和分层图标。字符串可缺省,缺省值为空
label标识当前 UIAbility 组件对用户显示的名称,取值为字符串资源的索引,以支持多语言,长度不超过 255 字节。字符串可缺省,缺省值为空
permissions标识当前 UIAbility 组件的权限信息。其他应用访问该 UIAbility 时,需要申请相应的权限。一个数组元素为一个权限名称,不超过 255 字节。字符串数组可缺省,缺省值为空
metadata标识当前 UIAbility 组件的元信息,典型使用场景详见窗口元数据配置中的 metadata 标签。对象数组可缺省,缺省值为空
exported标识当前 UIAbility 组件是否可以被其他应用拉起。true 表示可以被其他应用拉起;false 表示只能由同应用或者具有 ohos.permission.START_INVISIBLE_ABILITY 权限的应用拉起。布尔值可缺省,缺省值为 false
continuable标识当前 UIAbility 组件是否支持跨端迁移。true 表示支持,false 表示不支持。布尔值可缺省,缺省值为 false
skills标识当前 UIAbility 组件能够接收的 Want 特征集,为数组格式。对于 Entry 类型的 HAP,应用可以配置多个具有入口能力的 skills 标签(即配置了 ohos.want.action.home 和 entity.system.home)。对于 Feature 类型的 HAP,只有应用可以配置具有入口能力的 skills 标签,服务不允许配置。对象数组可缺省,缺省值为空
backgroundModes标识当前 UIAbility 组件的长时任务集合,指定用于满足特定类型的长时任务。字符串数组可缺省,缺省值为空
startWindow标识当前 UIAbility 组件启动页面 profile 资源,取值为长度不超过 255 字节的字符串。如果配置了该标签,startWindowIcon 和 startWindowBackground 标签均不生效。从 API version 19 开始,支持使用该字段配置增强启动页。字符串可缺省,缺省值为空
startWindowIcon标识当前 UIAbility 组件启动页面图标资源文件的索引,取值为长度不超过 255 字节的字符串。字符串不可缺省
startWindowBackground标识当前 UIAbility 组件启动页面背景颜色资源文件的索引,取值为长度不超过 255 字节的字符串。取值示例:$color:red。字符串不可缺省
removeMissionAfterTerminate标识当前 UIAbility 组件销毁后,是否从任务列表中移除任务。true 表示销毁后移除任务;false 表示销毁后不移除任务。2in1 设备和平板设备的自由多窗模式下配置不生效,默认移除任务。布尔值可缺省,缺省值为 false
allowSelfRedirect标识应用是否允许通过 App Linking 跳转自己。从 API version 23 开始支持。布尔值可缺省,缺省值为 true
orientation标识当前 UIAbility 组件启动时的方向,支持配置枚举,或启动方向资源索引。枚举包括 unspecified、landscape、portrait、follow_recent、landscape_inverted、portrait_inverted、auto_rotation、auto_rotation_landscape、auto_rotation_portrait、auto_rotation_restricted、auto_rotation_landscape_restricted、auto_rotation_portrait_restricted、locked、auto_rotation_unspecified、follow_desktop。从 API version 14 开始支持配置启动方向资源索引。字符串可缺省,缺省值为 unspecified
supportWindowMode标识当前 UIAbility 组件所支持的窗口模式。支持 fullscreen、split、floating。字符串数组可缺省,缺省值为 ["fullscreen", "split", "floating"]
maxWindowRatio标识当前 UIAbility 组件支持的最大的宽高比。该标签最小取值为 0。数值可缺省,缺省值为平台支持的最大的宽高比
minWindowRatio标识当前 UIAbility 组件支持的最小的宽高比。该标签最小取值为 0。数值可缺省,缺省值为平台支持的最小的宽高比
maxWindowWidth标识当前 UIAbility 组件支持的最大的窗口宽度,宽度单位为 vp。数值可缺省,缺省值为平台支持的最大的窗口宽度
minWindowWidth标识当前 UIAbility 组件支持的最小的窗口宽度,宽度单位为 vp。数值可缺省,缺省值为平台支持的最小的窗口宽度
maxWindowHeight标识当前 UIAbility 组件支持的最大的窗口高度,高度单位为 vp。数值可缺省,缺省值为平台支持的最大的窗口高度
minWindowHeight标识当前 UIAbility 组件支持的最小的窗口高度,高度单位为 vp。数值可缺省,缺省值为平台支持的最小的窗口高度
excludeFromMissions标识当前 UIAbility 组件是否在最近任务列表中显示。true 表示不在任务列表中显示,false 表示在任务列表中显示。三方应用的配置不生效,当前配置仅在系统应用中有效。布尔值可缺省,缺省值为 false
recoverable标识当前 UIAbility 组件是否支持在检测到应用故障后,恢复到应用原界面。true 表示支持,false 表示不支持。布尔值可缺省,缺省值为 false
isolationProcess标识组件能否运行在独立的进程中。仅 2in1 和 tablet 设备支持将 UIAbility 设置为独立进程。布尔值可缺省,缺省值为 false
excludeFromDock标识当前 UIAbility 组件是否支持从 dock 区域隐藏图标。该标签配置不生效。布尔值可缺省,缺省值为 false
preferMultiWindowOrientation标识当前 UIAbility 组件多窗布局方向。支持 default、portrait、landscape、landscape_auto。字符串可缺省,缺省值为 default
continueType标识当前 UIAbility 组件的跨端迁移类型。字符串数组可缺省,缺省值为当前组件的名称
continueBundleName标识当前应用支持跨端迁移的其它应用名称列表。不能配置为本应用包名,仅为了做异包名迁移使用。从 API version 13 开始支持。字符串数组可缺省,缺省值为空
process标识组件的进程名称。仅在 PC/2in1 和 Tablet 设备上生效。UIAbility 组件和 type 为 embeddedUI 的 ExtensionAbility 组件标签一致时运行在同一个进程中。从 API version 14 开始支持。字符串可缺省,缺省值为空

abilities 示例:

{
  "abilities": [
    {
      "name": "EntryAbility",
      "srcEntry": "./ets/entryability/EntryAbility.ets",
      "launchType": "singleton",
      "description": "$string:description_main_ability",
      "icon": "$media:layered_image",
      "label": "$string:EntryAbility_label",
      "permissions": [],
      "metadata": [],
      "exported": true,
      "continuable": true,
      "skills": [
        {
          "actions": [
            "ohos.want.action.home"
          ],
          "entities": [
            "entity.system.home"
          ],
          "uris": []
        }
      ],
      "backgroundModes": [
        "dataTransfer"
      ],
      "startWindowIcon": "$media:icon",
      "startWindowBackground": "$color:red",
      "removeMissionAfterTerminate": true,
      "allowSelfRedirect": true,
      "orientation": "$string:orientation",
      "supportWindowMode": [
        "fullscreen",
        "split",
        "floating"
      ],
      "maxWindowRatio": 3.5,
      "minWindowRatio": 0.5,
      "maxWindowWidth": 2560,
      "minWindowWidth": 1400,
      "maxWindowHeight": 300,
      "minWindowHeight": 200,
      "excludeFromMissions": false,
      "preferMultiWindowOrientation": "default",
      "isolationProcess": false,
      "continueType": [
        "continueType1",
        "continueType2"
      ],
      "continueBundleName": [
        "com.example.myapplication1",
        "com.example.myapplication2"
      ],
      "process": ":processTag"
    }
  ]
}

3.8 skills 标签

该标签标识 UIAbility 组件或者 ExtensionAbility 组件能够接收的 Want 的特征。

属性名称含义数据类型是否可缺省
actions标识能够接收的 Action 值集合,取值通常为系统预定义的 action 值,也允许自定义。一个 skill 中不建议配置多个 action,否则可能导致无法匹配预期场景。字符串数组可缺省,缺省值为空
entities标识能够接收的 Entity 值的集合。一个 skill 中不建议配置多个 entity,否则可能导致无法匹配预期场景。字符串数组可缺省,缺省值为空
uris标识与 Want 中 URI 相匹配的集合。对象数组可缺省,缺省值为空
permissions标识当前 UIAbility 或 ExtensionAbility 组件的权限信息。其他应用访问该组件时,需要申请相应的权限。一个数组元素为一个权限名称,不超过 255 字节。字符串数组可缺省,缺省值为空
domainVerify标识是否开启域名校验。true 表示开启,false 表示不开启。布尔值可缺省,缺省值为 false

uris 标签说明:

属性名称含义数据类型是否可缺省
scheme标识 URI 的协议名部分,常见的有 http、https、file、ftp 等。从 API 18 开始,该标签在参与隐式 Want 匹配时不区分大小写。字符串uris 中仅配置 type 时可以缺省,缺省值为空,否则不可缺省
host标识 URI 的主机地址部分,该标签只有当 scheme 配置时才生效。常见方式:域名方式如 example.com,IP 地址方式如 10.10.10.1。从 API 18 开始,该标签在参与隐式 Want 匹配时不区分大小写。字符串可缺省,缺省值为空
port标识 URI 的端口部分。如 http 默认端口为 80,https 默认端口是 443,ftp 默认端口是 21。该标签只有当 scheme 和 host 都配置时才生效。字符串可缺省,缺省值为空
path、pathStartWith、pathRegex标识 URI 的路径部分,三者配置时三选一。path 标识 URI 与 want 中的路径部分全匹配,pathStartWith 标识允许前缀匹配,pathRegex 标识允许正则匹配。该标签只有当 scheme 和 host 都配置时才生效。字符串可缺省,缺省值为空
type标识与 Want 相匹配的数据类型,使用 MIME 类型规范和 UniformDataType 类型规范。可以与 scheme 同时配置,也可以单独配置。字符串可缺省,缺省值为空
utd标识与 Want 相匹配的标准化数据类型,适用于分享等场景。字符串可缺省,缺省值为空
maxFileSupported对于指定类型的文件,标识一次能接收或打开的最大数量,适用于分享等场景,需要与 utd 配合使用。整数可缺省,缺省值为 0
linkFeature标识 URI 提供的功能类型(如文件打开、分享、导航等),用于实现应用间跳转。取值为长度不超过 127 字节的字符串,不支持中文。同一 Bundle 中声明的 linkFeature 数量不能超过 150 个。字符串可缺省,缺省值为空

skills 示例:

{
  "abilities": [
    {
      "skills": [
        {
          "actions": [
            "ohos.want.action.home"
          ],
          "entities": [
            "entity.system.home"
          ],
          "uris": [
            {
              "scheme": "http",
              "host": "example.com",
              "port": "80",
              "path": "path",
              "type": "text/*",
              "linkFeature": "Login"
            }
          ],
          "permissions": [],
          "domainVerify": false
        }
      ]
    }
  ]
}

3.9 extensionAbilities 标签

描述 extensionAbilities 的配置信息,标签值为数组类型,该标签下的配置只对当前 extensionAbilities 生效。

属性名称含义数据类型是否可缺省
name标识当前 ExtensionAbility 组件的名称,确保该名称在整个应用中唯一,取值为长度不超过 127 字节的字符串。字符串不可缺省
srcEntry标识当前 ExtensionAbility 组件所对应的代码路径,取值为长度不超过 127 字节的字符串。字符串不可缺省
description标识当前 ExtensionAbility 组件的描述,取值为长度不超过 255 字节的字符串,可以是对描述内容的资源索引,用于支持多语言。字符串可缺省,缺省值为空
icon标识当前 ExtensionAbility 组件的图标,取值为资源文件的索引。字符串可缺省,缺省值为空
label标识当前 ExtensionAbility 组件对用户显示的名称,取值为该名称的资源索引,以支持多语言,字符串长度不超过 255 字节。字符串可缺省,缺省值为空
type标识当前 ExtensionAbility 组件的类型。字符串不可缺省
permissions标识当前 ExtensionAbility 组件的权限信息。当其他应用访问该 ExtensionAbility 时,需要申请相应的权限。一个数组元素为一个权限名称,不超过 255 字节。字符串数组可缺省,缺省值为空
appIdentifierAllowList标识允许启动此 ExtensionAbility 的应用程序列表。一个数组元素为一个应用程序的 appIdentifier。仅当 ExtensionAbility 组件的 type 为 appService 和 embeddedUI 时支持配置该标签。从 API version 20 开始支持。从 API 版本 26.0.0 开始,embeddedUI 支持配置该标签且可配置 allow_all。字符串数组可缺省,缺省值为空
readPermission标识读取当前 ExtensionAbility 组件数据所需的权限,取值为长度不超过 255 字节的字符串。仅当预置的系统应用 ExtensionAbility 的 type 配置为 dataShare 时,该标签生效。字符串可缺省,缺省值为空
writePermission标识向当前 ExtensionAbility 组件写数据所需的权限,取值为长度不超过 255 字节的字符串。仅当预置的系统应用 ExtensionAbility 的 type 配置为 dataShare 时,该标签生效。字符串可缺省,缺省值为空
uri标识当前 ExtensionAbility 组件提供的数据 URI,取值为长度不超过 255 字节的字符数组,用反向域名的格式表示。该标签在 type 为 dataShare 类型的 ExtensionAbility 时不可缺省。字符串可缺省,缺省值为空
skills标识当前 ExtensionAbility 组件能够接收的 Want 的特征集。数组可缺省,缺省值为空
metadata标识当前 ExtensionAbility 组件的元信息。该标签在 type 为 form 时不可缺省,且必须存在一个 name 为 ohos.extension.form 的对象值,其对应的 resource 值不能缺省。对象数组可缺省,缺省值为空
exported标识当前 ExtensionAbility 组件是否可以被其他应用调用。true 表示可以被其他应用调用,false 表示不可以被其他应用调用,包括无法被 aa 工具命令拉起应用。布尔值可缺省,缺省值为 false
extensionProcessMode标识当前 ExtensionAbility 组件的进程模型。支持 instance、type、bundle、runWithMainProcess。字符串可缺省,缺省值为 bundle
dataGroupIds标识当前 ExtensionAbility 组件的 dataGroupId 集合。字符串数组可缺省,缺省值为空
process标识组件的进程名称,只有 type 为 embeddedUI 时可以配置该标签。仅在 PC/2in1 和 Tablet 设备上生效。从 API version 14 开始支持。字符串可缺省,缺省值为空
isolationProcess标识 ExtensionAbility 组件能否运行在独立的进程中。仅当 ExtensionAbility 组件的 type 为 sys/commonUI 时该标签配置生效。从 API version 20 开始支持。布尔值可缺省,缺省值为 false
skipAbilityStageLifecycle标识 type 为 backup 的 ExtensionAbility 组件是否跳过 AbilityStage 生命周期回调。从 API 版本 26.0.0 开始支持。布尔值可缺省,缺省值为 false

extensionAbilities 示例:

{
  "extensionAbilities": [
    {
      "name": "FormName",
      "srcEntry": "./ets/form/MyForm.ets",
      "icon": "$media:icon",
      "label": "$string:extension_name",
      "description": "$string:form_description",
      "type": "form",
      "permissions": ["ohos.permission.ACCESS_BLUETOOTH"],
      "exported": true,
      "uri": "scheme://authority/path/query",
      "skills": [
        {
          "actions": [],
          "entities": [],
          "uris": [],
          "permissions": []
        }
      ],
      "metadata": [
        {
          "name": "ohos.extension.form",
          "resource": "$profile:form_config"
        }
      ],
      "extensionProcessMode": "instance",
      "dataGroupIds": [
        "testGroupId1"
      ]
    }
  ]
}

3.10 type 标签

标识当前 ExtensionAbility 组件的类型,支持的取值如下:

标签取值含义
form卡片的 ExtensionAbility。
workScheduler延时任务的 ExtensionAbility。
inputMethod输入法的 ExtensionAbility。
share提供内容分享处理功能的 ShareExtensionAbility。
service后台运行的 service 组件,三方配置无法安装应用,需要申请特权。
accessibility辅助能力的 ExtensionAbility。
fileAccess公共数据访问的 ExtensionAbility,允许应用程序提供文件和文件夹给文件管理类应用展示。三方应用配置不生效,当前配置仅在系统应用中有效。
dataShare数据共享的 ExtensionAbility,三方配置无法安装应用,需要申请特权。
staticSubscriber静态广播的 ExtensionAbility,三方应用配置不生效,当前配置仅在系统应用中有效。
fileShare文件共享的 ExtensionAbility。
vpn为开发者提供三方 VPN 能力的 ExtensionAbility。
wallpaper壁纸的 ExtensionAbility。
backup数据备份的 ExtensionAbility。
enterpriseAdmin企业设备管理的 ExtensionAbility。企业设备管理应用必须拥有此类型的 ExtensionAbility。
window该 ExtensionAbility 会在启动过程中创建一个 window,为开发者提供界面开发。三方应用配置不生效,当前配置仅在系统应用中有效。
thumbnail获取文件缩略图的 ExtensionAbility。预留字段,暂不支持使用。
preview该 ExtensionAbility 会将文件解析后在一个窗口中显示。预留字段,暂不支持使用。
print打印框架的 ExtensionAbility。
push推送的 ExtensionAbility。
driver驱动框架的 ExtensionAbility。
remoteNotification远程通知的 ExtensionAbility。
remoteLocation远程定位的 ExtensionAbility。
voip网络音视频通话的 ExtensionAbility。
action自定义操作业务模板的 ExtensionAbility。
adsService广告业务的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
embeddedCashier支付业务的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效,仅支持 TV 设备使用。
embeddedUI嵌入式 UI 扩展能力,提供跨进程界面嵌入的能力。
insightIntentUI为开发者提供能被系统入口调用,以窗口形态呈现内容的扩展能力。
ads广告业务的 ExtensionAbility。仅支持设备厂商使用。
photoEditor图片编辑业务的 ExtensionAbility。
appAccountAuthorization应用账号授权扩展能力的 ExtensionAbility。
autoFill/password用于账号和密码自动填充业务的 ExtensionAbility。
hms/account应用账号管理能力的 ExtensionAbility。
sysDialog/atomicServicePanel提供构建元服务服务面板的基础能力的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysDialog/userAuth本地用户鉴权的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysDialog/common通用弹窗的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysDialog/power关机重启弹窗的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysDialog/print打印模态弹窗的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysDialog/meetimeCall畅连通话的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysDialog/meetimeContact畅连联系人的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysDialog/meetimeMessage畅连消息的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/meetimeContact畅连联系人列表的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/meetimeCallLog畅连通话记录列表的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/share系统分享的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/mediaControl投播组件的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/photoPicker三方应用通过对应的 UIExtensionType 拉起图库 picker 界面。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/filePicker文件下载弹窗的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/audioPicker音频管理弹窗的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/photoEditor图片编辑弹窗的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sys/commonUI非通用的 ExtensionAbility,提供业务属性强相关的嵌入式显示或弹框。三方应用配置不生效,当前配置仅在系统应用中有效。
autoFill/smart用于情景化场景自动填充业务的 ExtensionAbility。
modularObject模块化对象管理的 ExtensionAbility。从 API 版本 26.0.0 开始支持。
uiService弹窗服务组件,在启动过程中会创建 Window,并支持双向通信。三方应用配置不生效,当前配置仅在系统应用中有效。
recentPhoto最近照片推荐的 ExtensionAbility。
fence地理围栏的 ExtensionAbility。
callerInfoQuery企业联系人查询的 ExtensionAbility。
assetAcceleration资源预下载的 ExtensionAbility。
formEdit卡片编辑的 ExtensionAbility。
distributed分布式扩展的 ExtensionAbility。
liveForm互动卡片的 ExtensionAbility。
appService为应用提供后台服务相关扩展能力 AppServiceExtensionAbility。
webNativeMessaging为开发者提供 Web 消息通信能力的 ExtensionAbility。
faultLog故障延迟通知的 ExtensionAbility。
notificationSubscriber提供通知订阅相关功能的 ExtensionAbility。
crypto外部密钥管理扩展的 ExtensionAbility。
partnerAgent基于蓝牙通信技术,提供设备发现与设备下线的通知功能的 ExtensionAbility。
contentEmbed对象插入编辑框架的 ExtensionAbility。
selection划词扩展的 ExtensionAbility。从 API version 20 开始,仅支持系统应用配置;从 API version 24 开始,支持三方应用配置。
awc/webpage通用网页浏览的 ExtensionAbility。
awc/newsfeed信息流资讯业务的 ExtensionAbility。
assetCache提供通用应用数据缓存能力的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
statusBarView状态栏开放服务的 ExtensionAbility。
liveViewLockScreen实况窗锁屏沉浸态的 ExtensionAbility。
liveViewCard实况窗卡片自定义扩展区的 ExtensionAbility。从 API 版本 26.0.0 开始支持。
accountLogout华为账号登出能力的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/navigation拉起系统导航类应用面板的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sysPicker/appSelector拉起系统应用选择弹框的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
sys/visualExtension智能图片类控件视觉搜索的 ExtensionAbility。三方应用配置不生效,当前配置仅在系统应用中有效。
screenTimeGuard屏幕时间守护开放服务的 ExtensionAbility。

3.11 shortcuts 标签

shortcuts 标识应用的快捷方式信息。标签值为数组,包含四个子标签 shortcutId、label、icon、wants。

metadata 中指定 shortcut 信息,其中:

  • name:指定 shortcuts 的名称,使用 ohos.ability.shortcuts 作为 shortcuts 信息的标识。
  • resource:指定 shortcuts 信息的资源位置。

说明:桌面展示快捷方式的数量有上限要求,最多展示 4 个。

属性名称含义类型是否可缺省
shortcutId标识快捷方式的 ID,取值为长度不超过 63 字节的字符串。不支持通过资源索引的方式配置该标签。字符串不可缺省
label标识快捷方式的标签信息,即快捷方式对外显示的文字描述信息。取值为长度不超过 255 字节的字符串,可以是描述性内容,也可以是标识 label 的资源索引。字符串可缺省,缺省值为空
icon标识快捷方式的图标,取值为资源文件的索引。推荐使用分层图标:前景图图标显示大小为 450*450px,资源大小为 1024*1024px 的透明图层;背景图大小为 1024*1024px。字符串可缺省,缺省值为空
visible标识快捷方式是否显示,取值为 true 时显示快捷方式,取值为 false 时不显示快捷方式。从 API version 20 开始支持该标签。布尔值可缺省,缺省为 true
wants标识快捷方式内定义的目标 wants 信息集合,在调用 launcherBundleManager 的 startShortcut 接口时,会拉起 wants 标签里的第一个目标组件,推荐只配置一个 wants 元素。对象可缺省,缺省为空

在 /resources/base/profile/ 目录下配置 shortcuts_config.json 配置文件:

{
  "shortcuts": [
    {
      "shortcutId": "id_test1",
      "label": "$string:shortcut",
      "icon": "$media:aa_icon",
      "visible": true,
      "wants": [
        {
          "bundleName": "com.ohos.hello",
          "moduleName": "entry",
          "abilityName": "EntryAbility",
          "parameters": {
            "testKey": "testValue"
          }
        }
      ]
    }
  ]
}

在 module.json5 配置文件的 abilities 标签中,针对需要添加快捷方式的 UIAbility 进行配置 metadata 标签,使 shortcut 配置文件对该 UIAbility 生效:

{
  "module": {
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "ohos.want.action.home"
            ]
          }
        ],
        "metadata": [
          {
            "name": "ohos.ability.shortcuts",
            "resource": "$profile:shortcuts_config"
          }
        ]
      }
    ]
  }
}

3.12 wants 标签

此标签用于标识快捷方式内定义的目标 wants 信息集合。

属性名称含义类型是否可缺省
bundleName表示快捷方式的目标包名。字符串可缺省
moduleName表示快捷方式的目标模块名。字符串可缺省
abilityName表示快捷方式的目标组件名。字符串可缺省
parameters表示拉起快捷方式时的自定义数据,仅支持配置字符串类型的数据。其中键值均最大支持 1024 长度的字符串。对象可缺省

示例:

{
  "wants": [
    {
      "bundleName": "com.ohos.hello",
      "moduleName": "entry",
      "abilityName": "EntryAbility",
      "parameters": {
        "testKey": "testValue"
      }
    }
  ]
}

3.13 distributionFilter 标签

该标签用于定义 HAP 对应的细分设备规格的分发策略,以便在应用市场进行云端分发应用包时做精准匹配。

说明:

  • 该标签从 API version 10 及以后版本开始生效,API version 9 及以前版本使用 distroFilter 标签。
  • 适用场景:当一个工程中存在多个 Entry,且多个 Entry 配置的 deviceTypes 存在交集时,则需要通过该标签进行区分。
  • 配置规则:该标签支持配置四个属性,包括屏幕形状 screenShape、窗口分辨率 screenWindow、屏幕像素密度 screenDensity、设备所在国家与地区 countryCode。
  • 在分发应用包时,通过 deviceTypes 与这四个属性的匹配关系,唯一确定一个用于分发到设备的 HAP。
  • 如果需要配置该标签,则至少包含一个属性。
  • 如果一个 Entry 中配置了任意一个或多个属性,则其他 Entry 也必须包含相同的属性。
  • screenShape 和 screenWindow 属性仅适用于轻量级智能穿戴设备。
  • 配置方式:该标签需要配置在 /resources/base/profile 资源目录下,并在 metadata 的 resource 标签中引用。
属性名称含义数据类型是否可缺省
screenShape标识屏幕形状的支持策略。对象数组可缺省,缺省值为空
screenWindow标识应用运行时的窗口分辨率的支持策略。对象数组可缺省,缺省值为空
screenDensity标识屏幕的像素密度的支持策略。对象数组可缺省,缺省值为空
countryCode标识国家与地区的支持策略,取值参考 ISO-3166-1 标准。支持多个国家和地区枚举定义。对象数组可缺省,缺省值为空

screenShape 标签:

属性名称含义数据类型是否可缺省
policy标识条件属性的过滤规则。exclude 表示需要排除的 value 属性;include 表示需要包含的 value 属性。字符串不可缺省
value支持的取值为 circle、rect。字符串数组不可缺省

screenWindow 标签:

属性名称含义数据类型是否可缺省
policy标识条件属性的过滤规则。当前取值仅支持 include。字符串不可缺省
value单个字符串的取值格式为“宽 * 高”,取值为整数像素值,例如 454 * 454。字符串数组不可缺省

screenDensity 标签:

属性名称含义数据类型是否可缺省
policy标识条件属性的过滤规则。exclude 表示需要排除的 value 属性;include 表示需要包含的 value 属性。字符串不可缺省
value标识屏幕的像素密度。支持 sdpi、mdpi、ldpi、xldpi、xxldpi、xxxldpi。字符串数组不可缺省

countryCode 标签:

属性名称含义数据类型是否可缺省
policy标识条件属性的过滤规则。exclude 表示需要排除的 value 属性;include 表示需要包含的 value 属性。字符串不可缺省
value标识应用需要分发的国家地区码。字符串数组不可缺省

示例:

在开发视图的 resources/base/profile 下定义配置文件,文件名为 distributionFilter_config.json,文件名可以自定义。

{
  "distributionFilter": {
    "screenShape": {
      "policy": "include",
      "value": [
        "circle",
        "rect"
      ]
    },
    "screenWindow": {
      "policy": "include",
      "value": [
        "454*454",
        "466*466"
      ]
    },
    "screenDensity": {
      "policy": "exclude",
      "value": [
        "ldpi",
        "xldpi"
      ]
    },
    "countryCode": {
      "policy": "include",
      "value": [
        "CN"
      ]
    }
  }
}

在 module.json5 配置文件的 module 标签中定义 metadata 信息:

{
  "module": {
    "metadata": [
      {
        "name": "ohos.module.distribution",
        "resource": "$profile:distributionFilter_config"
      }
    ]
  }
}

3.14 testRunner 标签

此标签用于支持对测试框架的配置。

属性名称含义数据类型是否可缺省
name标识测试框架对象名称,取值为长度不超过 255 字节的字符串。字符串不可缺省
srcPath标识测试框架代码路径,取值为长度不超过 255 字节的字符串。字符串不可缺省

示例:

{
  "module": {
    "testRunner": {
      "name": "myTestRunnerName",
      "srcPath": "etc/test/TestRunner.ts"
    }
  }
}

3.15 atomicService 标签

此标签用于支持对元服务的配置。此标签仅在 app.json5 中将 bundleType 设置为 atomicService 时生效。

属性名称含义数据类型是否可缺省
preloads标识元服务中预加载列表。对象数组可缺省,缺省值为空
resizeable标识元服务是否支持自适应窗口大小显示。当标签配置成 true 时,平板横屏模式切换或者折叠屏展开关闭,会自适应屏幕窗口的宽高,使得屏幕显示正常。从 API version 20 开始支持。布尔值可缺省,缺省值为 false

preloads 标签:

属性名称含义数据类型是否可缺省
moduleName标识元服务中当前模块被加载时,需预加载的模块名。不能配置自身 module name,且必须有对应的模块,取值为长度不超过 31 字节的字符串。字符串不可缺省

示例:

{
  "module": {
    "atomicService": {
      "preloads": [
        {
          "moduleName": "feature"
        }
      ],
      "resizeable": true
    }
  }
}

3.16 dependencies 标签

此标签标识模块运行时依赖的共享库列表。

属性名称含义数据类型是否可缺省
bundleName标识当前模块依赖的共享包包名。取值为长度 7~128 字节的字符串。字符串可缺省,缺省值为空
moduleName标识当前模块依赖的共享包模块名。取值为长度不超过 31 字节的字符串。字符串不可缺省
versionCode标识当前模块依赖的共享包的版本号。取值范围为 0~2147483647。数值可缺省,缺省值为空

示例:

{
  "module": {
    "dependencies": [
      {
        "bundleName": "com.share.library",
        "moduleName": "library",
        "versionCode": 10001
      }
    ]
  }
}

3.17 proxyData 标签

此标签标识模块提供的数据代理列表,仅限 entry 和 feature 配置。

属性名称含义数据类型是否可缺省
uri标识用于访问该数据代理的 URI,不同的数据代理配置的 URI 不可重复,且需要满足 datashareproxy://当前应用包名/xxx 的格式。取值为长度不超过 255 字节的字符串。字符串不可缺省
requiredReadPermission标识从该数据代理中读取数据所需要的权限。若不配置,则其他应用无法使用该代理。字符串可缺省,缺省值为空
requiredWritePermission标识向该数据代理中写入数据所需要的权限。若不配置,则其他应用无法使用该代理。字符串可缺省,缺省值为空
metadata标识该数据代理的元信息,只支持配置 name 和 resource 标签。对象可缺省,缺省值为空

示例:

{
  "module": {
    "proxyData": [
      {
        "uri": "datashareproxy://ohos.app.hap.myapplication/event/Meeting",
        "requiredReadPermission": "ohos.permission.SYSTEM_FLOAT_WINDOW",
        "requiredWritePermission": "ohos.permission.SYSTEM_FLOAT_WINDOW",
        "metadata": {
          "name": "datashare_metadata",
          "resource": "$profile:datashare"
        }
      }
    ]
  }
}

3.18 routerMap 标签

此标签标识模块配置的路由表的路径。routerMap 配置文件描述模块的路由表信息,routerMap 标签的值为数组类型。

属性名称含义数据类型是否可缺省
name标识跳转页面的名称。取值为长度不超过 1023 字节的字符串。字符串不可缺省
pageSourceFile标识页面在模块内的路径。取值为长度不超过 255 字节的字符串。字符串不可缺省
buildFunction标识被 @Builder 修饰的函数,该函数描述页面的 UI。取值为长度不超过 1023 字节的字符串。字符串不可缺省
data标识字符串类型的自定义数据,开发者自行扩展能力,可以通过 HapModuleInfo 对象中 routerMap 集合对象下的 data 获取标签内容,该标签已由系统解析,无需开发者自行解析。每个自定义数据字符串取值不超过 128 字节。对象可缺省,缺省值为空
customData标识任意类型的自定义数据,开发者自行扩展能力,可以通过 HapModuleInfo 对象中 routerMap 集合对象下的 customData 获取标签内容,开发者需要调用 JSON.parse 函数解析出具体内容。总长度不超过 4096 字节。对象可缺省,缺省值为空

示例:

在开发视图的 resources/base/profile 下面定义配置文件,文件名可以自定义,例如 router_map.json。

{
  "routerMap": [
    {
      "name": "DynamicPage1",
      "pageSourceFile": "src/main/ets/pages/pageOne.ets",
      "buildFunction": "myFunction",
      "customData": {
        "stringKey": "data1",
        "numberKey": 123,
        "booleanKey": true,
        "objectKey": {
          "name": "test"
        },
        "arrayKey": [
          {
            "id": 123
          }
        ]
      }
    },
    {
      "name": "DynamicPage2",
      "pageSourceFile": "src/main/ets/pages/pageTwo.ets",
      "buildFunction": "myBuilder",
      "data": {
        "key1": "data1",
        "key2": "data2"
      }
    }
  ]
}

在 module.json5 配置文件的 module 标签中定义 routerMap 标签,指向定义的路由表配置文件,例如:

{
  "module": {
    "routerMap": "$profile:router_map"
  }
}

3.19 data 标签与 customData 标签

data 标签用于支持在路由表中配置自定义的字符串数据。

{
  "routerMap": [
    {
      "name": "DynamicPage",
      "pageSourceFile": "src/main/ets/pages/pageOne.ets",
      "buildFunction": "myBuilder",
      "data": {
        "key1": "data1",
        "key2": "data2"
      }
    }
  ]
}

customData 标签用于支持在路由表中配置自定义数据。customData 对象内部,可以配置任意类型的自定义数据。

{
  "routerMap": [
    {
      "name": "DynamicPage",
      "pageSourceFile": "src/main/ets/pages/pageOne.ets",
      "buildFunction": "myBuilder",
      "customData": {
        "stringKey": "data1",
        "numberKey": 123,
        "booleanKey": true,
        "objectKey": {
          "name": "test"
        },
        "arrayKey": [
          {
            "id": 123
          }
        ]
      }
    }
  ]
}

3.20 appEnvironments 标签

此标签标识模块配置的应用环境变量。

属性名称含义数据类型是否可缺省
name标识环境变量的变量名称。取值为长度不超过 4096 字节的字符串。字符串可缺省,缺省值为空
value标识环境变量的值。取值为长度不超过 4096 字节的字符串。字符串可缺省,缺省值为空

示例:

{
  "module": {
    "appEnvironments": [
      {
        "name": "name1",
        "value": "value1"
      }
    ]
  }
}

3.21 hnpPackages 标签

该标签标识应用包含的 Native 软件包信息。

属性名称含义数据类型是否可缺省
package标识 Native 软件包名称。字符串不可缺省
type标识 Native 软件包类型。支持 public、private。字符串不可缺省
independentSign标识 Native 软件包是否支持独立签名。从 API version 23 开始支持。布尔值可缺省,缺省值为 false

示例:

{
  "module": {
    "hnpPackages": [
      {
        "package": "hnpsample.hnp",
        "type": "public",
        "independentSign": true
      }
    ]
  }
}

3.22 startWindow 标签

该标签指向一个 profile 文件资源,用于指定 UIAbility 组件启动页面的配置文件。在开发视图的 resources/base/profile 下面定义配置文件 start_window.json。如果配置了该标签,startWindowIcon 和 startWindowBackground 标签将不生效。

从 API version 19 开始,支持使用该字段配置增强启动页。

属性名称含义数据类型是否可缺省
startWindowType标识当前 UIAbility 组件是否隐藏启动页。支持 REQUIRED_SHOW、REQUIRED_HIDE、OPTIONAL_SHOW。从 API version 20 开始支持。字符串可缺省,缺省值为 REQUIRED_SHOW
startWindowAppIcon标识当前 UIAbility 组件启动页面图标资源文件的索引。从 API version 19 开始支持。字符串可缺省,缺省值为空
startWindowIllustration标识当前 UIAbility 组件启动页面插画资源文件的索引。从 API version 19 开始支持。字符串可缺省,缺省值为空
startWindowBrandingImage标识当前 UIAbility 组件启动页面品牌标识资源文件的索引。从 API version 19 开始支持。字符串可缺省,缺省值为空
startWindowBackgroundColor标识当前 UIAbility 组件启动页面背景颜色资源文件的索引。从 API version 19 开始支持。字符串不可缺省
startWindowBackgroundImage标识当前 UIAbility 组件启动页面背景图片资源文件的索引。从 API version 19 开始支持。字符串可缺省,缺省值为空
startWindowBackgroundImageFit标识当前 UIAbility 组件启动页面背景图像适应方式。支持 Contain、Cover、Auto、Fill、ScaleDown、None。从 API version 19 开始支持。字符串可缺省,缺省值为 Cover
startWindowColorModeType标识当前 UIAbility 组件启动页深浅色模式,仅作用于同进程间拉起场景。支持 FOLLOW_SYSTEM、FOLLOW_APPLICATION。从 API version 20 开始支持。字符串可缺省,缺省值为 FOLLOW_SYSTEM

resources/base/profile 路径下的 start_window.json 资源文件示例:

{
  "startWindowType": "REQUIRED_SHOW",
  "startWindowColorModeType": "FOLLOW_SYSTEM",
  "startWindowAppIcon": "$media:start_window_app_icon",
  "startWindowIllustration": "$media:start_window_illustration",
  "startWindowBrandingImage": "$media:start_window_branding_image",
  "startWindowBackgroundColor": "$color:start_window_back_ground_color",
  "startWindowBackgroundImage": "$media:start_window_back_ground_image",
  "startWindowBackgroundImageFit": "Cover"
}

3.23 systemTheme 标签

该标签指向一个 profile 文件资源,用于指定当前应用使用的系统主题配置文件。从 API version 20 开始支持该标签。

示例:

{
  "module": {
    "systemTheme": "$profile:theme_config"
  }
}

在开发视图的 resources/base/profile 下面定义配置文件 theme_config.json,其中文件名可自定义为 theme_config 开头文件名,例如 theme_config、theme_config_1。需要和 systemTheme 标签指定的信息对应。

属性名称含义数据类型是否可缺省
systemTheme标识当前应用使用的系统主题,取值为引用系统主题名称的枚举。枚举支持的取值如下:$ohos:theme:ohos_theme 系统默认的主题。字符串不可缺省

resources/base/profile 路径下的 theme_config.json 资源文件示例:

{
  "systemTheme": "$ohos:theme:ohos_theme"
}

3.24 requiredDeviceFeatures 标签

属性名称含义数据类型是否可缺省
phone手机设备需要支持的设备特性。当前支持 large_screen、paint。字符串数组可缺省,缺省值为空数组
2in1PC/2in1 设备需要支持的设备特性。当前支持 paint。从 API version 23 开始支持使用该字段配置。字符串数组可缺省,缺省值为空数组
wearable智能表需要支持的设备特性。当前支持 child。从 API version 24 开始支持使用该字段配置。字符串数组可缺省,缺省值为空数组

示例:

{
  "module": {
    "requiredDeviceFeatures": {
      "phone": [
        "large_screen"
      ],
      "2in1": [
        "paint"
      ]
    }
  }
}

3.25 executableBinaryPaths 标签

标识应用内可执行二进制文件的路径信息,仅在 PC/2in1 设备上生效。从 API version 24 开始支持该标签。

属性名称含义数据类型是否可缺省
path标识可执行文件的路径。该路径是相对路径,必须以 libs/{abi}/ 为前缀,其中 {abi} 为设备 CPU 架构类型(如 arm64-v8a、x86_64、armeabi-v7a),即可执行二进制文件必须配置在 libs/{abi}/ 目录下。字符串不可缺省

示例:

{
  "module": {
    "executableBinaryPaths": [
      {
        "path": "libs/arm64-v8a/test.bin"
      }
    ]
  }
}

3.26 skillProfiles 标签

从 API 版本 26.0.0 开始,新增 skillProfiles 标签。该标签标识当前模块的技能配置信息,用于定义 AI 代理的技能能力。通过定义技能,应用可以将 AI 代理的能力暴露给系统或其他应用,使其能够被其他应用发现和调用。仅 type 取值为 entry、feature、shared、skill 的模块配置该标签生效。

属性名称含义数据类型是否可缺省
name标识技能的名称,确保该名称在当前模块中唯一。命名规则:仅允许使用小写字母、数字和连字符 -;必须以小写字母或数字开头;必须以小写字母或数字结尾;不能以连字符开头或结尾,且不得出现连续的连字符;最大长度为 64 字节。字符串不可缺省
abilityName标识与该技能关联的组件名称,必须配置为 abilities 标签下的 UIAbility 或 extensionAbilities 标签下 type 为 service 的 ServiceExtension 组件名称。取值为长度不超过 127 字节的字符串,以字母开头,可包含字母、数字、下划线或点号。该字段仅适用于 entry、feature、shared 类型的模块。对于 skill 类型的模块,不支持该字段。字符串可缺省,缺省值为入口 Ability 名称。如果没有入口 Ability,则取值为空字符串
srcEntries标识实现技能的代码文件路径列表,指向技能实现逻辑的 .ets 文件。数组中的每个元素都是相对于当前模块的 skills 目录的文件路径。srcEntries 指定的 .ets 文件应放置在 skills/{skill-name}/scripts 目录下,其中 {skill-name} 为 skillProfiles 中配置的技能名称。最多支持 100 个文件路径。字符串数组可缺省,缺省值为空
permissions标识调用该技能所需要的权限列表。当其他应用调用该技能时,需要申请相应的权限。一个数组元素为一个权限名称,不超过 255 字节。字符串数组可缺省,缺省值为空
version标识技能的版本号,格式为主版本号.次版本号.补丁版本号,其中各版本号均为非负整数,且不能以 0 开头(除非本身为 0)。示例:"1.0.1"、"0.1.1"。字符串不可缺省
visibility标识技能的可见性,用于控制技能的可见范围。支持 private、system、public。缺省值为 system。字符串可缺省,缺省值为 system

示例:

{
  "module": {
    "skillProfiles": [
      {
        "name": "my-skill",
        "abilityName": "EntryAbility",
        "version": "1.0.0",
        "visibility": "public",
        "srcEntries": [
          "../../my-skill/scripts/Test.ets"
        ],
        "permissions": []
      }
    ]
  }
}

四、总结

鸿蒙应用开发配置文件主要分为应用级配置文件和模块级配置文件:

  • app.json5:位于 工程名称/AppScope/app.json5,是应用级配置文件,负责应用全局信息、版本、图标、设备特殊配置、多开模式、环境变量、字体大小配置、备选图标等。
  • module.json5:位于 工程名称/模块名称/src/main/module.json5,是模块级配置文件,负责 Module 基本信息、设备类型、页面、UIAbility、ExtensionAbility、权限、快捷方式、路由表、元服务、依赖共享库、数据代理、技能配置等。

在 Stage 模型下,每个工程必须包含一个 app.json5,每个模块必须包含一个 module.json5。编译后,单个模块的编译产物中,app.json5 和 module.json5 的内容会合并到一个 module.json 文件中。

配置文件中字段可以重复,以最后一个配置为准;示例代码直接拷贝到工程中可能编译不通过,需要根据需求配置,并确保 $ 引用的资源文件存在或替换为实际资源文件。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐