- DevEco Studio提供了两种编辑“config.json”文件的方式。在“config.json”的编辑窗口中,可在右上角切换代码编辑视图或可视化编辑视图。
配置文件的内部结构
“config.json”由“app”、“deviceConfig”和“module”三个部分组成,缺一不可。
属性名称 | 含义 | 数据类型 | 是否可缺省 |
---|---|---|---|
app |
表示应用的全局配置信息。同一个应用的不同HAP包的“app”配置必须保持一致。 | 对象 | 否 |
deviceConfig |
表示应用在具体设备上的配置信息。 | 对象 | 否 |
module |
表示HAP包的配置信息。该标签下的配置只对当前HAP包生效。 | 对象 | 否 |
app对象的内部结构
属性名称 | 子属性名称 | 含义 | 数据类型 | 是否可缺省 | 备注 |
---|---|---|---|---|---|
bundleName |
- | 表示应用的包名,用于标识应用的唯一性。包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。支持的字符串长度为7~127字节。包名通常采用反域名形式表示(例如,com.huawei.himusic)。建议第一级为域名后缀“com”,第二级为厂商/个人名,第三级为应用名,也可以采用多级。 | 字符串 | 否 | |
vendor |
- | 表示对应用开发厂商的描述。字符串长度不超过255 字节。 |
字符串 | 可缺省,缺省为空 | |
version |
- | 表示应用的版本信息。 | 对象 | 否 | |
code |
表示应用的版本号,仅用于HarmonyOS管理该应用,对用户不可见。取值为大于零的整数。 | 数值 | 否 | 对应name显示,99099099对应99.99.99 | |
name |
表示应用的版本号,用于向用户呈现。取值可以自定义。 | 字符串 | 否 | 1.0.0,可缺省为1.0 | |
minCompatibleVersionCode |
表示应用可兼容的最低版本号,用于在跨设备场景下,判断其他设备上该应用的版本是否兼容。 | 数值 | 可缺省,缺省值为code | ||
apiVersion |
- | 表示应用依赖的HarmonyOS的API版本。 | 对象 | 否 | |
compatible |
表示应用运行需要的API最小版本。取值为大于零的整数。跟安卓的minSdkVersion一样 | 数值 | 否 | ||
target |
表示应用运行需要的API目标版本。取值为大\于零的整数。跟安卓的targetSdkVersion一样 | 数值 | 可缺省,缺省值为应用所在设备的当前API版本 | ||
releaseType |
表示应用运行需要的API目标版本的类型。取值为“CanaryN”、“BetaN”或者“Release”,其中,N代表大于零的整数。Canary: 受限发布的版本。Beta :公开发布的Beta版本。Release :公开发布的正式版本。 |
字符串 | 可缺省,缺省值为“Release”。 | ||
multiFrameworkBundle |
- | 表示应用是否为混合打包的HarmonyOS应用。混合打包场景配置为“true”,非混合打包场景配置为“false”。该标签值由IDE自动配置 | 布尔类型 | 可缺省,缺省值为“false”。 | |
smartWindowSize |
- | 该标签用于在悬浮窗场景下表示应用的模拟窗口的尺寸。配置格式为“正整数*正整数”,单位为vp。正整数取值范围为[200,2000]。 | 字符串 | 可缺省,缺省值为空。 | |
smartWindowDeviceType |
- | 表示应用可以在哪些设备上使用模拟窗口打开.取值为:智能手机:phone;平板:tablet智慧屏:tv | 字符串数组 | 可缺省,缺省值为空。 | ["phone","tv"] |
targetBundleList |
- | 表示允许以免安装方式拉起的其他HarmonyOS应用,列表取值为每个HarmonyOS应用的bundleName,多个bundleName之间用英文“,”区分,最多配置10个bundleName。如果被拉起的应用不支持免安装方式,则拉起失败。 | 字符串 | 否。 | "com.xx.xx,com.aa.aa" |
"app": {
"bundleName": "com.huawei.hiworld.example", //包名
"vendor": "huawei", //开发厂商
"version": {
"code": 2, //对用户不可见 对应安卓versioncode
"name": "2.0"对应户可见 对应安卓versionname
}
"apiVersion": {
"compatible": 3,
"target": 3,
"releaseType": "Beta1"
}
}
deviceConfig对象的内部结构
- deviceConfig包含在具体设备上的应用配置信息,可以包含
default
、phone
、tablet
、tv
、car
、wearable
、liteWearable
和smartVision
等属性。default
标签内的配置是适用于所有设备通用,其他设备类型如果有特殊的需求,则需要在该设备类型的标签下进行配置。
deviceConfig
对象的内部结构说明
属性名称 | 含义 | 是否可缺省 |
---|---|---|
default |
表示所有设备通用的应用配置信息。 | 否 |
phone |
表示手机类设备的应用配置信息。 | 可缺省 |
table |
表示平板的应用配置信息。 | 可缺省 |
car |
表示车机特有的应用配置信息。 | 可缺省 |
tv |
表示智慧屏特有的应用配置信息。 | 可缺省 |
wearable |
表示智能穿戴特有的应用配置信息。 | 可缺省 |
liteWearable |
表示轻量级智能穿戴特有的应用配置信息。 | 可缺省 |
smartVision |
表示智能摄像头特有的应用配置信息。 | 可缺省 |
default
、phone
、tablet
、tv
、car
、wearable
、liteWearable
和smartVision
等对象的内部结构
说明
属性名称 | 子属性含义 | 含义 | 数据类型 | 是否可缺省 |
---|---|---|---|---|
jointUserId |
表示应用的共享userid。通常情况下,不同的应用运行在不同的进程中,应用的资源是无法共享。如果开发者的多个应用之间需要共享资源,则可以通过相同的jointUserId值实现,前提是这些应用的签名相同。该标签仅对系统应用生效,且仅适用于手机、平板、智慧屏、车机、智能穿戴。该字段在API Version 3及更高版本不再支持配置。 |
字符串 | 可缺省,缺省为空。 | |
process |
表示应用或者Ability的进程名。如果在“deviceConfig”标签下配置了“process”标签,则该应用的所有Ability都运行在这个进程中。 如果在“abilities”标签下也为某个Ability配置了“process”标签,则该Ability就运行在这个进程中。 | 字符串 | 可缺省,缺省为应用的软件包名 | |
supportBackup |
表示应用是否支持备份和恢复。如果配置为“false”,则不支持为该应用执行备份或恢复操作。 | 布尔类型 | 可缺省,缺省为false | |
compressNativeLibs |
表示libs库是否以压缩存储的方式打包到 HAP 包。如果配置为“false”,则libs库以不压缩的方式存储,HAP 包在安装时无需解压libs,运行时会直接从HAP内加载libs库。 | 布尔类型 | 可缺省,缺省为true | |
network |
表示网络安全性配置。该标签允许应用通过配置文件的安全声明来自定义其网络安全,无需修改应用代码。 | 对象 |
可缺省,缺省为空 | |
cleartextTraffic |
表示是否允许应用使用明文网络流量(例如,明文HTTP)。true:允许应用使用明文流量的请求。false:拒绝应用使用明文流量的请求 | 布尔类型 | 可缺省,缺省为“false”。 | |
securityConfig |
表表示应用的网络安全配置信息。 | 对象 |
可缺省,缺省为空 |
securityConfig
对象的内部结构说明
属性名称 | 子属性名称 | 含义 | 数据类型 | 是否可缺省 |
---|---|---|---|---|
domainSettings |
表示自定义的网域范围的安全配置,支持多层嵌套,即一个domainSettings对象中允许嵌套更小网域范围的domainSettings对象。 | 对象 |
可缺省 | |
cleartextPermitted |
表示自定义的网域范围内是否允许明文流量传输。当useCleartext和securityConfig同时存在时,自定义网域是否允许明文流量传输以cleartextPermitted的取值为准。true:允许明文流量传输。false:拒绝明文流量传输。 | 布尔类型 |
||
domains |
表示域名配置信息,包含两个参数:subDomains和name。subDomains(布尔类型):表示是否包含子域名。如果为 “true”,此网域规则将与相应网域及所有子网域(包括子网域的子网域)匹配。否则,该规则仅适用于精确匹配项。name(字符串):表示域名名称。 | 对象数组 |
deviceConfig示例
"deviceConfig": {
"default": {
"process": "com.huawei.hiworld.example", //进程名称
"supportBackup": false,//不支持备份和恢复
"network": {
"cleartextTraffic": true, //允许应用使用明文流量的请求(http)
"securityConfig": {
"domainSettings": {
"cleartextPermitted": true, //允许明文流量传输
"domains": [
{
"subDomains": true, //包含子域名
"name": "example.ohos.com"//子域名名称
}
]
}
}
}
}
}
module对象的内部结构
module
对象包含HAP
包的配置信息,内部结构说明如下
属性名称 | 含义 | 数据类型 | 是否可缺省 |
---|---|---|---|
mainAbility |
表示HAP包的入口ability名称。该标签的值应配置为“module > abilities”中存在的Page类型ability的名称。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串eg:com.example.testapp.MainAbility |
如果存在page类型的ability,则该字段不可缺省。 |
package |
表示 HAP 的包结构名称,在应用内应保证唯一性。 | 字符串 eg:com.example.testapp |
否 |
name |
表示 HAP 的类名 | 字符串eg:.MyApplication |
否 |
description |
表示 HAP 的描述信息。 | 字符串 | 可缺省,缺省值为空。 |
supportedModes |
表示应用支持的运行模式。当前只定义了驾驶模式(drive)。 | 可缺省,缺省值为空。 | |
deviceType |
表示允许 Ability 运行的设备类型 | 字符串数组eg: ["phone" ,"tv"] |
否 |
distro |
表示 HAP 发布的具体描述 | 对象 | 否 |
metaData |
表示 HAP 的元信息 | 对象 | 可缺省,缺省值为空。 |
abilities |
表示当前模块内的所有Ability。采用对象数组格式,其中每个元素表示一个Ability对象。 | 对象数组 | 可缺省,缺省值为空。 |
js |
表示基于 JS UI 框架开发的 JS 模块集合,其中的每个元素代表一个 JS 模块的信息。 | 对象数组 | 可缺省,缺省值为空。 |
shortcuts |
表示应用的快捷方式信息。采用对象数组格式,其中的每个元素表示一个快捷方式对象。 | 对象数组 | 可缺省,缺省值为空。 |
defPermission |
表示应用定义的权限。应用调用者必须申请这些权限,才能正常调用该应用。 | 对象数组 | 可缺省,缺省值为空。 |
reqPermissions |
表示应用运行时向系统申请的权限。 | 对象数组 | 可缺省,缺省值为空。 |
colorMode |
表示应用自身的颜色模式。dark :表示按照深色模式选取资源。light :表示按照浅色模式选取资源。auto :表示跟随系统的颜色模式值选取资源。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 |
字符串 | 可缺省,缺省值为“auto”。 |
theme |
表示应用的主题,标签值为自定义主题资源的索引,或系统资源的索引。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为空。 |
entryTheme |
表示内部主题的关键字,标签值配置为该名称对应的资源索引。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为空。 |
resizeable |
表示应用是否支持多窗口特性。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 布尔类型 | 可缺省,缺省值为“true”。 |
module
示例:
"module": {
"mainAbility": "MainAbility",
"package": "com.example.myapplication.entry",
"name": ".MyOHOSAbilityPackage",
"description": "$string:description_application",
"supportedModes": [
"drive"
],
"deviceType": [
"car"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "ohos_entry",
"moduleType": "entry"
},
"abilities": [
...
],
"shortcuts": [
...
],
"js": [
...
],
"reqPermissions": [
...
],
"defPermissions": [
...
],
"colorMode": "light"
}