HarmonyOS实战开发:module.json5配置文件(Stage模型)

打印 上一主题 下一主题

主题 1000|帖子 1000|积分 3000

配置文件示例

先通过一个示例,团体认识一下module.json5配置文件。
  1. {
  2.   "module": {
  3.     "name": "entry",
  4.     "type": "entry",
  5.     "description": "$string:module_desc",
  6.     "mainElement": "EntryAbility",
  7.     "deviceTypes": [
  8.       "default",
  9.       "tablet"
  10.     ],
  11.     "deliveryWithInstall": true,
  12.     "installationFree": false,
  13.     "pages": "$profile:main_pages",
  14.     "virtualMachine": "ark",
  15.     "metadata": [
  16.       {
  17.         "name": "string",
  18.         "value": "string",
  19.         "resource": "$profile:distributionFilter_config"
  20.       }
  21.     ],
  22.     "abilities": [
  23.       {
  24.         "name": "EntryAbility",
  25.         "srcEntry": "./ets/entryability/EntryAbility.ts",
  26.         "description": "$string:EntryAbility_desc",
  27.         "icon": "$media:icon",
  28.         "label": "$string:EntryAbility_label",
  29.         "startWindowIcon": "$media:icon",
  30.         "startWindowBackground": "$color:start_window_background",
  31.         "exported": true,
  32.         "skills": [
  33.           {
  34.             "entities": [
  35.               "entity.system.home"
  36.             ],
  37.             "actions": [
  38.               "ohos.want.action.home"
  39.             ]
  40.           }
  41.         ]
  42.       }
  43.     ],
  44.     "requestPermissions": [
  45.       {
  46.         "name": "ohos.abilitydemo.permission.PROVIDER",
  47.         "reason": "$string:reason",
  48.         "usedScene": {
  49.           "abilities": [
  50.             "FormAbility"
  51.           ],
  52.           "when": "inuse"
  53.         }
  54.       }
  55.     ],
  56.     "targetModuleName": "feature",
  57.     "targetPriority": 50
  58.   }
  59. }
复制代码
配置文件标签

module.json5配置文件包含以下标签。
表1 module.json5配置文件标签阐明
属性名称含义数据范例是否可缺省名字标识当前Module的名称,确保该名称在整个应用中唯一。取值为长度不超过31字节的字符串,不支持中文。
应用升级时答应修改该名称,但需要应用适配Module相关数据目录的迁移,详见文件管理接口。字符串该标签不可缺省。范例标识当前Module的范例。支持的取值如下:
- entry:应用的主模块。
- feature:应用的动态特性模块。
- har:静态共享包模块。
- shared:动态共享包模块。字符串该标签不可缺省。src条目标识当前Module所对应的代码路径,取值为长度不超过127字节的字符串。字符串该标签可缺省,缺省值为空。描述标识当前Module的描述信息,取值为长度不超过255字节的字符串,可以接纳字符串资源索引格式。字符串该标签可缺省,缺省值为空。过程标识当前Module的历程名,取值为长度不超过31字节的字符串。如果在HAP标签下配置了process,则该应用的全部UIAbility、DataShareExtensionAbility、ServiceExtensionAbility都运行在该历程中。
阐明:
仅支持体系应用配置,三方应用配置不生效。字符串该标签可缺省,缺省为app.json5文件下app标签下的bundleName。mainElement标识当前Module的入口UIAbility名称或者ExtensionAbility名称,取值为长度不超过255字节的字符串。字符串该标签可缺省,缺省值为空。deviceTypes标识当前Module可以运行在哪类设备上。字符串数组该标签不可缺省。deliveryWithInstall标识当前Module是否在用户主动安装的时间安装,即该Module对应的HAP是否跟随应用一起安装。仅支持原子化服务。
- true:主动安装时安装。
- false:主动安装时不安装。布尔值该标签不可缺省。installationFree标识当前Module是否支持免安装特性。
- true:表示支持免安装特性,且符合免安装束缚。
- false:表示不支持免安装特性。
阐明:
- 当应用的entry范例Module的该字段配置为true时,该应用的feature范例的该字段也需要配置为true。
- 当应用的entry范例Module的该字段配置为false时,该应用的feature范例的该字段可根据业务需求配置true或false。布尔值该标签不可缺省。virtualMachine标识当前Module运行的目标虚拟机范例,供云端分发使用,如应用市场和分发中央。如果目标虚拟机范例为ArkTS引擎,则其值为“ark+版本号”。字符串该标签由IDE构建HAP的时间自动插入。pages标识当前Module的profile资源,用于枚举每个页面信息,取值为长度不超过255字节的字符串。字符串在有UIAbility的场景下,该标签不可缺省。metadata标识当前Module的自定义元信息,可通过资源引用的方式配置distributionFilter、shortcuts等信息。只对当前Module、UIAbility、ExtensionAbility生效。对象数组该标签可缺省,缺省值为空。abilities标识当前Module中UIAbility的配置信息,只对当前UIAbility生效。对象数组该标签可缺省,缺省值为空。extensionAbilities标识当前Module中ExtensionAbility的配置信息,只对当前ExtensionAbility生效。对象数组该标签可缺省,缺省值为空。requestPermissions标识当前应用运行时需向体系申请的权限聚集。对象该标签可缺省,缺省值为空。testRunner标识用于测试当前Module的测试框架的配置。对象该标签可缺省,缺省值为空。原子服务标识当前应用是原子化服务时,有关原子化服务的相关配置。对象该标签可缺省,缺省值为空。依靠标识当前模块运行时依靠的共享库列表。对象数组该标签可缺省,缺省值为空。targetModuleName标识当前包所指定的目标模块,确保该名称在整个应用中唯一。取值为长度不超过31字节的字符串,不支持中文。配置该字段的Module具有overlay特性。字符串该标签可缺省,缺省值为空。targetPriority标识当前Module的优先级,取值范围为1~100。配置targetModuleName字段之后,才需要配置该字段。整型数值该标签可缺省,缺省值为1。代理数据标识当前Module提供的数据代理列表。对象数组该标签可缺省,缺省值为空。隔离模式标识当前Module的多历程配置项。支持的取值如下:
- nonisolationFirst:优先在非独立历程中运行。
- isolationFirst:优先在独立历程中运行。
- isolationOnly:只在独立历程中运行。
- nonisolationOnly:只在非独立历程中运行。字符串该标签可缺省,缺省值为nonisolationFirst。生成构建哈希标识当前HAP/HSP是否由打包工具生成哈希值。当配置为true时,如果体系OTA升级时应用versionCode保持不变,可根据哈希值判断应用是否需要升级。
该字段仅在app.json5文件中的generateBuildHash字段为false时使能。**
阐明:**
该字段仅对预置应用生效。布尔值该标签可缺省,缺省值为false。压缩 NativeLibs标识libs库是否以压缩存储的方式打包到HAP。
- true:libs库以压缩方式存储。
- false:libs库以不压缩方式存储。布尔值该标签可缺省,缺省值为true。lib隔离用于区分同应用不同HAP下的.so文件,以防止.so辩论。
- true:当前HAP的.so文件会储存在libs目录中以Module名命名的路径下。
- false:当前HAP的.so文件会直接储存在libs目录中。布尔值该标签可缺省,缺省值为false。文件上下文菜单标识当前HAP的右键菜单配置项。字符串该标签可缺省,缺省值为空。 deviceTypes标签

