鸿蒙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"
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容