鸿蒙HarmonyOS 5.0开发:应用设置文件(Stage模子)-app.json5设置文件

[复制链接]
发表于 2025-11-23 21:03:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
 往期鸿蒙全套实战文章必看:(文中附带鸿蒙全栈学习资料)



  • 鸿蒙开发核心知识点,看这篇文章就够了
  • 最新版!鸿蒙HarmonyOS Next应用开发实战学习门路
  • 鸿蒙HarmonyOS NEXT开发技能最全学习门路指南
  • 鸿蒙应用开发实战项目,看这一篇文章就够了(部门项目附源码)

app.json5设置文件

设置文件示例

先通过一个示例,团体熟悉一下app.json5设置文件。
  1. {
  2.   "app": {
  3.     "bundleName": "com.application.myapplication",
  4.     "vendor": "example",
  5.     "versionCode": 1000000,
  6.     "versionName": "1.0.0",
  7.     "icon": "$media:layered-image",
  8.     "label": "$string:app_name",
  9.     "description": "$string:description_application",
  10.     "minAPIVersion": 9,
  11.     "targetAPIVersion": 9,
  12.     "apiReleaseType": "Release",
  13.     "debug": false,
  14.     "car": {
  15.       "minAPIVersion": 8
  16.     },
  17.     "targetBundleName": "com.application.test",
  18.     "targetPriority": 50,
  19.     "appEnvironments": [
  20.       {
  21.         "name":"name1",
  22.         "value": "value1"
  23.       }
  24.     ],
  25.     "maxChildProcess": 5,
  26.     "multiAppMode": {
  27.       "multiAppModeType": "multiInstance",
  28.       "maxCount": 5
  29.     },
  30.     "cloudFileSyncEnabled": false,
  31.     "configuration": "$profile:configuration"
  32.   },
  33. }
复制代码
设置文件标签

