config.json詳細(xì)細(xì)節(jié)
- 應(yīng)用的每個(gè)HAP的根目錄下都存在一個(gè)config.json 配置文件
1)應(yīng)用全局配置信息,包含應(yīng)用包名,生產(chǎn)廠商,版本號等基本信息
2)應(yīng)用在具體設(shè)備上的配置信息
3)HAP包的配置信息,包含每個(gè)Ability必須定義的基本屬性
4)應(yīng)用訪問系統(tǒng)或其他應(yīng)用受保護(hù)所需的權(quán)限 - config.json 文件
1)屬性:不分先后 唯一的
2)值:可以是 (數(shù)值 字符串 布爾值 數(shù)組 對象 或者 null) - config.json 文件內(nèi)部結(jié)構(gòu)
app 應(yīng)用的全局配置信息 每個(gè)模塊都是一樣的
deviceConfig 在具體設(shè)備上的配置信息
module HAP包配置信息
每個(gè)模塊這三塊是缺一不可的
app:
{
"app": { /*應(yīng)用的全局配置信息*/
"bundleName": "com.example.mydemo", /*應(yīng)用包名 唯一*/
"vendor": "example", /*是對應(yīng)用開發(fā)商的描述*/
"version": { /*應(yīng)用版本信息*/
"code": 1000000, /*版本號*/
"name": "1.0.0" /*版本名稱*/
}
},
"apiVersion": { /*應(yīng)用依賴鴻蒙API的版本*/
"compatible": 5, /*API 最小版本*/
"target": 5 /*運(yùn)行需要的版本*/
}
}
2 deviceConfig
"deviceConfig": {}, //應(yīng)用在具體設(shè)備上的信息
3 module
"module": { /*HAP包配置信息 只對對應(yīng)的HAP包生效*/
"package": "com.example.mydemo", /*包名*/
"name": ".MyApplication", /*主入口類*/
"mainAbility": "com.example.mydemo.MainAbility",
"deviceType": [ /*當(dāng)前HAP包在什么設(shè)備上運(yùn)行,可以指定多個(gè)*/
"phone",
"tv"
],
"distro": { /*發(fā)布相關(guān)*/
"deliveryWithInstall": true, /*能不能隨著app安裝而安裝*/
"moduleName": "entry", /*模塊名字*/
"moduleType": "entry", /*模塊類型*/
"installationFree": false
},
"abilities": [ /*HAP中所有的 Ability 都需要在這里注冊*/
{
"skills": [ /*這個(gè)Ability 接受Intent的特征 系統(tǒng)啟動(dòng)的頁面*/
{
"entities": [ /*類型*/
"entity.system.home" /*這個(gè)是鴻蒙系定義好的 系統(tǒng)主頁 可以自定義*/
],
"actions": [ /*行為*/
"action.system.home" /*去app 主頁的行為 可以自定義*/
]
}
],
"orientation": "unspecified", /*橫屏豎屏*/
/* "unspecified", 跟隨系統(tǒng)
"landscape", 橫屏
"portrait", 豎屏
"followRecent" 跟隨上一個(gè)頁面*/
"name": "com.example.mydemo.MainAbility", /*Ability名稱*/
"icon": "$media:icon", /*應(yīng)用圖標(biāo)*/
"description": "$string:mainability_description", /*描述*/
"label": "$string:entry_MainAbility", /*顯示的名稱*/
"type": "page", /*Ability類型*/
"launchType": "standard" /*Ability啟動(dòng)模式*/
/*"singleton", 可以有多個(gè)實(shí)例
"standard", 只有一個(gè)實(shí)例
"singleMissio*/"
}
]
}
開發(fā)完成 了解一下 打包的APP
HAP的分類
HAP可分為 entry 和feature 兩種模塊類型:
1). entry: 應(yīng)用的主模塊。
一個(gè)APP中,對于同一設(shè)備類型必須有且只有一個(gè)entry 類型的HAP,可以獨(dú)立安裝運(yùn)行。
2). feature: 應(yīng)用的動(dòng)態(tài)特性模塊
一個(gè)app 可以包含零個(gè)或多個(gè) feature 類型的HAPHAP 的組成
HAP是由代碼Ability,資源 應(yīng)用配置 第三方庫 等,只由包含Ability的HAP才能獨(dú)立運(yùn)行
1). Ability
一個(gè)應(yīng)用可以包含一個(gè)或多個(gè) Ability 是應(yīng)用所具備的能力
Ability分為兩種類型 FA(Feature Ability) 和 PA(Particle Ability)
FA有UI界面,PA沒有UI界面
2). 庫文件
第三方代碼 存放在libs目錄。
3). 資源文件
資源文件(字符串 圖片 音視頻等)存放于resources 目錄下
4). 配置文件
配置文件(config.json) 用于聲明Ability,版本信息,以及應(yīng)用所需權(quán)限等信息pack.info文件
描述應(yīng)用軟件包中的每個(gè)HAP的屬性,由IDE編譯生成,應(yīng)用市場根據(jù)該文件進(jìn)行拆包和HAP的分類儲存。
HAP的具體屬性包括:
1)delivery-with-install:表示該HAP是否支持隨應(yīng)用安裝
2)name:HAP 文件名稱
3)module-type 模塊類型 ,entry 或 feature
4)device-type:表示支持該HAP運(yùn)行的設(shè)備類型