表2 deviceTypes标签阐明
设备范例枚举值阐明平板片-智慧屏电视-智能手表耐磨体系能力较丰富的手表,具备电话功能。车机汽车-默认设备违约能够使用全部体系能力的设备。 deviceTypes示例:
  1. {
  2.   "module": {
  3.     "name": "myHapName",
  4.     "type": "feature",
  5.     "deviceTypes" : [
  6.        "tablet"
  7.     ]
  8.   }
  9. }
复制代码
pages标签

该标签是一个profile文件资源,用于指定描述页面信息的配置文件。
  1. {
  2.   "module": {
  3.     // ...
  4.     "pages": "$profile:main_pages", // 通过profile下的资源文件配置
  5.   }
  6. }
复制代码
在开发视图的resources/base/profile下面定义配置文件main_pages.json,其中文件名“main_pages”可自定义,需要和pages标签指定的信息对应。配置文件中枚举了当前应用组件中的页面信息,包含页面的路由信息和体现窗口相关的配置。
表3 pages标签阐明
属性名称含义数据范例是否可缺省来源标识关于JavaScript模块中全部页面的路由信息,包括页面路径和页面名称。取值为一个字符串数组,其中每个元素表示一个页面。字符串数组该标签不可缺省。窗标识用于定义与体现窗口相关的配置。对象该标签可缺省,缺省值为空。 表4 window标签阐明
属性名称含义数据范例是否可缺省designWidth标识页面设计基准宽度。以此为基准,根据现实设备宽度来缩放元素大小。数值可缺省,缺省值为720px。autoDesignWidth标识页面设计基准宽度是否自动计算。当配置为true时,designWidth将会被忽略,设计基准宽度由设备宽度与屏幕密度计算得出。布尔值可缺省,缺省值为false。
  1. {
  2.   "src": [
  3.     "pages/index/mainPage",
  4.     "pages/second/payment",
  5.     "pages/third/shopping_cart",
  6.     "pages/four/owner"
  7.   ],
  8.   "window": {
  9.     "designWidth": 720,
  10.     "autoDesignWidth": false
  11.   }
  12. }
复制代码
metadata标签

该标签标识HAP的自定义元信息,标签值为数组范例,包含name、value、resource三个子标签。
表5 metadata标签阐明
属性名称含义数据范例是否可缺省name标识数据项的名称,取值为长度不超过255字节的字符串。字符串该标签可缺省,缺省值为空。value标识数据项的值,取值为长度不超过255字节的字符串。字符串该标签可缺省,缺省值为空。resource标识定义用户自定义数据格式,取值为长度不超过255字节的字符串,内容为标识该数据的资源索引。字符串该标签可缺省,缺省值为空。
  1. {
  2.   "module": {
  3.     "metadata": [{
  4.       "name": "module_metadata",
  5.       "value": "a test demo for module metadata",
  6.       "resource": "$profile:shortcuts_config"
  7.     }],
  8.     "abilities": [{
  9.       "metadata": [{
  10.         "name": "ability_metadata",
  11.         "value": "a test demo for ability",
  12.         "resource": "$profile:config_file"
  13.       },
  14.       {
  15.         "name": "ability_metadata_2",
  16.         "value": "a string test",
  17.         "resource": "$profile:config_file"
  18.       }],
  19.     }],
  20.     "extensionAbilities": [{
  21.       "metadata": [{
  22.         "name": "extensionAbility_metadata",
  23.         "value": "a test for extensionAbility",
  24.         "resource": "$profile:config_file"
  25.       },
  26.       {
  27.         "name": "extensionAbility_metadata_2",
  28.         "value": "a string test",
  29.         "resource": "$profile:config_file"
  30.       }],
  31.     }]
  32.   }
  33. }