app.json5设置文件包罗以下标签。
表1 app.json5设置文件标签阐明
属性名称寄义数据范例是否可缺省bundleName 标识应用的Bundle名称,用于标识应用的唯一性。定名规则如下 :
- 必须为以点号(.)分隔的字符串,且至少包罗三段,每段中仅答应利用英笔墨母、数字、下划线(_)。
- 首段以英笔墨母开头,非首段以数字或英笔墨母开头,每一段以数字大概英笔墨母末了。
- 不允很多个点号(.)连续出现。
- 字符串最小长度为7字节,最大长度128字节。
- 保举采取反域名情势定名(如“com.example.demo”,发起第一级为域名后缀com,第二级为厂商/个人名,第三级为应用名,也可以多级)。
对于随体系源码编译的应用,发起定名为“com.ohos.demo”情势,此中的ohos标识体系应用。
字符串该标签不可缺省。bundleType 标识应用的Bundle范例,用于区分应用大概元服务。支持的取值如下:
- app:当前Bundle为应用。
- atomicService:当前Bundle为元服务。
- shared:当前Bundle为共享库应用,预留字段。
- appService:当前Bundle为体系级共享库应用,仅供体系应用利用。
字符串该标签可缺省,缺省值为app。debug 标识应用是否可调试。
- true:可调试,一样寻常用于开发阶段。
- false:不可调试,一样寻常用于发布阶段。
布尔值由IDE编译构建时天生。该标签可缺省,缺省值为false。icon标识应用的图标,取值为图标资源文件的索引。字符串该标签不可缺省。label标识应用的名称,取值为字符串资源的索引,字符串长度不凌驾63字节。字符串该标签不可缺省。description标识应用的形貌信息。取值为长度不凌驾255字节的字符串,内容为形貌信息的字符串资源索引。字符串该标签可缺省,缺省值为空。vendor标识对应用开发厂商的形貌,取值为长度不凌驾255字节的字符串。字符串该标签可缺省,缺省值为空。versionCode 标识应用的版本号,取值为小于2^31次方的正整数。此数字仅用于确定某个版本是否比另一个版本更新,数值越大表现版本越高。
开发者可以将该值设置为任何正整数,但是必须确保应用的新版本都利用比旧版本更大的值。
数值该标签不可缺省。versionName 标识向用户展示的应用版本号。
取值为长度不凌驾127字节的字符串,仅由数字和点构成,保举采取“A.B.C.D”四段式的情势。四段式保举的寄义如下所示。
第一段:主版本号/Major,范围0~99,巨大修改的版本,如实现新的大功能或巨大变革。
第二段:次版本号/Minor,范围0~99,表现实现较突出的特点,如新功能添加或大题目修复。
第三段:特性版本号/Feature,范围0~99,标识规划的新版本特性。
第四段:修订版本号/Patch,范围0~999,表现维护版本,如修复bug。
字符串该标签不可缺省。minCompatibleVersionCode标识应用可以大概兼容的最低汗青版本号,用于应用跨装备兼容性判定。取值范围为0~2147483647。数值该标签可缺省,缺省值即是versionCode标签值。minAPIVersion标识应用运行须要的SDK的API最小版本。取值范围为0~2147483647。数值应用编译构建时由build-profile.json5中的compatibleSdkVersion主动天生。targetAPIVersion标识应用运行须要的API目标版本。取值范围为0~2147483647。数值应用编译构建时由build-profile.json5中的compileSdkVersion主动天生。apiReleaseType 标识应用运行须要的API目标版本的范例,采取字符串范例表现。取值为“CanaryN”、“BetaN”大概“Release”,此中,N代表大于零的整数。
- Canary:受限发布的版本。
- Beta:公开发布的Beta版本。
- Release:公开发布的正式版本。
字符串应用编译构建时根据当前利用的SDK的Stage主动天生。即便手动设置了取值,编译构建时也会被覆盖。accessible标识应用是否能访问应用的安装目次,仅针对Stage模子的体系应用和预置应用收效。布尔值该标签可缺省,缺省值为false。multiProjects 标识当前工程是否支持多个工程的团结开发。
- true:当前工程支持多个工程的团结开发。
- false:当前工程不支持多个工程的团结开发。
布尔值该标签可缺省,缺省值为false。asanEnabled 标识应用步调是否开启asan检测,用于辅助定位buffer越界造成的crash题目。
- true:当前工程开启asan检测。
- false:当前工程不开启asan检测。
布尔值该标签可缺省,缺省值为false。tablet 标识对tablet装备做的特别设置,可以设置的属性字段有上文提到的:minAPIVersion。
如果利用该属性对tablet装备做了特别设置,则应用在tablet装备中会采取此处设置的属性值,并忽略在app.json5公共地区设置的属性值。
对象该标签可缺省,缺省时tablet装备利用app.json5公共地区设置的属性值。tv 标识对tv装备做的特别设置,可以设置的属性字段有上文提到的:minAPIVersion。
如果利用该属性对tv装备做了特别设置,则应用在tv装备中会采取此处设置的属性值,并忽略在app.json5公共地区设置的属性值。
对象该标签可缺省,缺省时tv装备利用app.json5公共地区设置的属性值。wearable 标识对wearable装备做的特别设置,可以设置的属性字段有上文提到的:minAPIVersion。
如果利用该属性对wearable装备做了特别设置,则应用在wearable装备中会采取此处设置的属性值,并忽略在app.json5公共地区设置的属性值。
对象该标签可缺省,缺省时wearable装备利用app.json5公共地区设置的属性值。car 标识对car装备做的特别设置,可以设置的属性字段有上文提到的:minAPIVersion。
如果利用该属性对car装备做了特别设置,则应用在car装备中会采取此处设置的属性值,并忽略在app.json5公共地区设置的属性值。
对象该标签可缺省,缺省时car装备利用app.json5公共地区设置的属性值。default 标识对default装备做的特别设置,可以设置的属性字段有上文提到的:minAPIVersion。
如果利用该属性对default装备做了特别设置,则应用在default装备中会采取此处设置的属性值,并忽略在app.json5公共地区设置的属性值。
对象该标签可缺省,缺省时default装备利用app.json5公共地区设置的属性值。targetBundleName标识当前包所指定的目标应用, 标签值的取值规则和范围与bundleName标签同等。设置该字段的应用为具有overlay特性的应用。字符串该标签可缺省,缺省值为空。targetPriority标识当前应用的优先级,取值范围为1~100。设置targetBundleName字段之后,才支持设置该字段。数值该标签可缺省, 缺省值为1。generateBuildHash 标识当前应用的全部HAP和HSP是否由打包工具天生哈希值。
该字段设置为true时,该应用下的全部HAP和HSP都会由打包工具天生对应的哈希值。体系OTA升级时,若应用的versionCode保持稳定,可根据哈希值判定应用是否须要升级。
阐明:
该字段仅对预置应用收效。
布尔值该标签可缺省, 缺省值为false。GWPAsanEnabled 标识应用步调是否开启GWP-asan堆内存检测工具,用于对内存越界、内存开释后利用等内存粉碎题目举行分析。
- true:当前工程开启GWP-asan检测。
- false:当前工程不开启GWP-asan检测。
布尔值该标签可缺省, 缺省值为false。appEnvironments标识当前模块设置的应用情况变量。对象数组该标签可缺省,缺省值为空。maxChildProcess标识当前应用自身可创建的子进程的最大个数,取值范围为0到512,0表现不限定,当应用有多个模块时,以entry模块的设置为准。数值该标签可缺省,缺省时利用体系设置的默认值。multiAppMode标识当前应用设置的多开模式。仅bundleType为app的应用的entry或feature模块设置有效,存在多个模块时,以entry模块的设置为准。对象该标签可缺省,缺省值为空。cloudFileSyncEnabled 标识当前应用是否启用端云文件同步本领。
- true:当前应用启用端云文件同步本领。
- false:当前应用不启用端云文件同步本领。
布尔值该标签可缺省,缺省值为false。configuration 标识当前应用字体巨细跟随体系设置的本领。
该标签是一个profile文件资源,用于指定形貌应用字体巨细跟随体系变动的设置文件。
字符串该标签可缺省,缺省时configuration利用跟随体系默认设定。icon标签

