# deviceConfig内部结构
`deviceConfig` 包含设备上的应用配置信息,支持 `default`、`tv`、`car`、`wearable` 等属性。`default` 标签内的配置适用于所有通用设备,其他设备类型如需特定配置,需在相应标签下进行配置。
## deviceConfig对象内部结构
**表1** **deviceConfig对象内部结构说明**
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------- | -------- | -------- |
| default | 能够使用全部系统能力的设备。 | 对象 | 可缺省,缺省值为空。 |
| tablet | 标识平板特有的应用配置信息。 | 对象 | 可缺省,缺省值为空。 |
| tv | 标识智慧屏特有的应用配置信息。 | 对象 | 可缺省,缺省值为空。 |
| car | 标识车机特有的应用配置信息。 | 对象 | 可缺省,缺省值为空。 |
| wearable | 标识智能穿戴特有的应用配置信息。 | 对象 | 可缺省,缺省值为空。 |
上表中各设备对象的内部结构说明参见[deviceConfig设备对象内部结构](#deviceconfig设备对象内部结构)。
## deviceConfig设备对象内部结构
**表2** **deviceConfig设备对象内部结构说明**
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------- | -------- | -------- |
| process | 标识应用或Ability的进程名。如果在deviceConfig标签下配置了process标签,则应用的所有Ability运行在此进程中。如果在abilities标签下为某个Ability配置了process标签,则该Ability运行在此进程中。该标签最大长度为31。 | 字符串 | 可缺省,缺省值为空。 |
| keepAlive | 标识应用是否始终保持运行状态,仅支持系统应用配置,三方应用配置不生效。
- true:应用始终保持为运行状态。系统启动时,该应用会被系统驱动起来。应用进程退出后,系统也会重新启动应用进程。
- false:应用不会始终保持为运行状态。系统启动时,该应用不会被系统驱动起来。应用进程退出后,系统不会重新启动应用进程。 | 布尔类型 | 可缺省,缺省值为false。 |
| supportBackup | 标识应用是否支持备份和恢复。
- true:该应用支持执行备份或恢复操作。
- false:该应用不支持执行备份或恢复操作。 | 布尔类型 | 可缺省,缺省值为false。 |
| compressNativeLibs | 该字段在打包HAP时标识libs库是否以压缩方式存储。
- true:libs库以压缩方式存储。
- false:libs库以不压缩方式存储。
在应用安装时,该字段用于标识libs库是否需要解压出来(API16及之后版本支持,之前的版本均默认解压libs库)。
- true:解压。
- false:不解压。 | 布尔类型 | 该标签可缺省。打包HAP时缺省值为false,安装应用时未配置则默认为true。 |
| network | 标识网络安全性配置。该标签允许应用通过配置文件的安全声明自定义其网络安全,无需修改应用代码。 | 对象 | 可缺省,缺省值为空。 |
## network对象内部结构
**表3** **network对象内部结构说明**
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------- | -------- | -------- |
| cleartextTraffic | 标识是否允许应用使用明文网络流量(例如,明文HTTP)。
- true:允许应用使用明文流量的请求。
- false:拒绝应用使用明文流量的请求。 | 布尔类型 | 可缺省,缺省值为false。 |
| securityConfig | 标识应用的网络安全配置信息。 | 对象 | 可缺省,缺省为空。 |
## securityConfig对象内部结构
**表4** **securityConfig对象内部结构说明**
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------- | -------- | -------- |
| domainSettings | 标识自定义网域范围的安全配置,支持多层嵌套。一个domainSettings对象中可嵌套更小网域范围的domainSettings对象。 | 对象类型 | 可缺省,缺省为空。 |
## domainSettings对象内部结构
**表5** **domainSettings对象内部结构说明**
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------- | -------- | -------- |
| cleartextPermitted | 标识自定义网域范围内是否允许明文流量传输。cleartextTraffic和securityConfig同时存在时,以cleartextPermitted的值为准。
- true:允许明文流量传输。
- false:拒绝明文流量传输。 | 布尔类型 | 可缺省,缺省值为false。 |
| domains | 标识域名配置信息,包含两个参数:subdomains和name。
- subdomains:表示是否包含子域名。取值为"true"时,表示该规则将与相应网域及所有子网域(包括子网域的子网域)匹配;取值为"false"时,规则仅适用于精确匹配项。
- name:表示域名名称,为字符串类型。 | 对象数组 | 可缺省,缺省值为空。 |
以下是deviceConfig的示例:
```json
"deviceConfig": {
"default": {
"process": "com.example.test.example",
"supportBackup": false,
"network": {
"cleartextTraffic": true,
"securityConfig": {
"domainSettings": {
"cleartextPermitted": true,
"domains": [
{
"subdomains": true,
"name": "example.ohos.com"
}
]
}
}
}
}
}
```