openharmony应用包结构配置文件
应用开发中,需要在config.json配置文件中对应的包结构进行声明
配置文件的内部结构:
config.json配置文件由app、deviceConfig、module三部分组成,缺一不可。
- app:表示应用的全局配置信息
- deviceConfig:表示应用在具体设备上的配置信息
- module:表示HAP包的配置信息。该标签的配置只对当前HAP生效
{
"app": {
"vendor": "example",
"bundleName": "com.example.helloworld",
"version": {
"code": 1000000,
"name": "1.0.0"
}
},
"deviceConfig": {},
"module": {
"mainAbility": ".MainAbility",
"deviceType": [
"default",
"tablet"
],
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility",
"name": ".MainAbility",
"srcLanguage": "ets",
"icon": "$media:icon",
"description": "$string:MainAbility_desc",
"formsEnabled": false,
"label": "$string:MainAbility_label",
"type": "page",
"launchType": "standard"
}
],
"distro": {
"moduleType": "entry",
"installationFree": false,
"deliveryWithInstall": true,
"moduleName": "entry"
},
"package": "com.example.entry",
"name": ".entry",
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index",
"pages/second"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
app对象的内部结构:
- vendor:表示对应用开发商的描述。
- bundleName:表示应用包名,用于标识应用的唯一性
- version:表示应用的版本信息。向用户呈现
name:表示应用版本号。A.B.C(API5以前,取值范围0-999),A.B.C.D(API6后,前三位取值范围0-99,后一位为0-999)
code:表示应用版本号。管理应用,不对用户呈现
minCompatibleVersionCode:表示应用可兼容的最低版本号 - apiVersion:标识应用程序所依赖的openharmony API版本
compatible:运行应用所需的最低API版本
target:用于标识应用运行所需的目标API版本
resleaseType:用于标识应用运行所需的目标API类型
"app": {
"vendor": "example",
"bundleName": "com.example.helloworld",
"version": {
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 8,
"target": 8,
"releaseType": "Beta1"
}
}
deviceConfig对象的内部结构:
- default:表示所有设备通用的应用配置信息
- table:表示平板的应用配置信息
- tv:表示智慧屏特有的应用配置信息
- car:表示车机特有的应用配置信息
- wearable:表示智能穿戴特有的应用配置信息
不同设备的内部结构: - process:表示应用或Ability的进程名
- supportBackup:表示应用是否支持备份和恢复
- network:表示网络安全性配置
cleartextTraffic:表示是否允许应用使用明文网络流量
securityConfig:表示应用的网络安全配置信息
…
"deviceConfig": {
"default": {
"process": "com.example.test.example",
"supportBackup": false,
"network": {
"cleartextTraffic": true,
"securityConfig": {
"domainSettings": {
"cleartextPermitted": true,
"domains": [
{
"subdomains": true,
"name": "example.ohos.com"
}
]
}
}
}
}
}
module对象的内部结构:
- mainAbility:服务中心图标露出的ability,常驻进程拉起时会启动mainAbility
- package:表示HAP的包结构名称
- name:表示HAP的类名
- deviceType:表示允许Ability运行的设备类型
- distro:表示HAP发布的具体描述
- js:表示基于ArkUI框架开发的JS模块集合
- reqPermission:表示应用运行时向系统申请的权限
- abilities:表示当前模块内的所有ability
资源文件的分类
应用开发中使用的各种资源,需要放在特定的子目录中存储管理
resources目录:
应用的资源文件(字符串、图片、音频等)统一存放在resources
主要分为两大类目录:base目录与限定词目录、rawfile目录
resources
|---base // 默认存在的目录
| |---element
| | |---string.json
| |---media
| | |---icon.png
|---en_GB-vertical-car-mdpi // 限定词目录示例,需要开发者自行创建
| |---element
| | |---string.json
| |---media
| | |---icon.png
|---rawfile // 默认存在的目录
资源组目录:
base目录下可创建资源组目录(包括element、media、animation、layout、graphic、profile)
element:表示元素资源,以下每一类数据都采用相应的JSON文件来表征。
- boolean,布尔型
- color,颜色
- float,浮点型
- intarray,整型数组
- integer,整型
- pattern,样式
- plural,复数形式
- strarray,字符串数组
- string,字符串
element目录中的文件名称建议与下面的文件名保持一致。每个文件中只能包含同一类型的数据。
- boolean.json
- color.json
- float.json
- intarray.json
- integer.json
- pattern.json
- plural.json
- strarray.json
- string.json
media:表示媒体资源,包括图片、音频、视频等非文本格式的文件。 文件名可自定义,例如:icon.png。
animation:表示动画资源,采用XML文件格式。 文件名可自定义,例如:zoom_in.xml。
layout:表示布局资源,采用XML文件格式。 文件名可自定义,例如:home_layout.xml。
graphic:表示可绘制资源,采用XML文件格式。 文件名可自定义,例如:notifications_dark.xml。
profile:表示其他类型文件,以原始文件形式保存。 文件名可自定义。