HarmonyOS应用的每个HAP的根目录下都存在一个config.json配置文件,如图4-10所示。
图4-10 config.json配置文件
配置文件内容主要涵盖以下三个方面。
(1)应用的全局配置信息:包含应用的包名、生产厂商、版本号等基本信息。
(2)应用在具体设备上的配置信息:包含应用的备份恢复、网络安全等能力。
(3)HAP包的配置信息:包含每个Ability必须定义的基本属性(如包名、类名、类型以及Ability提供的能力)以及应用访问系统或其他应用受保护部分所需的权限等。
config.json配置文件采用JSON文件格式,其中包含一系列配置项,每个配置项由属性和值两部分构成。
(1)属性:属性出现顺序不分先后,且每个属性最多只允许出现一次。
(2)值:每个属性的值为JSON的基本数据类型(数值、字符串、布尔值、数组、对象或者null类型)。
应用的config.json配置文件由app、deviceConfig和module三个部分组成,缺一不可,其内部结构说明参见表4-3。
表4-3 配置文件的内部结构说明
以下是HelloWorld应用的配置文件:
接下来详解介绍上述配置的含义。
app对象包含应用的全局配置信息,内部结构说明如下。
· bundleName:表示应用的包名,用于标识应用的唯一性。包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头,支持的字符串长度为7~127字节。包名通常采用业界常用的反域名形式表示(如com.waylau.hmos)。建议第一级为域名扩展名com,第二级为厂商/个人名,第三级为应用名,也可以采用多级。
· vendor:表示对应用开发厂商的描述,字符串长度不超过255字节。该值可缺省,缺省值为空。
· version:表示应用的版本信息。
① code:表示应用的版本号,对用户不可见。其取值为大于零的整数。
② name:表示应用的版本号,用于向用户呈现。其取值可以自定义。
· apiVersion:表示应用依赖的HarmonyOS的API版本。
① compatible:表示应用运行需要的API最小版本。其取值为大于零的整数。
② target:表示应用运行需要的API目标版本。其取值为大于零的整数。可缺省,缺省值为应用所在设备的当前API版本。
③ releaseType:表示应用运行需要的API目标版本的类型。其取值为CanaryN(受限发布的版本)、BetaN(公开发布的Beta版本)或者Release(公开发布的正式版本),其中N代表大于零的整数。其值可缺省,缺省值为Release。
deviceConfig包含在具体设备上的应用配置信息,可以包含default、phone、tablet、tv、car、wearable、liteWearable和smartVision等属性。default标签内的配置适用于所有设备,其他设备类型如果有特殊需求,则需要在该设备类型的标签下进行配置。
· default:表示所有设备通用的应用配置信息。
· phone:表示手机类设备的应用信息配置。
· tablet:表示平板的应用配置信息。
· tv:表示智慧屏特有的应用配置信息。
· car:表示车机特有的应用配置信息。
· wearable:表示智能穿戴特有的应用配置信息。
· liteWearable:表示轻量级智能穿戴特有的应用配置信息。
· smartVision:表示智能摄像头特有的应用配置信息。
default、phone、tablet、tv、car、wearable、liteWearable和smartVision等对象的内部结构说明参见表4-4。
表4-4 不同设备的内部结构说明
表4-4中的network对象的内部结构说明如表4-5所示。
表4-5 network对象的内部结构说明
(续表)
表4-5中的securityConfig对象的domainSettings属性的内部结构说明如表4-6所示。
表4-6 securityConfig对象的domainSettings属性的内部结构说明
deviceConfig示例如下:
module对象包含HAP包的配置信息,内部结构说明参见表4-7。
表4-7 module对象的内部结构说明
表4-7中的distro对象的内部结构说明参见表4-8。
表4-8 distro对象的内部结构说明
表4-7中的abilities对象的内部结构说明参见表4-9。
表4-9 abilities对象的内部结构说明
(续表)
(续表)
更多配置项的含义请参阅官方文档。