config.json详细细节
- 应用的每个HAP的根目录下都存在一个config.json 配置文件
1)应用全局配置信息,包含应用包名,生产厂商,版本号等基本信息
2)应用在具体设备上的配置信息
3)HAP包的配置信息,包含每个Ability必须定义的基本属性
4)应用访问系统或其他应用受保护所需的权限 - config.json 文件
1)属性:不分先后 唯一的
2)值:可以是 (数值 字符串 布尔值 数组 对象 或者 null) - config.json 文件内部结构
app 应用的全局配置信息 每个模块都是一样的
deviceConfig 在具体设备上的配置信息
module HAP包配置信息
每个模块这三块是缺一不可的
app:
{
"app": { /*应用的全局配置信息*/
"bundleName": "com.example.mydemo", /*应用包名 唯一*/
"vendor": "example", /*是对应用开发商的描述*/
"version": { /*应用版本信息*/
"code": 1000000, /*版本号*/
"name": "1.0.0" /*版本名称*/
}
},
"apiVersion": { /*应用依赖鸿蒙API的版本*/
"compatible": 5, /*API 最小版本*/
"target": 5 /*运行需要的版本*/
}
}
2 deviceConfig
"deviceConfig": {}, //应用在具体设备上的信息
3 module
"module": { /*HAP包配置信息 只对对应的HAP包生效*/
"package": "com.example.mydemo", /*包名*/
"name": ".MyApplication", /*主入口类*/
"mainAbility": "com.example.mydemo.MainAbility",
"deviceType": [ /*当前HAP包在什么设备上运行,可以指定多个*/
"phone",
"tv"
],
"distro": { /*发布相关*/
"deliveryWithInstall": true, /*能不能随着app安装而安装*/
"moduleName": "entry", /*模块名字*/
"moduleType": "entry", /*模块类型*/
"installationFree": false
},
"abilities": [ /*HAP中所有的 Ability 都需要在这里注册*/
{
"skills": [ /*这个Ability 接受Intent的特征 系统启动的页面*/
{
"entities": [ /*类型*/
"entity.system.home" /*这个是鸿蒙系定义好的 系统主页 可以自定义*/
],
"actions": [ /*行为*/
"action.system.home" /*去app 主页的行为 可以自定义*/
]
}
],
"orientation": "unspecified", /*横屏竖屏*/
/* "unspecified", 跟随系统
"landscape", 横屏
"portrait", 竖屏
"followRecent" 跟随上一个页面*/
"name": "com.example.mydemo.MainAbility", /*Ability名称*/
"icon": "$media:icon", /*应用图标*/
"description": "$string:mainability_description", /*描述*/
"label": "$string:entry_MainAbility", /*显示的名称*/
"type": "page", /*Ability类型*/
"launchType": "standard" /*Ability启动模式*/
/*"singleton", 可以有多个实例
"standard", 只有一个实例
"singleMissio*/"
}
]
}
开发完成 了解一下 打包的APP
HAP的分类
HAP可分为 entry 和feature 两种模块类型:
1). entry: 应用的主模块。
一个APP中,对于同一设备类型必须有且只有一个entry 类型的HAP,可以独立安装运行。
2). feature: 应用的动态特性模块
一个app 可以包含零个或多个 feature 类型的HAPHAP 的组成
HAP是由代码Ability,资源 应用配置 第三方库 等,只由包含Ability的HAP才能独立运行
1). Ability
一个应用可以包含一个或多个 Ability 是应用所具备的能力
Ability分为两种类型 FA(Feature Ability) 和 PA(Particle Ability)
FA有UI界面,PA没有UI界面
2). 库文件
第三方代码 存放在libs目录。
3). 资源文件
资源文件(字符串 图片 音视频等)存放于resources 目录下
4). 配置文件
配置文件(config.json) 用于声明Ability,版本信息,以及应用所需权限等信息pack.info文件
描述应用软件包中的每个HAP的属性,由IDE编译生成,应用市场根据该文件进行拆包和HAP的分类储存。
HAP的具体属性包括:
1)delivery-with-install:表示该HAP是否支持随应用安装
2)name:HAP 文件名称
3)module-type 模块类型 ,entry 或 feature
4)device-type:表示支持该HAP运行的设备类型