复制代码
abilities标签

abilities标签描述UIAbility组件的配置信息,标签值为数组范例,该标签下的配置只对当前UIAbility生效。
表6 abilities标签阐明
属性名称含义数据范例是否可缺省name标识当前UIAbility组件的名称,确保该名称在整个应用中唯一。取值为长度不超过127字节的字符串,不支持中文。字符串该标签不可缺省。srcEntry标识入口UIAbility的代码路径,取值为长度不超过127字节的字符串。字符串该标签不可缺省。launchType标识当前UIAbility组件的启动模式,支持的取值如下:
- multiton:多实例模式,每次启动创建一个新实例。
- singleton:单实例模式,仅第一次启动创建新实例。
- specified:指定实例模式,运行时由开发者决定是否创建新实例。字符串改标签可缺省,该标签缺省为“singleton”。description标识当前UIAbility组件的描述信息,取值为长度不超过31字节的字符串。要求接纳描述信息的资源索引,以支持多语言。字符串该标签可缺省,缺省值为空。icon标识当前UIAbility组件的图标,取值为图标资源文件的索引。字符串该标签可缺省,缺省值为空。
如果UIAbility被配置为MainElement,该标签必须配置。label标识当前UIAbility组件对用户体现的名称,要求接纳该名称的资源索引,以支持多语言。字符串该标签可缺省,缺省值为空。
如果UIAbility被配置为MainElement,该标签必须配置。permissions标识当前UIAbility组件自定义的权限信息。当其他应用访问该UIAbility时,需要申请相应的权限信息。
一个数组元素为一个权限名称。通常接纳反向域名格式(不超过255字节),取值为体系预定义的权限。字符串数组该标签可缺省,缺省值为空。metadata标识当前UIAbility组件的元信息。对象数组该标签可缺省,缺省值为空。exported标识当前UIAbility组件是否可以被其他应用调用。
- true:表示可以被其他应用调用。
- false:表示不可以被其他应用调用,包括无法被aa工具命令拉起应用。布尔值该标签可缺省,缺省值为false。continuable标识当前UIAbility组件是否支持跨端迁移。
- true:表示支持迁移。
- false:表示不支持迁移。布尔值该标签可缺省,缺省值为false。skills标识当前UIAbility组件或ExtensionAbility组件能够吸收的Want特性集,为数组格式。
配置规则:
- 对于Entry范例的HAP,应用可以配置多个具有入口能力的skills标签(即配置了ohos.want.action.home和entity.system.home)。
- 对于Feature范例的HAP,只有应用可以配置具有入口能力的skills标签,服务不答应配置。对象数组该标签可缺省,缺省值为空。backgroundModes标识当前UIAbility组件的长时使命聚集,指定用于满足特定范例的长时使命。
长时使命范例有如下:
- dataTransfer:通过网络/对端设备举行数据下载、备份、分享、传输等。
- audioPlayback:音频播放。
- audioRecording:灌音。
- location:定位、导航。
- bluetoothInteraction:蓝牙扫描、连接、传输(穿戴)。
- multiDeviceConnection:多设备互联。
- wifiInteraction:Wi-Fi扫描、连接、传输(克隆多屏)。
- voip:音视频电话、VoIP。
- taskKeeping:计算。字符串数组该标签可缺省,缺省值为空。startWindowIcon标识当前UIAbility组件启动页面图标资源文件的索引,取值为长度不超过255字节的字符串。字符串该标签不可缺省。startWindowBackground标识当前UIAbility组件启动页面配景颜色资源文件的索引,取值为长度不超过255字节的字符串。
取值示例:$color:red。字符串该标签不可缺省。removeMissionAfterTerminate标识当前UIAbility组件烧毁后,是否从使命列表中移除使命。
- true表示烧毁后移除使命。
- false表示烧毁后不移除使命。布尔值该标签可缺省,缺省值为false。orientation标识当前UIAbility组件启动时的方向。支持的取值如下:
- unspecified:未指定方向,由体系自动判断体现方向。
- landscape:横屏。
- portrait:竖屏。
- landscape_inverted:反向横屏。
- portrait_inverted:反向竖屏。
- auto_rotation:随传感器旋转。
- auto_rotation_landscape:传感器横屏旋转,包括横屏和反向横屏。
- auto_rotation_portrait:传感器竖屏旋转,包括竖屏和反向竖屏。
- auto_rotation_restricted:传感器开关打开,方向可随传感器旋转。
- auto_rotation_landscape_restricted:传感器开关打开,方向可随传感器旋转为横屏, 包括横屏和反向横屏。
- auto_rotation_portrait_restricted:传感器开关打开,方向随可传感器旋转为竖屏, 包括竖屏和反向竖屏。
- locked:传感器开关关闭,方向锁定。字符串该标签可缺省,缺省值为unspecified。supportWindowMode标识当前UIAbility组件所支持的窗口模式。支持的取值如下:
- fullscreen:全屏模式。
- split:分屏模式。
- floating:悬浮窗模式。字符串数组该标签可缺省,缺省值为
["fullscreen", "split", "floating"]。priority标识当前UIAbility组件的优先级。隐式查询时,优先级越高,UIAbility在返回列表越靠前。取值范围0~10,数值越大,优先级越高。
阐明:
仅支持体系应用配置,三方应用配置不生效。整型数值该标签可缺省,缺省值为0。maxWindowRatio标识当前UIAbility组件支持的最大的宽高比。该标签最小取值为0。数值该标签可缺省,缺省值为平台支持的最大的宽高比。minWindowRatio标识当前UIAbility组件支持的最小的宽高比。该标签最小取值为0。数值该标签可缺省,缺省值为平台支持的最小的宽高比。maxWindowWidth标识当前UIAbility组件支持的最大的窗口宽度,宽度单元为vp。
最小取值为minWindowWidth,最大取值为平台支持的最大窗口宽度。窗口尺寸可以参考窗口大小限制。数值该标签可缺省,缺省值为平台支持的最大的窗口宽度。minWindowWidth标识当前UIAbility组件支持的最小的窗口宽度, 宽度单元为vp。
最小取值为平台支持的最小窗口宽度,最大取值为maxWindowWidth。窗口尺寸可以参考窗口大小限制。数值该标签可缺省,缺省值为平台支持的最小的窗口宽度。maxWindowHeight标识当前UIAbility组件支持的最大的窗口高度, 高度单元为vp。
最小取值为minWindowHeight,最大取值为平台支持的最大窗口高度。 窗口尺寸可以参考窗口大小限制。数值该标签可缺省,缺省值为平台支持的最大的窗口高度。minWindowHeight标识当前UIAbility组件支持的最小的窗口高度, 高度单元为vp。
最小取值为平台支持的最小窗口高度,最大取值为maxWindowHeight。窗口尺寸可以参考窗口大小限制。数值该标签可缺省,缺省值为平台支持的最小的窗口高度。excludeFromMissions标识当前UIAbility组件是否在最近使命列表中体现。
- true:表示不在使命列表中体现。
- false:表示在使命列表中体现。
阐明:
仅支持体系应用配置,且需申请应用特权AllowAbilityExcludeFromMissions,三方应用配置不生效,详见应用特权配置指导。布尔值该标签可缺省,缺省值为false。recoverable标识当前UIAbility组件是否支持在检测到应用故障后,恢复到应用原界面。
- true:支持检测到出现故障后,恢复到原界面。
- false:不支持检测到出现故障后,恢复到原界面。布尔值该标签可缺省,缺省值为false。unclearableMission标识当前UIAbility组件是否支持从最近使命列表中移除。
- true:表示在使命列表中不可移除。
- false:表示在使命列表中可以移除。
阐明:
单独配置该字段不可生效,需要申请对应的AllowMissionNotCleared特权之后,该字段才能生效。布尔值该标签可缺省,缺省值为false。isolationProcess标识组件能否运行在独立的历程中。
- true:表示能运行在独立的历程中。
- false:表示不能运行在独立的历程中。布尔值该标签可缺省,缺省值为false。 abilities示例:
  1. {
  2.   "abilities": [{
  3.     "name": "EntryAbility",
  4.     "srcEntry": "./ets/entryability/EntryAbility.ts",
  5.     "launchType":"singleton",
  6.     "description": "$string:description_main_ability",
  7.     "icon": "$media:icon",
  8.     "label": "Login",
  9.     "permissions": [],
  10.     "metadata": [],
  11.     "exported": true,
  12.     "continuable": true,
  13.     "skills": [{
  14.       "actions": ["ohos.want.action.home"],
  15.       "entities": ["entity.system.home"],
  16.       "uris": []
  17.     }],
  18.     "backgroundModes": [
  19.       "dataTransfer",
  20.       "audioPlayback",
  21.       "audioRecording",
  22.       "location",
  23.       "bluetoothInteraction",
  24.       "multiDeviceConnection",
  25.       "wifiInteraction",
  26.       "voip",
  27.       "taskKeeping"
  28.     ],
  29.     "startWindowIcon": "$media:icon",
  30.     "startWindowBackground": "$color:red",
  31.     "removeMissionAfterTerminate": true,
  32.     "orientation": " ",
  33.     "supportWindowMode": ["fullscreen", "split", "floating"],
  34.     "maxWindowRatio": 3.5,
  35.     "minWindowRatio": 0.5,
  36.     "maxWindowWidth": 2560,
  37.     "minWindowWidth": 1400,
  38.     "maxWindowHeight": 300,
  39.     "minWindowHeight": 200,
  40.     "excludeFromMissions": false,
  41.     "unclearableMission": false
  42.   }]
  43. }
