鸿蒙config.json配置简介

  • 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包含在具体设备上的应用配置信息,可以包含defaultphonetablettvcarwearableliteWearablesmartVision等属性。default标签内的配置是适用于所有设备通用,其他设备类型如果有特殊的需求,则需要在该设备类型的标签下进行配置。

deviceConfig对象的内部结构说明

属性名称 含义 是否可缺省
default 表示所有设备通用的应用配置信息。
phone 表示手机类设备的应用配置信息。 可缺省
table 表示平板的应用配置信息。 可缺省
car 表示车机特有的应用配置信息。 可缺省
tv 表示智慧屏特有的应用配置信息。 可缺省
wearable 表示智能穿戴特有的应用配置信息。 可缺省
liteWearable 表示轻量级智能穿戴特有的应用配置信息。 可缺省
smartVision 表示智能摄像头特有的应用配置信息。 可缺省

defaultphonetablettvcarwearableliteWearablesmartVision等对象的内部结构说明

属性名称 子属性含义 含义 数据类型 是否可缺省
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"
}

你可能感兴趣的:(鸿蒙config.json配置简介)