此标签标识应用的图标和对分层图标设置文件的索引。
支持分层图标的设置,具体方式如下:

  • 将图标的远景资源和配景资源放在AppScope/resources/base/media目次下。
  • 在上述media目次下创建一个json文件(比方:layered-image.json),在文件中引用远景资源和配景资源。
分层图标资源文件示例:
  1. {
  2.   "layered-image":
  3.     {
  4.       "background":"$media:background", //背景资源
  5.       "foreground":"$media:foreground" //前景资源
  6.     }   
  7. }
复制代码
icon标签示例:
  1. {
  2.   "app":{
  3.     "icon":"$media:layered-image"
  4.   }
  5. }
复制代码
appEnvironments标签

此标签标识应用设置的情况变量。应用运行时偶然会依靠一些三方库,这些三方库会利用到一些自界说的情况变量,为了不修改三方库的实现逻辑,可以在工程的设置文件中设置自界说的情况变量,以供运行时期利用。
表2 appEnvironments标签阐明
属性名称寄义数据范例是否可缺省name标识情况变量的变量名称。取值为长度不凌驾4096字节的字符串。字符串该标签可缺省,缺省值为空。value标识情况变量的值。取值为长度不凌驾4096字节的字符串。字符串该标签可缺省,缺省值为空。appEnvironments标签示例:
  1. {
  2.   "app": {
  3.     "appEnvironments": [
  4.       {
  5.         "name":"name1",
  6.         "value": "value1"
  7.       }
  8.     ]
  9.   }
  10. }
复制代码
multiAppMode标签

应用多开模式。
表3 multiAppMode标签阐明
属性名称寄义数据范例是否可缺省multiAppModeType 标识应用多开模式范例,支持的取值如下:
- multiInstance:多实例模式。该字段仅支持2in1装备。
- appClone:应用分身模式。
字符串该标签不可缺省。maxCount 标识最大答应的应用多开个数,支持的取值如下:
- multiInstance模式:取值范围1~10。
- appClone模式:取值范围1~5。
数值该标签不可缺省。multiAppMode标签示例:
  1. {
  2.   "app": {
  3.     "multiAppMode": {
  4.       "multiAppModeType": "appClone",
  5.       "maxCount": 5
  6.     }
  7.   }
  8. }
复制代码
configuration标签

该标签是一个profile文件资源,用于指定形貌应用字体巨细跟随体系变动的设置文件。
configuration标签示例:
  1. {
  2.   "app": {
  3.     "configuration": "$profile:configuration"  
  4.   }
  5. }
复制代码
在开发视图的resources/base/profile下面界说设置文件configuration.json,此中文件名"configuration"可自界说,须要和configuration标签指定的信息对应。设置文件中枚举了当前应用字体巨细跟随体系变革的属性。
表4 configuration标签阐明
属性名称寄义数据范例是否可缺省fontSizeScale 应用字体巨细是否跟随体系,支持的取值如下:
- followSystem:跟随体系。
- nonFollowSystem:不跟随体系。
字符串该标签可缺省,缺省值为followSystem。fontSizeMaxScale 应用字体巨细选择跟随体系后,设置的最大比例,支持的取值:1、1.15、1.3、1.45、1.75、2、3.2。
fontSizeScale为nonFollowSystem时,该项不收效。
字符串该标签可缺省,缺省值为3.2。resources/base/profile/configuration.json
  1. {
  2.   "configuration": {
  3.     "fontSizeScale": "followSystem",
  4.     "fontSizeMaxScale": "3.2"
  5.   }
  6. }
复制代码


回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表