复制代码
skills标签

该标签标识UIAbility组件或者ExtensionAbility组件能够吸收的Want的特性。
表7 skills标签阐明
属性名称含义数据范例是否可缺省actions标识能够吸收的Action值聚集,取值通常为体系预定义的action值,也答应自定义。字符串数组该标签可缺省,缺省值为空。entities标识能够吸收的Entity值的聚集。字符串数组该标签可缺省,缺省值为空。uris标识与Want中URI(Uniform Resource Identifier)相匹配的聚集。对象数组该标签可缺省,缺省值为空。 表8 uris标签阐明
属性名称含义数据范例是否可缺省scheme标识URI的协议名部分,常见的有http、https、file、ftp等。字符串uris中仅配置type时可以缺省,缺省值为空,否则不可缺省。host标识URI的主机地点部分,该字段在schema存在时才故意义。常见的方式:
- 域名方式,如example.com。
- IP地点方式,如10.10.10.1。字符串该标签可缺省,缺省值为空。port标识URI的端口部分。如http默认端口为80,https默认端口是443,ftp默认端口是21。该字段在schema和host都存在时才故意义。字符串该标签可缺省,缺省值为空。path | pathStartWith | pathRegex标识URI的路径部分,path、pathStartWith和pathRegex配置时三选一。path标识URI与want中的路径部分全匹配,pathStartWith标识URI与want中的路径部分答应前缀匹配,pathRegex标识URI与want中的路径部分答应正则匹配。该字段在schema和host都存在时才故意义。字符串该标签可缺省,缺省值为空。type标识与Want相匹配的数据范例,使用MIME(Multipurpose Internet Mail Extensions)范例规范。可与schema同时配置,也可以单独配置。字符串该标签可缺省,缺省值为空。 skills示例:
  1. {
  2.   "abilities": [
  3.     {
  4.       "skills": [
  5.         {
  6.           "actions": [
  7.             "ohos.want.action.home"
  8.           ],
  9.           "entities": [
  10.             "entity.system.home"
  11.           ],
  12.           "uris": [
  13.             {
  14.               "scheme":"http",
  15.               "host":"example.com",
  16.               "port":"80",
  17.               "path":"path",
  18.               "type": "text/*"
  19.             }
  20.           ]
  21.         }
  22.       ]
  23.     }
  24.   ]
  25. }
