1# deviceConfig内部结构 2<!--Kit: Ability Kit--> 3<!--Subsystem: BundleManager--> 4<!--Owner: @wanghang904--> 5<!--Designer: @hanfeng6--> 6<!--Tester: @kongjing2--> 7<!--Adviser: @Brilliantry_Rui--> 8 9`deviceConfig` 包含设备上的应用配置信息,支持 `default`、`tv`、`car`、`wearable` 等属性。`default` 标签内的配置适用于所有通用设备,其他设备类型如需特定配置,需在相应标签下进行配置。 10 11## deviceConfig对象内部结构 12 13**表1** **deviceConfig对象内部结构说明** 14 15| 属性名称 | 含义 | 数据类型 | 是否可缺省 | 16| -------- | -------- | -------- | -------- | 17| default | 能够使用全部系统能力的设备。 | 对象 | 可缺省,缺省值为空。 | 18| tablet | 标识平板特有的应用配置信息。 | 对象 | 可缺省,缺省值为空。 | 19| tv | 标识智慧屏特有的应用配置信息。 | 对象 | 可缺省,缺省值为空。 | 20| car | 标识车机特有的应用配置信息。 | 对象 | 可缺省,缺省值为空。 | 21| wearable | 标识智能穿戴特有的应用配置信息。 | 对象 | 可缺省,缺省值为空。 | 22 23 24上表中各设备对象的内部结构说明参见[deviceConfig设备对象内部结构](#deviceconfig设备对象内部结构)。 25 26## deviceConfig设备对象内部结构 27 28**表2** **deviceConfig设备对象内部结构说明** 29 30| 属性名称 | 含义 | 数据类型 | 是否可缺省 | 31| -------- | -------- | -------- | -------- | 32| process | 标识应用或Ability的进程名。如果在deviceConfig标签下配置了process标签,则应用的所有Ability运行在此进程中。如果在abilities标签下为某个Ability配置了process标签,则该Ability运行在此进程中。该标签最大长度为31。 | 字符串 | 可缺省,缺省值为空。 | 33| keepAlive | 标识应用是否始终保持运行状态,仅支持系统应用配置,三方应用配置不生效。<br/>- true:应用始终保持为运行状态。系统启动时,该应用会被系统驱动起来。应用进程退出后,系统也会重新启动应用进程。<br/>- false:应用不会始终保持为运行状态。系统启动时,该应用不会被系统驱动起来。应用进程退出后,系统不会重新启动应用进程。 | 布尔类型 | 可缺省,缺省值为false。 | 34| supportBackup | 标识应用是否支持备份和恢复。<br/>- true:该应用支持执行备份或恢复操作。<br/>- false:该应用不支持执行备份或恢复操作。 | 布尔类型 | 可缺省,缺省值为false。 | 35| compressNativeLibs | 该字段在打包HAP时标识libs库是否以压缩方式存储。<br/>- true:libs库以压缩方式存储。<br/>- false:libs库以不压缩方式存储。<br>在应用安装时,该字段用于标识libs库是否需要解压出来(API16及之后版本支持,之前的版本均默认解压libs库)。<br/>- true:解压。<br/>- false:不解压。 | 布尔类型 | 该标签可缺省。打包HAP时缺省值为false,安装应用时未配置则默认为true。 | 36| network | 标识网络安全性配置。该标签允许应用通过配置文件的安全声明自定义其网络安全,无需修改应用代码。 | 对象 | 可缺省,缺省值为空。 | 37 38## network对象内部结构 39 40**表3** **network对象内部结构说明** 41 42| 属性名称 | 含义 | 数据类型 | 是否可缺省 | 43| -------- | -------- | -------- | -------- | 44| cleartextTraffic | 标识是否允许应用使用明文网络流量(例如,明文HTTP)。<br/>- true:允许应用使用明文流量的请求。<br/>- false:拒绝应用使用明文流量的请求。 | 布尔类型 | 可缺省,缺省值为false。 | 45| securityConfig | 标识应用的网络安全配置信息。 | 对象 | 可缺省,缺省为空。 | 46 47## securityConfig对象内部结构 48 49**表4** **securityConfig对象内部结构说明** 50 51| 属性名称 | 含义 | 数据类型 | 是否可缺省 | 52| -------- | -------- | -------- | -------- | 53| domainSettings | 标识自定义网域范围的安全配置,支持多层嵌套。一个domainSettings对象中可嵌套更小网域范围的domainSettings对象。 | 对象类型 | 可缺省,缺省为空。 | 54 55## domainSettings对象内部结构 56 57**表5** **domainSettings对象内部结构说明** 58 59| 属性名称 | 含义 | 数据类型 | 是否可缺省 | 60| -------- | -------- | -------- | -------- | 61| cleartextPermitted | 标识自定义网域范围内是否允许明文流量传输。cleartextTraffic和securityConfig同时存在时,以cleartextPermitted的值为准。<br/>- true:允许明文流量传输。<br/>- false:拒绝明文流量传输。 | 布尔类型 | 可缺省,缺省值为false。 | 62| domains | 标识域名配置信息,包含两个参数:subdomains和name。<br/>- subdomains:表示是否包含子域名。取值为"true"时,表示该规则将与相应网域及所有子网域(包括子网域的子网域)匹配;取值为"false"时,规则仅适用于精确匹配项。<br/>- name:表示域名名称,为字符串类型。 | 对象数组 | 可缺省,缺省值为空。 | 63 64以下是deviceConfig的示例: 65 66```json 67"deviceConfig": { 68 "default": { 69 "process": "com.example.test.example", 70 "supportBackup": false, 71 "network": { 72 "cleartextTraffic": true, 73 "securityConfig": { 74 "domainSettings": { 75 "cleartextPermitted": true, 76 "domains": [ 77 { 78 "subdomains": true, 79 "name": "example.ohos.com" 80 } 81 ] 82 } 83 } 84 } 85 } 86} 87```