复制代码
extensionAbilities标签

描述extensionAbilities的配置信息,标签值为数组范例,该标签下的配置只对当前extensionAbilities生效。
表9 extensionAbilities标签阐明
属性名称含义数据范例是否可缺省name标识当前ExtensionAbility组件的名称,确保该名称在整个应用中唯一,取值为长度不超过127字节的字符串。字符串该标签不可缺省。srcEntry标识当前ExtensionAbility组件所对应的代码路径,取值为长度不超过127字节的字符串。字符串该标签不可缺省。description标识当前ExtensionAbility组件的描述,取值为长度不超过255字节的字符串,可以是对描述内容的资源索引,用于支持多语言。字符串该标签可缺省,缺省值为空。icon标识当前ExtensionAbility组件的图标,取值为资源文件的索引。如果ExtensionAbility组件被配置为MainElement,该标签必须配置。字符串该标签可缺省,缺省值为空。label标识当前ExtensionAbility组件对用户体现的名称,取值为该名称的资源索引,以支持多语言。如果ExtensionAbility被配置当前Module的mainElement时,该标签必须配置,且要确保应用内唯一。字符串该标签可缺省,缺省值为空。type标识当前ExtensionAbility组件的范例,支持的取值如下:
- form:卡片的ExtensionAbility。
- workScheduler:延时使命的ExtensionAbility。
- inputMethod:输入法的ExtensionAbility。
- service:后台运行的service组件。
- accessibility:辅助能力的ExtensionAbility。
- dataShare:数据共享的ExtensionAbility。
- fileShare:文件共享的ExtensionAbility。
- staticSubscriber:静态广播的ExtensionAbility。
- wallpaper:壁纸的ExtensionAbility。
- backup:数据备份的ExtensionAbility。
- window:该ExtensionAbility会在启动过程中创建一个window,为开发者提供界面开发。开发者开发出来的界面将通过UIExtensionComponent控件组合到其他应用的窗口中。
- thumbnail:获取文件缩略图的ExtensionAbility,开发者可以对自定义文件范例的文件提供缩略。
- preview:该ExtensionAbility会将文件剖析后在一个窗口中体现,开发者可以通过将此窗口组合到其他应用窗口中。
- print:打印框架的ExtensionAbility。
- push:推送的ExtensionAbility。
- driver:驱动框架的ExtensionAbility。
- remoteNotification:远程关照的ExtensionAbility。
- remoteLocation:远程定位的ExtensionAbility。
- voip:网络音视频通话的ExtensionAbility。
阐明:
其中service和dataShare范例,仅支持体系应用配置,三方应用配置不生效。字符串该标签不可缺省。permissions标识当前ExtensionAbility组件自定义的权限信息。当其他应用访问该ExtensionAbility时,需要申请相应的权限信息。
一个数组元素为一个权限名称。通常接纳反向域名格式(最大255字节),取值为体系预定义的权限。字符串数组该标签可缺省,缺省值为空。uri标识当前ExtensionAbility组件提供的数据URI,取值为长度不超过255字节的字符数组,用反向域名的格式表示。
阐明:
该标签在type为dataShare范例的ExtensionAbility时,不可缺省。字符串该标签可缺省,缺省值为空。skills标识当前ExtensionAbility组件能够吸收的Want的特性集。
配置规则:entry包可以配置多个具有入口能力的skills标签(配置了ohos.want.action.home和entity.system.home)的ExtensionAbility,其中第一个配置了skills标签的ExtensionAbility中的label和icon作为服务或应用的label和icon。
阐明:
服务的Feature包不能配置具有入口能力的skills标签。
应用的Feature包可以配置具有入口能力的skills标签。数组该标签可缺省,缺省值为空。metadata标识当前ExtensionAbility组件的元信息。对象该标签可缺省,缺省值为空。exported标识当前ExtensionAbility组件是否可以被其他应用调用。
- true:表示可以被其他应用调用。
- false:表示不可以被其他应用调用,包括无法被aa工具命令拉起应用。布尔值该标签可缺省,缺省值为false。 extensionAbilities示例:
  1. {
  2.   "extensionAbilities": [
  3.     {
  4.       "name": "FormName",
  5.       "srcEntry": "./form/MyForm.ts",
  6.       "icon": "$media:icon",
  7.       "label" : "$string:extension_name",
  8.       "description": "$string:form_description",
  9.       "type": "form",
  10.       "permissions": ["ohos.abilitydemo.permission.PROVIDER"],
  11.       "readPermission": "",
  12.       "writePermission": "",
  13.       "exported": true,
  14.       "uri":"scheme://authority/path/query",
  15.       "skills": [{
  16.         "actions": [],
  17.         "entities": [],
  18.         "uris": []
  19.       }],
  20.       "metadata": [
  21.         {
  22.           "name": "ohos.extension.form",
  23.           "resource": "$profile:form_config",
  24.         }
  25.       ]
  26.     }
  27.   ]
  28. }
复制代码
requestPermissions标签

该标签标识应用运行时需向体系申请的权限聚集,权限设置方式拜见指导。
   阐明:
  

  • 在requestPermissions标签中配置的权限项将在应用级别生效,即该权限实用于整个应用步调。
  • 如果应用需要订阅自己发布的变乱,而且应用在extensionAbilities标签中的permissions字段中设置了访问该应用所需要的权限,那么应用也需要在requestPermissions标签中注册相关权限才能收到该变乱。
  表10 requestPermissions标签阐明
属性名称含义数据范例是否可缺省name标识需要使用的权限名称。字符串该标签不可缺省。reason标识申请权限的原因,取值需要接纳资源引用格式,以适配多语种。字符串该标签可缺省,缺省值为空。
阐明:
当申请的权限为user_grant权限时,该字段必填,否则不答应在应用市场上架。usedScene标识权限使用的场景,包含abilities和when两个子标签。
- abilities:可以配置为多个UIAbility或者ExtensionAbility名称的字符串数组。
- when:表示调用时机,支持的取值包括inuse(使用时)和always(始终)。对象该标签可缺省,缺省值为空。
阐明:
当申请的权限为user_grant权限时,abilities标签必填,when标签可选。 requestPermissions示例:
  1. {
  2.   "module" : {
  3.     "requestPermissions": [
  4.       {
  5.         "name": "ohos.abilitydemo.permission.PROVIDER",
  6.         "reason": "$string:reason",
  7.         "usedScene": {
  8.           "abilities": [
  9.             "EntryFormAbility"
  10.           ],
  11.           "when": "inuse"
  12.         }
  13.       }
  14.     ]
  15.   }
  16. }
复制代码
shortcuts标签

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


  • name:指定shortcuts的名称,使用ohos.ability.shortcuts作为shortcuts信息的标识。
  • resource:指定shortcuts信息的资源位置。
表11 shortcuts标签阐明
属性名称含义范例是否可缺省shortcutId标识快捷方式的ID,取值为长度不超过63字节的字符串。字符串该标签不可缺省。label标识快捷方式的标签信息,即快捷方式对外体现的文字描述信息。取值为长度不超过255字节的字符串,可以是描述性内容,也可以是标识label的资源索引。字符串该标签可缺省,缺省值为空。icon标识快捷方式的图标,取值为资源文件的索引。字符串该标签可缺省,缺省值为空。wants标识快捷方式内定义的目标wants信息聚集,每个wants可配置bundleName、moduleName和abilityName三个子标签,而且支持配置其中的一个或多个标签。
- bundleName:表示快捷方式的目标Bundle名称,字符串范例。
- moduleName:表示快捷方式的目标Module名,字符串范例。
- abilityName:表示快捷方式的目标组件名,字符串范例。对象该标签可缺省,缺省为空。

  • 在/resource/base/profile/目录下配置shortcuts_config.json配置文件。
    1. {
    2.   "shortcuts": [
    3.     {
    4.       "shortcutId": "id_test1",
    5.       "label": "$string:shortcut",
    6.       "icon": "$media:aa_icon",
    7.       "wants": [
    8.         {
    9.           "bundleName": "com.ohos.hello",
    10.           "moduleName": "entry",
    11.           "abilityName": "EntryAbility"
    12.         }
    13.       ]
    14.     }
    15.   ]
    16. }
    复制代码
  • 在module.json5配置文件的abilities标签中,针对需要添加快捷方式的UIAbility举行配置metadata标签,使shortcut配置文件对该UIAbility生效。
    1. {
    2.   "module": {
    3.     // ...
    4.     "abilities": [
    5.       {
    6.         "name": "EntryAbility",
    7.         "srcEntry": "./ets/entryability/EntryAbility.ts",
    8.         // ...
    9.         "skills": [
    10.           {
    11.             "entities": [
    12.               "entity.system.home"
    13.             ],
    14.             "actions": [
    15.               "ohos.want.action.home"
    16.             ]
    17.           }
    18.         ],
    19.         "metadata": [
    20.           {
    21.             "name": "ohos.ability.shortcuts",
    22.             "resource": "$profile:shortcuts_config"
    23.           }
    24.         ]
    25.       }
    26.     ]
    27.   }
    28. }
    复制代码
distributionFilter标签

该标签用于定义HAP对应的细分设备规格的分发策略,以便在应用市场举行云端分发应用包时做精准匹配。
   阐明:
该标签从API10及以后版本开始生效,API9及以前版本使用distroFilter标签。
  

  • 实用场景: 当一个工程中存在多个Entry,且多个Entry配置的deviceTypes存在交集时,则需要通过该标签举行区分。比如下面的两个Entry都支持tablet范例,就需要通过该标签举行区分。
    1. // entry1支持的设备类型
    2. {
    3.   "module": {
    4.     "name": "entry1",
    5.     "type": "entry",
    6.     "deviceTypes" : [
    7.       "tv",
    8.       "tablet"
    9.     ]
    10.   }
    11. }
    复制代码
    1. // entry2支持的设备类型
    2. {
    3.   "module": {
    4.     "name": "entry2",
    5.     "type": "entry",
    6.     "deviceTypes" : [
    7.       "car",
    8.       "tablet"
    9.     ]
    10.   }
    11. }
    复制代码
  • 配置规则: 该标签支持配置四个属性,包括屏幕形状(screenShape)、窗口分辨率(screenWindow)、屏幕像素密度(screenDensity )、设备所在国家与地区(countryCode),详见下表。
    在分发应用包时,通过deviceTypes与这四个属性的匹配关系,唯一确定一个用于分发到设备的HAP。

    • 如果需要配置该标签,则至应当包含一个属性。
    • 如果一个Entry中配置了恣意一个或多个属性,则其他Entry也必须包含类似的属性。
    • screenShape和screenWindow属性仅用于轻量级智能穿戴设备。

  • 配置方式: 该标签需要配置在/resource/profile资源目录下,并在metadata的resource字段中引用。
表12 distributionFilter标签配置阐明
属性名称含义数据范例是否可缺省screenShape标识屏幕形状的支持策略。对象数组该标签可缺省,缺省值为空。screenWindow标识应用运行时的窗口分辨率的支持策略。对象数组该标签可缺省,缺省值为空。screenDensity标识屏幕的像素密度(dpi:Dot Per Inch)的支持策略。对象数组该标签可缺省,缺省值为空。countryCode标识国家与地区的支持策略,取值参考ISO-3166-1标准。支持多个国家和地区枚举定义。对象数组该标签可缺省,缺省值为空。 screenShape标签

表13 screenShape标签阐明
属性名称含义数据范例是否可缺省policy标识条件属性的过滤规则。
- exclude:表示需要排除的value属性。
- include:表示需要包含的value属性。字符串该标签不可缺省。value支持的取值为circle(圆形)、rect(矩形)。比方,针对智能穿戴设备,可为圆形表盘和矩形表盘分别提供不同的HAP。字符串数组该标签不可缺省。 screenWindow标签

表14 screenWindow标签阐明
属性名称含义数据范例是否可缺省policy标识条件属性的过滤规则。当前取值仅支持“include”。
- include:表示需要包含的value属性。字符串该标签不可缺省。value单个字符串的取值格式为“宽 * 高”,取值为整数像素值,比方“454 * 454”。字符串数组该标签不可缺省。 screenDensity标签

表15 screenDensity标签阐明
属性名称含义数据范例是否可缺省policy标识条件属性的过滤规则。
- exclude:表示需要排除的value属性。
- include:表示需要包含的value属性。字符串该标签不可缺省。value标识屏幕的像素密度(dpi ot Per Inch)。支持的取值如下:
- sdpi:表示小规模的屏幕密度(Small-scale Dots per Inch),实用于dpi取值为(0,120]的设备。
- mdpi:表示中规模的屏幕密度(Medium-scale Dots Per Inch),实用于dpi取值为(120,160]的设备。
- ldpi:表示大规模的屏幕密度(Large-scale Dots Per Inch),实用于dpi取值为(160,240]的设备。
- xldpi:表示大规模的屏幕密度(Extra Large-scale Dots Per Inch),实用于dpi取值为(240,320]的设备。
- xxldpi:表示大规模的屏幕密度(Extra Extra Large-scale Dots Per Inch),实用于dpi取值为(320,480]的设备。
- xxxldpi:表示大规模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),实用于dpi取值为(480, 640]的设备。字符串数组该标签不可缺省。 countryCode标签

表16 countryCode标签阐明
属性名称含义数据范例是否可缺省policy标识条件属性的过滤规则。
- exclude:表示需要排除的value属性。
- include:表示需要包含的value属性。字符串该标签不可缺省。value标识应用需要分发的国家地区码。字符串数组该标签不可缺省。 示比方下:

  • 在开发视图的resources/base/profile下面定义配置文件distributionFilter_config.json,文件名可以自定义。
    1. {
    2.   "distributionFilter": {
    3.     "screenShape": {
    4.       "policy": "include",
    5.       "value": [
    6.         "circle",
    7.         "rect"
    8.       ]
    9.     },
    10.     "screenWindow": {
    11.       "policy": "include",
    12.       "value": [
    13.         "454*454",
    14.         "466*466"
    15.       ]
    16.     },
    17.     "screenDensity": {
    18.       "policy": "exclude",
    19.       "value": [
    20.         "ldpi",
    21.         "xldpi"
    22.       ]
    23.     },
    24.     "countryCode": { // 支持在中国分发
    25.       "policy": "include",
    26.       "value": [
    27.         "CN"
    28.       ]
    29.     }
    30.   }
    31. }
    复制代码

  • 在module.json5配置文件的module标签中定义metadata信息。
  1. ```json
  2. {
  3.   "module": {
  4.     // ...
  5.     "metadata": [
  6.       {
  7.         "name": "ohos.module.distribution",
  8.         "resource": "$profile:distributionFilter_config",
  9.       }
  10.     ]
  11.   }
  12. }
  13. ```
复制代码
testRunner标签

此标签用于支持对测试框架的配置。
表17 testRunner标签阐明
属性名称含义数据范例是否可缺省name标识测试框架对象名称,取值为长度不超过255字节的字符串。字符串不可缺省。srcPath标识测试框架代码路径,取值为长度不超过255字节的字符串。字符串不可缺省。 testRunner标签示例:
  1. {
  2.   "module": {
  3.     // ...
  4.     "testRunner": {
  5.       "name": "myTestRunnerName",
  6.       "srcPath": "etc/test/TestRunner.ts"
  7.     }
  8.   }
  9. }
复制代码
atomicService标签

此标签用于支持对原子化服务的配置。此标签仅在app.json中bundleType指定为atomicService时使能。
表18 atomicService标签阐明
属性名称含义数据范例是否可缺省preloads标识原子化服务中预加载列表。对象数组该标签可缺省,缺省值为空。 表19 preloads标签阐明
属性名称含义数据范例是否可缺省moduleName标识原子化服务中当前模块被加载时,需预加载的模块名。字符串该标签不可缺省。 atomicService标签示例:
  1. {
  2.   "module": {
  3.     "atomicService": {
  4.       "preloads":[
  5.         {
  6.           "moduleName":"feature"
  7.         }
  8.       ]
  9.     }
  10.   }
  11. }
复制代码
dependencies标签

此标签标识模块运行时依靠的共享库列表。
表20 dependencies标签阐明
属性名称含义数据范例是否可缺省bundleName标识当前模块依靠的共享包包名。字符串该标签可缺省,缺省值为空。moduleName标识当前模块依靠的共享包模块名。字符串该标签不可缺省。versionCode标识当前共享包的版本号。数值该标签可缺省,缺省值为空。 dependencies标签示例:
  1. {
  2.   "module": {
  3.     "dependencies": [
  4.       {
  5.         "bundleName":"com.share.library",
  6.         "moduleName": "library",
  7.         "versionCode": 10001
  8.       }
  9.     ]
  10.   }
  11. }
复制代码
proxyData标签

此标签标识模块提供的数据代理列表,仅限entry和feature配置。
表21 proxyData标签阐明 |属性名称 |含义 |数据范例 |是否可缺省 | |----------- |------------------------------ |-------- |---------- | |URI |标识用于访问该数据代理的URI,不同的数据代理配置的URI不可重复,且需要满足的格式。 |字符串 |该标签不可缺省。 | |requiredReadPermission (必需读取权限) |标识从该数据代理中读取数据所需要的权限,若不配置,则其他应用无法使用该代理。非体系应用配置的权限的等级需为system_basic或system_core,体系应用配置的权限的等级没有限制。权限等级可以参考权限列表。 |字符串 |该标签可缺省,缺省值为空。 | |requiredWritePermission |标识向该数据代理中写入数据所需要的权限,若不配置,则其他应用无法使用该代理。非体系应用配置的权限的等级需为system_basic或system_core,体系应用配置的权限的等级没有限制。权限等级可以参考权限列表。 |字符串 |该标签可缺省,缺省值为空。 | |元数据 |标识该数据代理的元信息,只支持配置name和resource字段。 |对象 |该标签可缺省,缺省值为空。 |datashareproxy://当前应用包名/xxx
proxyData标签示例:
  1. {
  2.   "module": {
  3.     "proxyData": [
  4.       {
  5.         "uri":"datashareproxy://com.ohos.datashare/event/Meeting",
  6.         "requiredReadPermission": "ohos.permission.GET_BUNDLE_INFO",
  7.         "requiredWritePermission": "ohos.permission.GET_BUNDLE_INFO",
  8.         "metadata": {
  9.           "name": "datashare_metadata",
  10.           "resource": "$profile:datashare"
  11.         }
  12.       }
  13.     ]
  14.   }
  15. }
复制代码
末了

有很多小同伴不知道学习哪些鸿蒙开发技术?不知道需要重点把握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,终极浪费大量时间。以是有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 
这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必把握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小同伴自行领取,限时开源,先到先得~无套路领取!!
获取这份完整版高清学习门路,请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙(HarmonyOS NEXT)最新学习门路




  •  HarmonOS底子技能



  • HarmonOS就业必备技能 

  •  HarmonOS多媒体技术



  • 鸿蒙NaPi组件进阶



  • HarmonOS高级技能



  • 初识HarmonOS内核 

  • 实战就业级设备开发

有了门路图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布条记整理收纳的一套体系性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
获取以上完整版高清学习门路,请点击→纯血版全套鸿蒙HarmonyOS学习资料
《鸿蒙 (OpenHarmony)开发入门教学视频》


《鸿蒙生态应用开发V2.0白皮书》


《鸿蒙 (OpenHarmony)开发底子到实战手册》

OpenHarmony北向、南向开发环境搭建

 《鸿蒙开发底子》



  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

 《鸿蒙开发进阶》



  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 关照与窗口管理
  • 多媒体技术
  • 安全技能
  • 使命管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向将来设计
  • 鸿蒙体系移植和裁剪定制
  • ……

《鸿蒙进阶实战》



  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结

总的来说,华为鸿蒙不再兼容安卓,对中年步调员来说是一个寻衅,也是一个时机。只有积极应对变化,不断学习和提拔自己,他们才能在这个变革的时代中立于不败之地。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

民工心事

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表