配置文件的差異
FA模型應(yīng)用在[config.json文件]中描述應(yīng)用的基本信息,一個(gè)應(yīng)用工程中可以創(chuàng)建多個(gè)Module,每個(gè)Module中都有一份config.json文件。config.json由app、deviceConfig和module三部分組成,app標(biāo)簽用于配置應(yīng)用級(jí)別的屬性,如果一個(gè)應(yīng)用有多個(gè)Module,需要由開發(fā)者保證各個(gè)config.json文件中app標(biāo)簽配置的一致性。
Stage模型應(yīng)用在[app.json5]和[module.json]文件中描述應(yīng)用的基本信息,和FA模型應(yīng)用類似,一個(gè)Stage模型應(yīng)用工程中同樣可以創(chuàng)建多個(gè)Module,但是一個(gè)應(yīng)用工程中僅存在一份app.json5,用于配置應(yīng)用級(jí)別的屬性,對(duì)每個(gè)Module都生效;每個(gè)Module中都有一份module.json5配置文件,用于配置Module級(jí)別的屬性,僅對(duì)當(dāng)前Module生效。 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
點(diǎn)擊或者復(fù)制轉(zhuǎn)到。
圖1 配置文件差異
app.json5配置文件
配置文件示例
先通過一個(gè)示例,整體認(rèn)識(shí)一下app.json5配置文件。
{
"app": {
"bundleName": "com.application.myapplication",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.0",
"icon": "$media:app_icon",
"label": "$string:app_name",
"description": "$string:description_application",
"minAPIVersion": 9,
"targetAPIVersion": 9,
"apiReleaseType": "Release",
"debug": false,
"car": {
"minAPIVersion": 8
},
"targetBundleName": "com.application.test",
"targetPriority": 50,
"appEnvironments": [
{
"name":"name1",
"value": "value1"
}
],
"maxChildProcess": 5,
"multiAppMode": {
"multiAppModeType": "multiInstance",
"maxCount": 5
}
},
}
配置文件標(biāo)簽
app.json5配置文件包含以下標(biāo)簽。
表1 app.json5配置文件標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
bundleName | 標(biāo)識(shí)應(yīng)用的Bundle名稱,用于標(biāo)識(shí)應(yīng)用的唯一性。命名規(guī)則如下 : - 由字母、數(shù)字、下劃線和符號(hào)“.”組成,且必須以字母開頭。 - 字符串最小長(zhǎng)度為7字節(jié),最大長(zhǎng)度128字節(jié)。 - 推薦采用反域名形式命名(如“com.example.demo”,建議第一級(jí)為域名后綴com,第二級(jí)為廠商/個(gè)人名,第三級(jí)為應(yīng)用名,也可以多級(jí))。 對(duì)于隨系統(tǒng)源碼編譯的應(yīng)用,建議命名為“com.ohos.demo”形式,其中的ohos標(biāo)識(shí)系統(tǒng)應(yīng)用。 | 字符串 | 該標(biāo)簽不可缺省。 |
bundleType | 標(biāo)識(shí)應(yīng)用的Bundle類型,用于區(qū)分應(yīng)用或者原子化服務(wù)。支持的取值如下: - app:當(dāng)前Bundle為應(yīng)用。 - atomicService:當(dāng)前Bundle為原子化服務(wù)。 - shared:當(dāng)前Bundle為共享庫(kù)應(yīng)用,預(yù)留字段。 - appService:當(dāng)前Bundle為系統(tǒng)級(jí)共享庫(kù)應(yīng)用,僅供系統(tǒng)應(yīng)用使用。 | 字符串 | 該標(biāo)簽可缺省,缺省值為app。 |
debug | 標(biāo)識(shí)應(yīng)用是否可調(diào)試。 - true:可以進(jìn)行斷點(diǎn)調(diào)試。 - false:不可以進(jìn)行斷點(diǎn)調(diào)試。 | 布爾值 | 由IDE編譯構(gòu)建時(shí)生成。該標(biāo)簽可缺省,缺省值為false。 |
icon | 標(biāo)識(shí)[應(yīng)用的圖標(biāo)],取值為圖標(biāo)資源文件的索引。 | 字符串 | 該標(biāo)簽不可缺省。 |
label | 標(biāo)識(shí)[應(yīng)用的名稱],取值為字符串資源的索引,字符串長(zhǎng)度不超過63字節(jié)。 | 字符串 | 該標(biāo)簽不可缺省。 |
description | 標(biāo)識(shí)應(yīng)用的描述信息。取值為長(zhǎng)度不超過255字節(jié)的字符串,內(nèi)容為描述信息的字符串資源索引。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
vendor | 標(biāo)識(shí)對(duì)應(yīng)用開發(fā)廠商的描述,取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
versionCode | 標(biāo)識(shí)應(yīng)用的版本號(hào),取值為小于2^31次方的正整數(shù)。此數(shù)字僅用于確定某個(gè)版本是否比另一個(gè)版本更新,數(shù)值越大表示版本越高。 開發(fā)者可以將該值設(shè)置為任何正整數(shù),但是必須確保應(yīng)用的新版本都使用比舊版本更大的值。 | 數(shù)值 | 該標(biāo)簽不可缺省。 |
versionName | 標(biāo)識(shí)向用戶展示的應(yīng)用版本號(hào)。 取值為長(zhǎng)度不超過127字節(jié)的字符串,僅由數(shù)字和點(diǎn)構(gòu)成,推薦采用“A.B.C.D”四段式的形式。四段式推薦的含義如下所示。 第一段:主版本號(hào)/Major,范圍0 | 字符串 | 該標(biāo)簽不可缺省。 |
minCompatibleVersionCode | 標(biāo)識(shí)應(yīng)用能夠兼容的最低歷史版本號(hào),用于應(yīng)用跨設(shè)備兼容性判斷。取值范圍為0~2147483647。 | 數(shù)值 | 該標(biāo)簽可缺省,缺省值等于versionCode標(biāo)簽值。 |
minAPIVersion | 標(biāo)識(shí)應(yīng)用運(yùn)行需要的SDK的API最小版本。取值范圍為0~2147483647。 | 數(shù)值 | 應(yīng)用編譯構(gòu)建時(shí)由build-profile.json5中的compatibleSdkVersion自動(dòng)生成。 |
targetAPIVersion | 標(biāo)識(shí)應(yīng)用運(yùn)行需要的API目標(biāo)版本。取值范圍為0~2147483647。 | 數(shù)值 | 應(yīng)用編譯構(gòu)建時(shí)由build-profile.json5中的compileSdkVersion自動(dòng)生成。 |
apiReleaseType | 標(biāo)識(shí)應(yīng)用運(yùn)行需要的API目標(biāo)版本的類型,采用字符串類型表示。取值為“CanaryN”、“BetaN”或者“Release”,其中,N代表大于零的整數(shù)。 - Canary:受限發(fā)布的版本。 - Beta:公開發(fā)布的Beta版本。 - Release:公開發(fā)布的正式版本。 | 字符串 | 應(yīng)用編譯構(gòu)建時(shí)根據(jù)當(dāng)前使用的SDK的Stage自動(dòng)生成。即便手動(dòng)配置了取值,編譯構(gòu)建時(shí)也會(huì)被覆蓋。 |
accessible | 標(biāo)識(shí)應(yīng)用是否能訪問應(yīng)用的安裝目錄,僅針對(duì)Stage模型的系統(tǒng)應(yīng)用和預(yù)置應(yīng)用生效。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
multiProjects | 標(biāo)識(shí)當(dāng)前工程是否支持多個(gè)工程的聯(lián)合開發(fā)。 - true:當(dāng)前工程支持多個(gè)工程的聯(lián)合開發(fā)。多工程開發(fā)可參考[多工程構(gòu)建]。 - false:當(dāng)前工程不支持多個(gè)工程的聯(lián)合開發(fā)。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
asanEnabled | 標(biāo)識(shí)應(yīng)用程序是否開啟asan檢測(cè),用于輔助定位buffer越界造成的crash問題。 - true:當(dāng)前工程開啟asan檢測(cè)。 - false:當(dāng)前工程不開啟asan檢測(cè)。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
tablet | 標(biāo)識(shí)對(duì)tablet設(shè)備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對(duì)tablet設(shè)備做了特殊配置,則應(yīng)用在tablet設(shè)備中會(huì)采用此處配置的屬性值,并忽略在app.json5公共區(qū)域配置的屬性值。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省時(shí)tablet設(shè)備使用app.json5公共區(qū)域配置的屬性值。 |
tv | 標(biāo)識(shí)對(duì)tv設(shè)備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對(duì)tv設(shè)備做了特殊配置,則應(yīng)用在tv設(shè)備中會(huì)采用此處配置的屬性值,并忽略在app.json5公共區(qū)域配置的屬性值。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省時(shí)tv設(shè)備使用app.json5公共區(qū)域配置的屬性值。 |
wearable | 標(biāo)識(shí)對(duì)wearable設(shè)備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對(duì)wearable設(shè)備做了特殊配置,則應(yīng)用在wearable設(shè)備中會(huì)采用此處配置的屬性值,并忽略在app.json5公共區(qū)域配置的屬性值。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省時(shí)wearable設(shè)備使用app.json5公共區(qū)域配置的屬性值。 |
car | 標(biāo)識(shí)對(duì)car設(shè)備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對(duì)car設(shè)備做了特殊配置,則應(yīng)用在car設(shè)備中會(huì)采用此處配置的屬性值,并忽略在app.json5公共區(qū)域配置的屬性值。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省時(shí)car設(shè)備使用app.json5公共區(qū)域配置的屬性值。 |
default | 標(biāo)識(shí)對(duì)default設(shè)備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對(duì)default設(shè)備做了特殊配置,則應(yīng)用在default設(shè)備中會(huì)采用此處配置的屬性值,并忽略在app.json5公共區(qū)域配置的屬性值。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省時(shí)default設(shè)備使用app.json5公共區(qū)域配置的屬性值。 |
targetBundleName | 標(biāo)識(shí)當(dāng)前包所指定的目標(biāo)應(yīng)用, 標(biāo)簽值的取值規(guī)則和范圍與bundleName標(biāo)簽一致。配置該字段的應(yīng)用為具有overlay特征的應(yīng)用。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
targetPriority | 標(biāo)識(shí)當(dāng)前應(yīng)用的優(yōu)先級(jí),取值范圍為1~100。配置targetBundleName字段之后,才支持配置該字段。 | 數(shù)值 | 該標(biāo)簽可缺省, 缺省值為1。 |
generateBuildHash | 標(biāo)識(shí)當(dāng)前應(yīng)用的所有HAP和HSP是否由打包工具生成哈希值。 該字段配置為true時(shí),該應(yīng)用下的所有HAP和HSP都會(huì)由打包工具生成對(duì)應(yīng)的哈希值。系統(tǒng)OTA升級(jí)時(shí),若應(yīng)用的versionCode保持不變,可根據(jù)哈希值判斷應(yīng)用是否需要升級(jí)。**說明:**該字段僅對(duì)預(yù)置應(yīng)用生效。 | 布爾值 | 該標(biāo)簽可缺省, 缺省值為false。 |
GWPAsanEnabled | 標(biāo)識(shí)應(yīng)用程序是否開啟GWP-asan堆內(nèi)存檢測(cè)工具,用于對(duì)內(nèi)存越界、內(nèi)存釋放后使用等內(nèi)存破壞問題進(jìn)行分析。 - true:當(dāng)前工程開啟GWP-asan檢測(cè)。 - false:當(dāng)前工程不開啟GWP-asan檢測(cè)。 | 布爾值 | 該標(biāo)簽可缺省, 缺省值為false。 |
[appEnvironments] | 標(biāo)識(shí)當(dāng)前模塊配置的應(yīng)用環(huán)境變量。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
maxChildProcess | 標(biāo)識(shí)當(dāng)前應(yīng)用自身可創(chuàng)建的子進(jìn)程的最大個(gè)數(shù),取值范圍為0到512,0表示不限制,當(dāng)應(yīng)用有多個(gè)模塊時(shí),以entry模塊的配置為準(zhǔn)。 | 數(shù)值 | 該標(biāo)簽可缺省,缺省時(shí)使用系統(tǒng)配置的默認(rèn)值。 |
[multiAppMode] | 標(biāo)識(shí)當(dāng)前應(yīng)用配置的多開模式。僅bundleType為app的應(yīng)用的entry或feature模塊配置有效,存在多個(gè)模塊時(shí),以entry模塊的配置為準(zhǔn)。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省值為空。 |
appEnvironments標(biāo)簽
此標(biāo)簽標(biāo)識(shí)應(yīng)用配置的環(huán)境變量。
表1 appEnvironments標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)環(huán)境變量的變量名稱。取值為長(zhǎng)度不超過4096字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
value | 標(biāo)識(shí)環(huán)境變量的值。取值為長(zhǎng)度不超過4096字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
appEnvironments標(biāo)簽示例:
{
"app": {
"appEnvironments": [
{
"name":"name1",
"value": "value1"
}
]
}
}
multiAppMode標(biāo)簽
應(yīng)用多開模式。
表1 multiAppMode標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
multiAppModeType | 標(biāo)識(shí)應(yīng)用多開模式類型,支持的取值如下: - multiInstance:多實(shí)例模式。 - appClone:應(yīng)用分身模式。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
maxCount | 標(biāo)識(shí)最大允許的應(yīng)用多開個(gè)數(shù),支持的取值如下: - multiInstance模式:取值范圍1 | 數(shù)值 | 該標(biāo)簽可缺省,缺省值為0。 |
multiAppMode標(biāo)簽示例:
{
"app": {
"multiAppMode": {
"multiAppModeType": "appClone",
"maxCount": 5
}
}
}
module.json5配置文件
配置文件示例
先通過一個(gè)示例,整體認(rèn)識(shí)一下module.json5配置文件。
{
"module": {
"name": "entry",
"type": "entry",
"description": "$string:module_desc",
"mainElement": "EntryAbility",
"deviceTypes": [
"default",
"tablet"
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",
"virtualMachine": "ark",
"appStartup": "$profile:app_startup_config",
"metadata": [
{
"name": "string",
"value": "string",
"resource": "$profile:distributionFilter_config"
}
],
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:icon",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"ohos.want.action.home"
]
}
],
"continueType": [
"continueType1"
]
}
],
"definePermissions": [
{
"name": "ohos.abilitydemo.permission.PROVIDER",
"grantMode": "system_grant",
"availableLevel": "system_core",
"provisionEnable": true,
"distributedSceneEnable": false,
"label": "$string:EntryAbility_label"
}
],
"requestPermissions": [
{
"name": "ohos.abilitydemo.permission.PROVIDER",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"FormAbility"
],
"when": "inuse"
}
}
],
"targetModuleName": "feature",
"targetPriority": 50,
"querySchemes": [
"app1Scheme",
"app2Scheme"
],
"routerMap": "$profile:router_map",
"appEnvironments": [
{
"name": "name1",
"value": "value1"
}
],
"hnpPackages": [
{
"package": "hnpsample.hnp",
"type": "public"
}
]
}
}
配置文件標(biāo)簽
module.json5配置文件包含以下標(biāo)簽。
表1 module.json5配置文件標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)當(dāng)前Module的名稱,確保該名稱在整個(gè)應(yīng)用中唯一。取值為長(zhǎng)度不超過31字節(jié)的字符串,不支持中文。 應(yīng)用升級(jí)時(shí)允許修改該名稱,但需要應(yīng)用適配Module相關(guān)數(shù)據(jù)目錄的遷移,詳見[文件管理接口]。 | 字符串 | 該標(biāo)簽不可缺省。 |
type | 標(biāo)識(shí)當(dāng)前Module的類型。支持的取值如下: - entry:應(yīng)用的主模塊。 - feature:應(yīng)用的動(dòng)態(tài)特性模塊。 - har:靜態(tài)共享包模塊。 - shared:動(dòng)態(tài)共享包模塊。 | 字符串 | 該標(biāo)簽不可缺省。 |
srcEntry | 標(biāo)識(shí)當(dāng)前Module所對(duì)應(yīng)的代碼路徑,取值為長(zhǎng)度不超過127字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
description | 標(biāo)識(shí)當(dāng)前Module的描述信息,取值為長(zhǎng)度不超過255字節(jié)的字符串,可以采用字符串資源索引格式。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
process | 標(biāo)識(shí)當(dāng)前Module的進(jìn)程名,取值為長(zhǎng)度不超過31字節(jié)的字符串。如果在HAP標(biāo)簽下配置了process,則該應(yīng)用的所有UIAbility、DataShareExtensionAbility、ServiceExtensionAbility都運(yùn)行在該進(jìn)程中。**說明:**僅支持系統(tǒng)應(yīng)用配置,三方應(yīng)用配置不生效。 | 字符串 | 該標(biāo)簽可缺省,缺省為app.json5文件下app標(biāo)簽下的bundleName。 |
mainElement | 標(biāo)識(shí)當(dāng)前Module的入口UIAbility名稱或者ExtensionAbility名稱,取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
[deviceTypes] | 標(biāo)識(shí)當(dāng)前Module可以運(yùn)行在哪類設(shè)備上。 | 字符串?dāng)?shù)組 | 該標(biāo)簽不可缺省。 |
deliveryWithInstall | 標(biāo)識(shí)當(dāng)前Module是否在用戶主動(dòng)安裝的時(shí)候安裝,即該Module對(duì)應(yīng)的HAP是否跟隨應(yīng)用一起安裝。 - true:主動(dòng)安裝時(shí)安裝。 - false:主動(dòng)安裝時(shí)不安裝。 | 布爾值 | 該標(biāo)簽不可缺省。 |
installationFree | 標(biāo)識(shí)當(dāng)前Module是否支持免安裝特性。 - true:表示支持免安裝特性,且符合免安裝約束。 - false:表示不支持免安裝特性。**說明:**當(dāng)[bundleType]為原子化服務(wù)時(shí),該字段需要配置為true。反之,該字段需要配置為false。 | 布爾值 | 該標(biāo)簽不可缺省。 |
virtualMachine | 標(biāo)識(shí)當(dāng)前Module運(yùn)行的目標(biāo)虛擬機(jī)類型,供云端分發(fā)使用,如應(yīng)用市場(chǎng)和分發(fā)中心。如果目標(biāo)虛擬機(jī)類型為ArkTS引擎,則其值為“ark+版本號(hào)”。 | 字符串 | 該標(biāo)簽由IDE構(gòu)建HAP的時(shí)候自動(dòng)插入。 |
[pages]( | 標(biāo)識(shí)當(dāng)前Module的profile資源,用于列舉每個(gè)頁(yè)面信息,取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 在有UIAbility的場(chǎng)景下,該標(biāo)簽不可缺省。 |
[metadata] | 標(biāo)識(shí)當(dāng)前Module的自定義元信息,可通過資源引用的方式配置[distributionFilter]、[shortcuts]等信息。只對(duì)當(dāng)前Module、UIAbility、ExtensionAbility生效。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[abilities] | 標(biāo)識(shí)當(dāng)前Module中UIAbility的配置信息,只對(duì)當(dāng)前UIAbility生效。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[extensionAbilities]( | 標(biāo)識(shí)當(dāng)前Module中ExtensionAbility的配置信息,只對(duì)當(dāng)前ExtensionAbility生效。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[definePermissions]( | 標(biāo)識(shí)系統(tǒng)資源hap定義的權(quán)限,不支持應(yīng)用自定義權(quán)限。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[requestPermissions] | 標(biāo)識(shí)當(dāng)前應(yīng)用運(yùn)行時(shí)需向系統(tǒng)申請(qǐng)的權(quán)限集合。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[testRunner] | 標(biāo)識(shí)用于測(cè)試當(dāng)前Module的測(cè)試框架的配置。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省值為空。 |
[atomicService] | 標(biāo)識(shí)當(dāng)前應(yīng)用是原子化服務(wù)時(shí),有關(guān)原子化服務(wù)的相關(guān)配置。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省值為空。 |
[dependencies] | 標(biāo)識(shí)當(dāng)前模塊運(yùn)行時(shí)依賴的共享庫(kù)列表。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
targetModuleName | 標(biāo)識(shí)當(dāng)前包所指定的目標(biāo)module,確保該名稱在整個(gè)應(yīng)用中唯一。取值為長(zhǎng)度不超過31字節(jié)的字符串,不支持中文。配置該字段的Module具有overlay特性。僅在動(dòng)態(tài)共享包(HSP)中適用。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
targetPriority | 標(biāo)識(shí)當(dāng)前Module的優(yōu)先級(jí),取值范圍為1~100。配置targetModuleName字段之后,才需要配置該字段。僅在動(dòng)態(tài)共享包(HSP)中適用。 | 整型數(shù)值 | 該標(biāo)簽可缺省,缺省值為1。 |
[proxyData] | 標(biāo)識(shí)當(dāng)前Module提供的數(shù)據(jù)代理列表。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
isolationMode | 標(biāo)識(shí)當(dāng)前Module的多進(jìn)程配置項(xiàng)。支持的取值如下: - nonisolationFirst:優(yōu)先在非獨(dú)立進(jìn)程中運(yùn)行。 - isolationFirst:優(yōu)先在獨(dú)立進(jìn)程中運(yùn)行。 - isolationOnly:只在獨(dú)立進(jìn)程中運(yùn)行。 - nonisolationOnly:只在非獨(dú)立進(jìn)程中運(yùn)行。 | 字符串 | 該標(biāo)簽可缺省,缺省值為nonisolationFirst。 |
generateBuildHash | 標(biāo)識(shí)當(dāng)前HAP/HSP是否由打包工具生成哈希值。當(dāng)配置為true時(shí),如果系統(tǒng)OTA升級(jí)時(shí)應(yīng)用versionCode保持不變,可根據(jù)哈希值判斷應(yīng)用是否需要升級(jí)。 該字段僅在[app.json5文件]中的generateBuildHash字段為false時(shí)使能。**說明:**該字段僅對(duì)預(yù)置應(yīng)用生效。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
compressNativeLibs | 標(biāo)識(shí)libs庫(kù)是否以壓縮存儲(chǔ)的方式打包到HAP。 - true:libs庫(kù)以壓縮方式存儲(chǔ)。 - false:libs庫(kù)以不壓縮方式存儲(chǔ)。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
libIsolation | 用于區(qū)分同應(yīng)用不同HAP下的.so文件,以防止.so沖突。 - true:當(dāng)前HAP的.so文件會(huì)儲(chǔ)存在libs目錄中以Module名命名的路徑下。 - false:當(dāng)前HAP的.so文件會(huì)直接儲(chǔ)存在libs目錄中。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
fileContextMenu | 標(biāo)識(shí)當(dāng)前HAP的右鍵菜單配置項(xiàng)。取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
querySchemes | 標(biāo)識(shí)允許當(dāng)前應(yīng)用進(jìn)行跳轉(zhuǎn)查詢的URL schemes,只允許entry類型模塊配置,最多50個(gè),每個(gè)字符串取值不超過128字節(jié)。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[routerMap]( | 標(biāo)識(shí)當(dāng)前模塊配置的路由表路徑。取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
[appEnvironments]( | 標(biāo)識(shí)當(dāng)前模塊配置的應(yīng)用環(huán)境變量,只允許entry和feature模塊配置。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
appStartup | 標(biāo)識(shí)當(dāng)前Module啟動(dòng)框架配置路徑,僅在Entry中生效。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
[hnpPackages] | 標(biāo)識(shí)當(dāng)前應(yīng)用包含的Native軟件包信息。只允許entry類型模塊配置。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
deviceTypes標(biāo)簽
表2 deviceTypes標(biāo)簽說明
設(shè)備類型 | 枚舉值 | 說明 |
---|---|---|
平板 | tablet | - |
智慧屏 | tv | - |
智能手表 | wearable | 系統(tǒng)能力較豐富的手表,具備電話功能。 |
車機(jī) | car | - |
默認(rèn)設(shè)備 | default | 能夠使用全部系統(tǒng)能力的設(shè)備。 |
deviceTypes示例:
{
"module": {
"name": "myHapName",
"type": "feature",
"deviceTypes" : [
"tablet"
]
}
}
pages標(biāo)簽
該標(biāo)簽是一個(gè)profile文件資源,用于指定描述頁(yè)面信息的配置文件。
{
"module": {
// ...
"pages": "$profile:main_pages", // 通過profile下的資源文件配置
}
}
在開發(fā)視圖的resources/base/profile下面定義配置文件main_pages.json,其中文件名"main_pages"可自定義,需要和pages標(biāo)簽指定的信息對(duì)應(yīng)。配置文件中列舉了當(dāng)前應(yīng)用組件中的頁(yè)面信息,包含頁(yè)面的路由信息和顯示窗口相關(guān)的配置。
表3 pages標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
src | 標(biāo)識(shí)當(dāng)前Module中所有頁(yè)面的路由信息,包括頁(yè)面路徑和頁(yè)面名稱。其中,頁(yè)面路徑是以當(dāng)前Module的src/main/ets為基準(zhǔn)。該標(biāo)簽取值為一個(gè)字符串?dāng)?shù)組,其中每個(gè)元素表示一個(gè)頁(yè)面。 | 字符串?dāng)?shù)組 | 該標(biāo)簽不可缺省。 |
window | 標(biāo)識(shí)用于定義與顯示窗口相關(guān)的配置。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省值為空。 |
表4 window標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
designWidth | 標(biāo)識(shí)頁(yè)面設(shè)計(jì)基準(zhǔn)寬度。以此為基準(zhǔn),根據(jù)實(shí)際設(shè)備寬度來縮放元素大小。 | 數(shù)值 | 可缺省,缺省值為720px。 |
autoDesignWidth | 標(biāo)識(shí)頁(yè)面設(shè)計(jì)基準(zhǔn)寬度是否自動(dòng)計(jì)算。當(dāng)配置為true時(shí),designWidth將會(huì)被忽略,設(shè)計(jì)基準(zhǔn)寬度由設(shè)備寬度與屏幕密度計(jì)算得出。 | 布爾值 | 可缺省,缺省值為false。 |
{
"src": [
"pages/index/mainPage",
"pages/second/payment",
"pages/third/shopping_cart",
"pages/four/owner"
],
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
metadata標(biāo)簽
該標(biāo)簽標(biāo)識(shí)HAP的自定義元信息,標(biāo)簽值為數(shù)組類型,包含name、value、resource三個(gè)子標(biāo)簽。
表5 metadata標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)數(shù)據(jù)項(xiàng)的名稱,取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
value | 標(biāo)識(shí)數(shù)據(jù)項(xiàng)的值,取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
resource | 標(biāo)識(shí)定義用戶自定義數(shù)據(jù)格式,取值為長(zhǎng)度不超過255字節(jié)的字符串,內(nèi)容為標(biāo)識(shí)該數(shù)據(jù)的資源索引。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
resource屬性值使用“profile:文件名”的方式指定文件所在位置,profile:文件名”的方式指定文件所在位置,profile表示資源的路徑為工程中的/resources/base/profile目錄下。例如$profile:shortcuts_config指定了/resources/base/profile/shortcuts_config.json文件。
{
"module": {
"metadata": [{
"name": "module_metadata",
"value": "a test demo for module metadata",
"resource": "$profile:shortcuts_config"
}],
"abilities": [{
"metadata": [{
"name": "ability_metadata",
"value": "a test demo for ability",
"resource": "$profile:config_file"
},
{
"name": "ability_metadata_2",
"value": "a string test",
"resource": "$profile:config_file"
}],
}],
"extensionAbilities": [{
"metadata": [{
"name": "extensionAbility_metadata",
"value": "a test for extensionAbility",
"resource": "$profile:config_file"
},
{
"name": "extensionAbility_metadata_2",
"value": "a string test",
"resource": "$profile:config_file"
}],
}]
}
}
abilities標(biāo)簽
abilities標(biāo)簽描述UIAbility組件的配置信息,標(biāo)簽值為數(shù)組類型,該標(biāo)簽下的配置只對(duì)當(dāng)前UIAbility生效。
表6 abilities標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)當(dāng)前UIAbility組件的名稱,確保該名稱在整個(gè)應(yīng)用中唯一。取值為長(zhǎng)度不超過127字節(jié)的字符串,不支持中文。 | 字符串 | 該標(biāo)簽不可缺省。 |
srcEntry | 標(biāo)識(shí)入口UIAbility的代碼路徑,取值為長(zhǎng)度不超過127字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
[launchType] | 標(biāo)識(shí)當(dāng)前UIAbility組件的啟動(dòng)模式,支持的取值如下: - multiton:多實(shí)例模式,每次啟動(dòng)創(chuàng)建一個(gè)新實(shí)例。 - singleton:?jiǎn)螌?shí)例模式,僅第一次啟動(dòng)創(chuàng)建新實(shí)例。 - specified:指定實(shí)例模式,運(yùn)行時(shí)由開發(fā)者決定是否創(chuàng)建新實(shí)例。 | 字符串 | 該標(biāo)簽可缺省,該標(biāo)簽缺省為“singleton”。 |
description | 標(biāo)識(shí)當(dāng)前UIAbility組件的描述信息,取值為長(zhǎng)度不超過255字節(jié)的字符串。要求采用描述信息的資源索引,以支持多語(yǔ)言。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
icon | 標(biāo)識(shí)當(dāng)前UIAbility組件的圖標(biāo),取值為圖標(biāo)資源文件的索引。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 如果UIAbility被配置為MainElement,該標(biāo)簽必須配置。 |
label | 標(biāo)識(shí)當(dāng)前UIAbility組件對(duì)用戶顯示的名稱,要求采用該名稱的資源索引,以支持多語(yǔ)言。取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 如果UIAbility被配置為MainElement,該標(biāo)簽必須配置。 |
permissions | 標(biāo)識(shí)當(dāng)前UIAbility組件自定義的權(quán)限信息。當(dāng)其他應(yīng)用訪問該UIAbility時(shí),需要申請(qǐng)相應(yīng)的權(quán)限信息。 一個(gè)數(shù)組元素為一個(gè)權(quán)限名稱。通常采用反向域名格式(不超過255字節(jié)),取值為系統(tǒng)預(yù)定義的權(quán)限。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[metadata] | 標(biāo)識(shí)當(dāng)前UIAbility組件的元信息。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
exported | 標(biāo)識(shí)當(dāng)前UIAbility組件是否可以被其他應(yīng)用調(diào)用。 - true:表示可以被其他應(yīng)用調(diào)用。 - false:表示不可以被其他應(yīng)用調(diào)用,包括無法被aa工具命令拉起應(yīng)用。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
continuable | 標(biāo)識(shí)當(dāng)前UIAbility組件是否支持跨端遷移。 - true:表示支持遷移。 - false:表示不支持遷移。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
skills | 標(biāo)識(shí)當(dāng)前UIAbility組件或ExtensionAbility組件能夠接收的Want特征集,為數(shù)組格式。 配置規(guī)則: - 對(duì)于Entry類型的HAP,應(yīng)用可以配置多個(gè)具有入口能力的skills標(biāo)簽(即配置了ohos.want.action.home和entity.system.home)。 - 對(duì)于Feature類型的HAP,只有應(yīng)用可以配置具有入口能力的skills標(biāo)簽,服務(wù)不允許配置。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
backgroundModes | 標(biāo)識(shí)當(dāng)前UIAbility組件的長(zhǎng)時(shí)任務(wù)集合,指定用于滿足特定類型的長(zhǎng)時(shí)任務(wù)。 長(zhǎng)時(shí)任務(wù)類型有如下: - dataTransfer:通過網(wǎng)絡(luò)/對(duì)端設(shè)備進(jìn)行數(shù)據(jù)下載、備份、分享、傳輸?shù)取?- audioPlayback:音頻播放。 - audioRecording:錄音。 - location:定位、導(dǎo)航。 - bluetoothInteraction:藍(lán)牙掃描、連接、傳輸(穿戴)。 - multiDeviceConnection:多設(shè)備互聯(lián)。 - wifiInteraction:Wi-Fi掃描、連接、傳輸(克隆多屏)。 - voip:音視頻電話、VoIP。 - taskKeeping:計(jì)算。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
startWindowIcon | 標(biāo)識(shí)當(dāng)前UIAbility組件啟動(dòng)頁(yè)面圖標(biāo)資源文件的索引,取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
startWindowBackground | 標(biāo)識(shí)當(dāng)前UIAbility組件啟動(dòng)頁(yè)面背景顏色資源文件的索引,取值為長(zhǎng)度不超過255字節(jié)的字符串。 取值示例:$color:red。 | 字符串 | 該標(biāo)簽不可缺省。 |
removeMissionAfterTerminate | 標(biāo)識(shí)當(dāng)前UIAbility組件銷毀后,是否從任務(wù)列表中移除任務(wù)。 - true表示銷毀后移除任務(wù)。 - false表示銷毀后不移除任務(wù)。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
orientation | 標(biāo)識(shí)當(dāng)前UIAbility組件啟動(dòng)時(shí)的方向。支持的取值如下: - unspecified:未指定方向,由系統(tǒng)自動(dòng)判斷顯示方向。 - landscape:橫屏。 - portrait:豎屏。 - follow_recent:跟隨背景窗口的旋轉(zhuǎn)模式。 - landscape_inverted:反向橫屏。 - portrait_inverted:反向豎屏。 - auto_rotation:隨傳感器旋轉(zhuǎn)。 - auto_rotation_landscape:傳感器橫屏旋轉(zhuǎn),包括橫屏和反向橫屏。 - auto_rotation_portrait:傳感器豎屏旋轉(zhuǎn),包括豎屏和反向豎屏。 - auto_rotation_restricted:傳感器開關(guān)打開,方向可隨傳感器旋轉(zhuǎn)。 - auto_rotation_landscape_restricted:傳感器開關(guān)打開,方向可隨傳感器旋轉(zhuǎn)為橫屏, 包括橫屏和反向橫屏。 - auto_rotation_portrait_restricted:傳感器開關(guān)打開,方向隨可傳感器旋轉(zhuǎn)為豎屏, 包括豎屏和反向豎屏。 - locked:傳感器開關(guān)關(guān)閉,方向鎖定。 - auto_rotation_unspecified:受開關(guān)控制和由系統(tǒng)判定的自動(dòng)旋轉(zhuǎn)模式。 - follow_desktop:跟隨桌面的旋轉(zhuǎn)模式。 | 字符串 | 該標(biāo)簽可缺省,缺省值為unspecified。 |
supportWindowMode | 標(biāo)識(shí)當(dāng)前UIAbility組件所支持的窗口模式。支持的取值如下: - fullscreen:全屏模式。 - split:分屏模式。 - floating:懸浮窗模式。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為 ["fullscreen", "split", "floating"]。 |
priority | 標(biāo)識(shí)當(dāng)前UIAbility組件的優(yōu)先級(jí)。[隱式查詢]時(shí),優(yōu)先級(jí)越高,UIAbility在返回列表越靠前。取值范圍0~10,數(shù)值越大,優(yōu)先級(jí)越高。**說明:**僅支持系統(tǒng)應(yīng)用配置,三方應(yīng)用配置不生效。 | 整型數(shù)值 | 該標(biāo)簽可缺省,缺省值為0。 |
maxWindowRatio | 標(biāo)識(shí)當(dāng)前UIAbility組件支持的最大的寬高比。該標(biāo)簽最小取值為0。 | 數(shù)值 | 該標(biāo)簽可缺省,缺省值為平臺(tái)支持的最大的寬高比。 |
minWindowRatio | 標(biāo)識(shí)當(dāng)前UIAbility組件支持的最小的寬高比。該標(biāo)簽最小取值為0。 | 數(shù)值 | 該標(biāo)簽可缺省,缺省值為平臺(tái)支持的最小的寬高比。 |
maxWindowWidth | 標(biāo)識(shí)當(dāng)前UIAbility組件支持的最大的窗口寬度,寬度單位為vp。 最小取值為minWindowWidth,最大取值為平臺(tái)支持的最大窗口寬度。窗口尺寸可以參考[窗口大小限制]。 | 數(shù)值 | 該標(biāo)簽可缺省,缺省值為平臺(tái)支持的最大的窗口寬度。 |
minWindowWidth | 標(biāo)識(shí)當(dāng)前UIAbility組件支持的最小的窗口寬度, 寬度單位為vp。 最小取值為平臺(tái)支持的最小窗口寬度,最大取值為maxWindowWidth。窗口尺寸可以參考[窗口大小限制]。 | 數(shù)值 | 該標(biāo)簽可缺省,缺省值為平臺(tái)支持的最小的窗口寬度。 |
maxWindowHeight | 標(biāo)識(shí)當(dāng)前UIAbility組件支持的最大的窗口高度, 高度單位為vp。 最小取值為minWindowHeight,最大取值為平臺(tái)支持的最大窗口高度。 窗口尺寸可以參考[窗口大小限制]。 | 數(shù)值 | 該標(biāo)簽可缺省,缺省值為平臺(tái)支持的最大的窗口高度。 |
minWindowHeight | 標(biāo)識(shí)當(dāng)前UIAbility組件支持的最小的窗口高度, 高度單位為vp。 最小取值為平臺(tái)支持的最小窗口高度,最大取值為maxWindowHeight。窗口尺寸可以參考[窗口大小限制]。 | 數(shù)值 | 該標(biāo)簽可缺省,缺省值為平臺(tái)支持的最小的窗口高度。 |
excludeFromMissions | 標(biāo)識(shí)當(dāng)前UIAbility組件是否在最近任務(wù)列表中顯示。 - true:表示不在任務(wù)列表中顯示。 - false:表示在任務(wù)列表中顯示。**說明:**僅支持系統(tǒng)應(yīng)用配置,且需申請(qǐng)應(yīng)用特權(quán)AllowAbilityExcludeFromMissions,三方應(yīng)用配置不生效, | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
recoverable | 標(biāo)識(shí)當(dāng)前UIAbility組件是否支持在檢測(cè)到應(yīng)用故障后,恢復(fù)到應(yīng)用原界面。 - true:支持檢測(cè)到出現(xiàn)故障后,恢復(fù)到原界面。 - false:不支持檢測(cè)到出現(xiàn)故障后,恢復(fù)到原界面。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
unclearableMission | 標(biāo)識(shí)當(dāng)前UIAbility組件是否支持從最近任務(wù)列表中移除。 - true:表示在任務(wù)列表中不可移除。 - false:表示在任務(wù)列表中可以移除。**說明:**單獨(dú)配置該字段不可生效,需要申請(qǐng)對(duì)應(yīng)的[AllowMissionNotCleared]特權(quán)之后,該字段才能生效。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
isolationProcess | 標(biāo)識(shí)組件能否運(yùn)行在獨(dú)立的進(jìn)程中。 - true:表示能運(yùn)行在獨(dú)立的進(jìn)程中。 - false:表示不能運(yùn)行在獨(dú)立的進(jìn)程中。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
excludeFromDock | 標(biāo)識(shí)當(dāng)前UIAbility組件是否支持從dock區(qū)域隱藏圖標(biāo)。 - true:表示在dock區(qū)域隱藏。 - false:表示不能在dock區(qū)域隱藏。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
preferMultiWindowOrientation | 標(biāo)識(shí)當(dāng)前UIAbility組件多窗布局方向: - default:缺省值,參數(shù)不配置默認(rèn)值,建議其他應(yīng)用類配置。 - portrait:多窗布局方向?yàn)樨Q向,建議豎向游戲類應(yīng)用配置。 - landscape:多窗布局方向?yàn)闄M向,配置后支持橫屏懸浮窗和上下分屏,建議橫向游戲類應(yīng)用配置。 - landscape_auto:多窗布局動(dòng)態(tài)可變?yōu)闄M向,需要配合API enableLandScapeMultiWindow/disableLandScapeMultiWindow使用,建議視頻類應(yīng)用配置。 | 字符串 | 該標(biāo)簽可缺省,缺省值為default。 |
continueType | 標(biāo)識(shí)當(dāng)前UIAbility組件的跨端遷移類型。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為當(dāng)前組件的名稱。 |
abilities示例:
{
"abilities": [{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"launchType":"singleton",
"description": "$string:description_main_ability",
"icon": "$media:icon",
"label": "Login",
"permissions": [],
"metadata": [],
"exported": true,
"continuable": true,
"skills": [{
"actions": ["ohos.want.action.home"],
"entities": ["entity.system.home"],
"uris": []
}],
"backgroundModes": [
"dataTransfer",
"audioPlayback",
"audioRecording",
"location",
"bluetoothInteraction",
"multiDeviceConnection",
"wifiInteraction",
"voip",
"taskKeeping"
],
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:red",
"removeMissionAfterTerminate": true,
"orientation": " ",
"supportWindowMode": ["fullscreen", "split", "floating"],
"maxWindowRatio": 3.5,
"minWindowRatio": 0.5,
"maxWindowWidth": 2560,
"minWindowWidth": 1400,
"maxWindowHeight": 300,
"minWindowHeight": 200,
"excludeFromMissions": false,
"unclearableMission": false,
"excludeFromDock": false,
"preferMultiWindowOrientation": "default",
"isolationProcess": false,
"continueType": [
"continueType1",
"continueType2"
]
}]
}
skills標(biāo)簽
該標(biāo)簽標(biāo)識(shí)UIAbility組件或者ExtensionAbility組件能夠接收的[Want]的特征。
表7 skills標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
actions | 標(biāo)識(shí)能夠接收的Action值集合,取值通常為系統(tǒng)預(yù)定義的action值,也允許自定義。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
entities | 標(biāo)識(shí)能夠接收的Entity值的集合。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
uris | 標(biāo)識(shí)與Want中URI(Uniform Resource Identifier)相匹配的集合。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
permissions | 標(biāo)識(shí)當(dāng)前UIAbility組件自定義的權(quán)限信息。當(dāng)其他應(yīng)用訪問該UIAbility時(shí),需要申請(qǐng)相應(yīng)的權(quán)限信息。 一個(gè)數(shù)組元素為一個(gè)權(quán)限名稱。通常采用反向域名格式(不超過255字節(jié)),取值為系統(tǒng)預(yù)定義的權(quán)限。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
domainVerify | 標(biāo)識(shí)是否開啟域名校驗(yàn)。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
表8 uris標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
scheme | 標(biāo)識(shí)URI的協(xié)議名部分,常見的有http、https、file、ftp等。 | 字符串 | uris中僅配置type時(shí)可以缺省,缺省值為空,否則不可缺省。 |
host | 標(biāo)識(shí)URI的主機(jī)地址部分,該字段在scheme存在時(shí)才有意義。常見的方式: - 域名方式,如example.com。 - IP地址方式,如10.10.10.1。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
port | 標(biāo)識(shí)URI的端口部分。如http默認(rèn)端口為80,https默認(rèn)端口是443,ftp默認(rèn)端口是21。該字段在scheme和host都存在時(shí)才有意義。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
path | pathStartWith | pathRegex | 標(biāo)識(shí)URI的路徑部分,path、pathStartWith和pathRegex配置時(shí)三選一。path標(biāo)識(shí)URI與want中的路徑部分全匹配,pathStartWith標(biāo)識(shí)URI與want中的路徑部分允許前綴匹配,pathRegex標(biāo)識(shí)URI與want中的路徑部分允許正則匹配。該字段在scheme和host都存在時(shí)才有意義。 |
type | 標(biāo)識(shí)與Want相匹配的數(shù)據(jù)類型,使用MIME(Multipurpose Internet Mail Extensions)類型規(guī)范和[UniformDataType]類型規(guī)范??膳cscheme同時(shí)配置,也可以單獨(dú)配置。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
utd | 標(biāo)識(shí)與Want相匹配的[標(biāo)準(zhǔn)化數(shù)據(jù)類型],適用于分享等場(chǎng)景。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
maxFileSupported | 對(duì)于指定類型的文件,標(biāo)識(shí)一次能接收或打開的最大數(shù)量,適用于分享等場(chǎng)景,需要與utd配合使用。 | 整數(shù) | 該標(biāo)簽可缺省,缺省值為0。 |
linkFeature | 標(biāo)識(shí)URI提供的功能類型(如文件打開、分享、導(dǎo)航等),用于實(shí)現(xiàn)應(yīng)用間跳轉(zhuǎn)。取值為長(zhǎng)度不超過127字節(jié)的字符串,不支持中文。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
skills示例:
{
"abilities": [
{
"skills": [
{
"actions": [
"ohos.want.action.home"
],
"entities": [
"entity.system.home"
],
"uris": [
{
"scheme":"http",
"host":"example.com",
"port":"80",
"path":"path",
"type": "text/*",
"linkFeature": "login"
}
],
"permissions": [],
"domainVerify": false
}
]
}
]
}
extensionAbilities標(biāo)簽
描述extensionAbilities的配置信息,標(biāo)簽值為數(shù)組類型,該標(biāo)簽下的配置只對(duì)當(dāng)前extensionAbilities生效。
表9 extensionAbilities標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件的名稱,確保該名稱在整個(gè)應(yīng)用中唯一,取值為長(zhǎng)度不超過127字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
srcEntry | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件所對(duì)應(yīng)的代碼路徑,取值為長(zhǎng)度不超過127字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
description | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件的描述,取值為長(zhǎng)度不超過255字節(jié)的字符串,可以是對(duì)描述內(nèi)容的資源索引,用于支持多語(yǔ)言。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
icon | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件的圖標(biāo),取值為資源文件的索引。如果ExtensionAbility組件被配置為MainElement,該標(biāo)簽必須配置。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
label | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件對(duì)用戶顯示的名稱,取值為該名稱的資源索引,以支持多語(yǔ)言,字符串長(zhǎng)度不超過255字節(jié)。如果ExtensionAbility被配置當(dāng)前Module的mainElement時(shí),該標(biāo)簽必須配置,且要確保應(yīng)用內(nèi)唯一。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
type | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件的類型,支持的取值如下: - form:卡片的ExtensionAbility。 - workScheduler:延時(shí)任務(wù)的ExtensionAbility。 - inputMethod:輸入法的ExtensionAbility。 - service:后臺(tái)運(yùn)行的service組件。 - accessibility:輔助能力的ExtensionAbility。 - fileAccess:公共數(shù)據(jù)訪問的ExtensionAbility,允許應(yīng)用程序提供文件和文件夾給文件管理類應(yīng)用展示。 - dataShare:數(shù)據(jù)共享的ExtensionAbility。 - staticSubscriber:靜態(tài)廣播的ExtensionAbility。 - wallpaper:壁紙的ExtensionAbility。 - backup:數(shù)據(jù)備份的ExtensionAbility。 - window:該ExtensionAbility會(huì)在啟動(dòng)過程中創(chuàng)建一個(gè)window,為開發(fā)者提供界面開發(fā)。開發(fā)者開發(fā)出來的界面將通過UIExtensionComponent控件組合到其他應(yīng)用的窗口中。 - thumbnail:獲取文件縮略圖的ExtensionAbility,開發(fā)者可以對(duì)自定義文件類型的文件提供縮略。 - preview:該ExtensionAbility會(huì)將文件解析后在一個(gè)窗口中顯示,開發(fā)者可以通過將此窗口組合到其他應(yīng)用窗口中。 - print:打印框架的ExtensionAbility。 - push:推送的ExtensionAbility。 - driver:驅(qū)動(dòng)框架的ExtensionAbility。 - remoteNotification:遠(yuǎn)程通知的ExtensionAbility。 - remoteLocation:遠(yuǎn)程定位的ExtensionAbility。 - voip:網(wǎng)絡(luò)音視頻通話的ExtensionAbility。 - action:自定義操作業(yè)務(wù)模板的ExtensionAbility,為開發(fā)者提供基于UIExtension的自定義操作業(yè)務(wù)模板 - adsService:廣告業(yè)務(wù)的ExtensionAbility,提供廣告業(yè)務(wù)框架。 - embeddedUI:嵌入式UI擴(kuò)展能力,提供跨進(jìn)程界面嵌入的能力。 - insightIntentUI:為開發(fā)者提供能被小藝意圖調(diào)用,以窗口形態(tài)呈現(xiàn)內(nèi)容的擴(kuò)展能力。 - ads:廣告業(yè)務(wù)的ExtensionAbility,與AdComponent控件組合使用,將廣告頁(yè)面展示到其他應(yīng)用中。僅支持設(shè)備廠商使用。 - photoEditor:圖片編輯業(yè)務(wù)的ExtensionAbility,為開發(fā)者提供基于UIExtension的圖片編輯業(yè)務(wù)模版。 - appAccountAuthorization:應(yīng)用帳號(hào)授權(quán)擴(kuò)展能力的ExtensionAbility,用于處理帳號(hào)授權(quán)請(qǐng)求,比如帳號(hào)登錄授權(quán)。 - autoFill/password:用于賬號(hào)和密碼自動(dòng)填充業(yè)務(wù)的ExtensionAbility,支持?jǐn)?shù)據(jù)的保存、填充能力。 - hms/account:應(yīng)用帳號(hào)管理能力的ExtensionAbility。 - sysDialog/atomicServicePanel:提供構(gòu)建原子化服務(wù)服務(wù)面板的基礎(chǔ)能力的ExtensionAbility,使用時(shí)基于UIExtensionAbility實(shí)現(xiàn)。 - sysDialog/userAuth:本地用戶鑒權(quán)的ExtensionAbility。 - sysDialog/common:通用彈窗的ExtensionAbility。 - sysDialog/power:關(guān)機(jī)重啟彈窗的ExtensionAbility。 - sysDialog/print:打印模態(tài)彈窗的ExtensionAbility。 - sysDialog/meetimeCall:暢連通話的ExtensionAbility。 - sysDialog/meetimeContact:暢連聯(lián)系人的ExtensionAbility。 - sysPicker/meetimeMessage:暢連消息的ExtensionAbility。 - sysPicker/meetimeContact:暢連聯(lián)系人列表的ExtensionAbility。 - sysPicker/meetimeCallLog:暢連通話記錄列表的ExtensionAbility。 - sysPicker/share:系統(tǒng)分享的ExtensionAbility。 - sysPicker/mediaControl:投播組件的ExtensionAbility。 - sysPicker/photoPicker:三方應(yīng)用通過對(duì)應(yīng)的UIExtensionType拉起圖庫(kù)picker界面。 - sysPicker/filePicker:文件下載彈窗的ExtensionAbility。 - sysPicker/audioPicker:音頻管理彈窗的ExtensionAbility。 - sysPicker/photoEditor:圖片編輯彈窗的ExtensionAbility。 - sys/commonUI:非通用的ExtensionAbility,提供業(yè)務(wù)屬性強(qiáng)相關(guān)的嵌入式顯示或彈框。 - autoFill/smart:用于情景化場(chǎng)景自動(dòng)填充業(yè)務(wù)的ExtensionAbility,支持?jǐn)?shù)據(jù)的保存、填充能力。**說明:**其中service、adsService、sys/commonUI、fileAccess、sysDialog類型、sysPicker類型和dataShare類型,僅支持系統(tǒng)應(yīng)用配置,三方應(yīng)用配置不生效。 | 字符串 | 該標(biāo)簽不可缺省。 |
permissions | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件自定義的權(quán)限信息。當(dāng)其他應(yīng)用訪問該ExtensionAbility時(shí),需要申請(qǐng)相應(yīng)的權(quán)限信息。 一個(gè)數(shù)組元素為一個(gè)權(quán)限名稱。通常采用反向域名格式(最大255字節(jié)),取值為[系統(tǒng)預(yù)定義的權(quán)限]。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
readPermission | 標(biāo)識(shí)讀取當(dāng)前ExtensionAbility組件數(shù)據(jù)所需的權(quán)限,取值為長(zhǎng)度不超過255字節(jié)的字符串。僅當(dāng)ExtensionAbility組件的type為dataShare時(shí)支持配置該標(biāo)簽。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
writePermission | 標(biāo)識(shí)向當(dāng)前ExtensionAbility組件寫數(shù)據(jù)所需的權(quán)限,取值為長(zhǎng)度不超過255字節(jié)的字符串。僅當(dāng)ExtensionAbility組件的type為dataShare時(shí)支持配置該標(biāo)簽。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
uri | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件提供的數(shù)據(jù)URI,取值為長(zhǎng)度不超過255字節(jié)的字符數(shù)組,用反向域名的格式表示。**說明:**該標(biāo)簽在type為dataShare類型的ExtensionAbility時(shí),不可缺省。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
skills | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件能夠接收的[Want]的特征集。 配置規(guī)則:entry包可以配置多個(gè)具有入口能力的skills標(biāo)簽(配置了ohos.want.action.home和entity.system.home)的ExtensionAbility,其中第一個(gè)配置了skills標(biāo)簽的ExtensionAbility中的label和icon作為服務(wù)或應(yīng)用的label和icon。**說明:**服務(wù)的Feature包不能配置具有入口能力的skills標(biāo)簽。 應(yīng)用的Feature包可以配置具有入口能力的skills標(biāo)簽。 | 數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[metadata] | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件的元信息。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省值為空。 |
exported | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件是否可以被其他應(yīng)用調(diào)用。 - true:表示可以被其他應(yīng)用調(diào)用。 - false:表示不可以被其他應(yīng)用調(diào)用,包括無法被aa工具命令拉起應(yīng)用。 | 布爾值 | 該標(biāo)簽可缺省,缺省值為false。 |
extensionProcessMode | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件的多進(jìn)程實(shí)例模型,當(dāng)前只對(duì)UIExtensionAbility以及從UIExtensionAbility擴(kuò)展的ExtensionAbility生效。 - instance:表示該ExtensionAbility每個(gè)實(shí)例一個(gè)進(jìn)程。 - type:表示該ExtensionAbility實(shí)例都運(yùn)行在同一個(gè)進(jìn)程里,與其他ExtensionAbility分離進(jìn)程。 - bundle:表示該ExtensionAbility實(shí)例都運(yùn)行在應(yīng)用統(tǒng)一進(jìn)程里,與其他配置了bundle模型的ExtensionAbility共進(jìn)程。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
dataGroupIds | 標(biāo)識(shí)當(dāng)前ExtensionAbility組件的dataGroupId集合。如果當(dāng)前ExtensionAbility組件所在的應(yīng)用在[HarmonyAppProvision配置文件]的data-group-ids字段中也聲明了某個(gè)dataGroupId,那么當(dāng)前ExtensionAbility組件可以和應(yīng)用共享這一個(gè)dataGroupId生成的目錄,所以ExtensionAbility組件的dataGroupId需要是應(yīng)用的HarmonyAppProvision配置文件的data-group-ids字段里配置的才能生效。 且該字段僅在當(dāng)前ExtensionAbility組件存在獨(dú)立的沙箱目錄時(shí)生效。 | 字符串?dāng)?shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
extensionAbilities示例:
{
"extensionAbilities": [
{
"name": "FormName",
"srcEntry": "./form/MyForm.ts",
"icon": "$media:icon",
"label" : "$string:extension_name",
"description": "$string:form_description",
"type": "form",
"permissions": ["ohos.abilitydemo.permission.PROVIDER"],
"readPermission": "",
"writePermission": "",
"exported": true,
"uri":"scheme://authority/path/query",
"skills": [{
"actions": [],
"entities": [],
"uris": [],
"permissions": []
}],
"metadata": [
{
"name": "ohos.extension.form",
"resource": "$profile:form_config",
}
],
"extensionProcessMode": "instance",
"dataGroupIds": [
"testGroupId1"
]
}
]
}
requestPermissions標(biāo)簽
該標(biāo)簽標(biāo)識(shí)應(yīng)用運(yùn)行時(shí)需向系統(tǒng)申請(qǐng)的權(quán)限集合
說明:
- 在requestPermissions標(biāo)簽中配置的權(quán)限項(xiàng)將在應(yīng)用級(jí)別生效,即該權(quán)限適用于整個(gè)應(yīng)用程序。
- 如果應(yīng)用需要訂閱自己發(fā)布的事件,而且應(yīng)用在extensionAbilities標(biāo)簽中的permissions字段中設(shè)置了訪問該應(yīng)用所需要的權(quán)限,那么應(yīng)用也需要在requestPermissions標(biāo)簽中注冊(cè)相關(guān)權(quán)限才能收到該事件。
- 生態(tài)治理中,要求受限的權(quán)限必須要校驗(yàn)usedScene,但是在HAR/HSP中沒有usedScene/ability,會(huì)影響構(gòu)建出包,所以HAR/HSP包中不再校驗(yàn)這個(gè)邏輯。
表10 requestPermissions標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)需要使用的權(quán)限名稱。 | 字符串 | 該標(biāo)簽不可缺省。 |
reason | 標(biāo)識(shí)申請(qǐng)權(quán)限的原因,取值需要采用資源引用格式,以適配多語(yǔ)種。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。**說明:**當(dāng)申請(qǐng)的權(quán)限為user_grant權(quán)限時(shí),該字段必填,否則不允許在應(yīng)用市場(chǎng)上架。 |
usedScene | 標(biāo)識(shí)權(quán)限使用的場(chǎng)景,包含abilities和when兩個(gè)子標(biāo)簽。 - abilities:可以配置為多個(gè)UIAbility或者ExtensionAbility名稱的字符串?dāng)?shù)組。 - when:表示調(diào)用時(shí)機(jī),支持的取值包括inuse(使用時(shí))和always(始終)。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省值為空。**說明:**HAR/HSP的場(chǎng)景下對(duì)于受限的權(quán)限不再校驗(yàn)usedScene權(quán)限。當(dāng)申請(qǐng)的權(quán)限為user_grant權(quán)限時(shí),abilities標(biāo)簽在hap中必填,when標(biāo)簽可選。 |
requestPermissions示例:
{
"module" : {
"requestPermissions": [
{
"name": "ohos.abilitydemo.permission.PROVIDER",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"EntryFormAbility"
],
"when": "inuse"
}
}
]
}
}
shortcuts標(biāo)簽
shortcuts標(biāo)識(shí)應(yīng)用的快捷方式信息。標(biāo)簽值為數(shù)組,包含四個(gè)子標(biāo)簽shortcutId、label、icon、wants。
metadata中指定shortcut信息,其中:
- name:指定shortcuts的名稱,使用ohos.ability.shortcuts作為shortcuts信息的標(biāo)識(shí)。
- resource:指定shortcuts信息的資源位置。
表11 shortcuts標(biāo)簽說明
屬性名稱 | 含義 | 類型 | 是否可缺省 |
---|---|---|---|
shortcutId | 標(biāo)識(shí)快捷方式的ID,取值為長(zhǎng)度不超過63字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
label | 標(biāo)識(shí)快捷方式的標(biāo)簽信息,即快捷方式對(duì)外顯示的文字描述信息。取值為長(zhǎng)度不超過255字節(jié)的字符串,可以是描述性內(nèi)容,也可以是標(biāo)識(shí)label的資源索引。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
icon | 標(biāo)識(shí)快捷方式的圖標(biāo),取值為資源文件的索引。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
[wants] | 標(biāo)識(shí)快捷方式內(nèi)定義的目標(biāo)wants信息集合,在調(diào)用launcherBundleManager的startShortcut接口時(shí),會(huì)拉起wants標(biāo)簽里的第一個(gè)目標(biāo)組件,推薦只配置一個(gè)wants元素。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省為空。 |
- 在/resources/base/profile/目錄下配置shortcuts_config.json配置文件。
{ "shortcuts": [ { "shortcutId": "id_test1", "label": "$string:shortcut", "icon": "$media:aa_icon", "wants": [ { "bundleName": "com.ohos.hello", "moduleName": "entry", "abilityName": "EntryAbility", "parameters": { "testKey": "testValue" } } ] } ] }
- 在module.json5配置文件的abilities標(biāo)簽中,針對(duì)需要添加快捷方式的UIAbility進(jìn)行配置metadata標(biāo)簽,使shortcut配置文件對(duì)該UIAbility生效。
{ "module": { // ... "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", // ... "skills": [ { "entities": [ "entity.system.home" ], "actions": [ "ohos.want.action.home" ] } ], "metadata": [ { "name": "ohos.ability.shortcuts", "resource": "$profile:shortcuts_config" } ] } ] } }
wants標(biāo)簽
此標(biāo)簽用于標(biāo)識(shí)快捷方式內(nèi)定義的目標(biāo)wants信息集合。
表11-1 wants標(biāo)簽說明
屬性名稱 | 含義 | 類型 | 是否可缺省 |
---|---|---|---|
bundleName | 表示快捷方式的目標(biāo)包名。 | 字符串 | 該標(biāo)簽不可缺省。 |
moduleName | 表示快捷方式的目標(biāo)模塊名。 | 字符串 | 該標(biāo)簽不可缺省。 |
abilityName | 表示快捷方式的目標(biāo)組件名。 | 字符串 | 該標(biāo)簽不可缺省。 |
parameters | 表示拉起快捷方式時(shí)的自定義數(shù)據(jù),僅支持配置字符串類型的數(shù)據(jù)。其中鍵值均最大支持1024長(zhǎng)度的字符串。 | 對(duì)象 | 該標(biāo)簽可缺省。 |
data標(biāo)簽示例:
{
"wants": [
{
"bundleName": "com.ohos.hello",
"moduleName": "entry",
"abilityName": "EntryAbility",
"parameters": {
"testKey": "testValue"
}
}
]
}
distributionFilter標(biāo)簽
該標(biāo)簽用于定義HAP對(duì)應(yīng)的細(xì)分設(shè)備規(guī)格的分發(fā)策略,以便在應(yīng)用市場(chǎng)進(jìn)行云端分發(fā)應(yīng)用包時(shí)做精準(zhǔn)匹配。
說明: 該標(biāo)簽從API10及以后版本開始生效,API9及以前版本使用distroFilter標(biāo)簽。
適用場(chǎng)景: 當(dāng)一個(gè)工程中存在多個(gè)Entry,且多個(gè)Entry配置的deviceTypes存在交集時(shí),則需要通過該標(biāo)簽進(jìn)行區(qū)分。比如下面的兩個(gè)Entry都支持tablet類型,就需要通過該標(biāo)簽進(jìn)行區(qū)分。
// entry1支持的設(shè)備類型 { "module": { "name": "entry1", "type": "entry", "deviceTypes" : [ "tv", "tablet" ] } }
// entry2支持的設(shè)備類型 { "module": { "name": "entry2", "type": "entry", "deviceTypes" : [ "car", "tablet" ] } }
配置規(guī)則: 該標(biāo)簽支持配置四個(gè)屬性,包括屏幕形狀([screenShape])、窗口分辨率([screenWindow])、屏幕像素密度([screenDensity] )、設(shè)備所在國(guó)家與地區(qū)([countryCode]),詳見下表。
在分發(fā)應(yīng)用包時(shí),通過deviceTypes與這四個(gè)屬性的匹配關(guān)系,唯一確定一個(gè)用于分發(fā)到設(shè)備的HAP。- 如果需要配置該標(biāo)簽,則至少包含一個(gè)屬性。
- 如果一個(gè)Entry中配置了任意一個(gè)或多個(gè)屬性,則其他Entry也必須包含相同的屬性。
- screenShape和screenWindow屬性僅用于輕量級(jí)智能穿戴設(shè)備。
配置方式: 該標(biāo)簽需要配置在/resources/base/profile資源目錄下,并在metadata的resource字段中引用。
表12 distributionFilter標(biāo)簽配置說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
[screenShape] | 標(biāo)識(shí)屏幕形狀的支持策略。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[screenWindow] | 標(biāo)識(shí)應(yīng)用運(yùn)行時(shí)的窗口分辨率的支持策略。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[screenDensity] | 標(biāo)識(shí)屏幕的像素密度(dpi:Dot Per Inch)的支持策略。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
[countryCode]( | 標(biāo)識(shí)國(guó)家與地區(qū)的支持策略,取值參考ISO-3166-1標(biāo)準(zhǔn)。支持多個(gè)國(guó)家和地區(qū)枚舉定義。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
screenShape標(biāo)簽
表13 screenShape標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
policy | 標(biāo)識(shí)條件屬性的過濾規(guī)則。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。 | 字符串 | 該標(biāo)簽不可缺省。 |
value | 支持的取值為circle(圓形)、rect(矩形)。例如,針對(duì)智能穿戴設(shè)備,可為圓形表盤和矩形表盤分別提供不同的HAP。 | 字符串?dāng)?shù)組 | 該標(biāo)簽不可缺省。 |
screenWindow標(biāo)簽
表14 screenWindow標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
policy | 標(biāo)識(shí)條件屬性的過濾規(guī)則。當(dāng)前取值僅支持“include”。 - include:表示需要包含的value屬性。 | 字符串 | 該標(biāo)簽不可缺省。 |
value | 單個(gè)字符串的取值格式為“寬 * 高”,取值為整數(shù)像素值,例如“454 * 454”。 | 字符串?dāng)?shù)組 | 該標(biāo)簽不可缺省。 |
screenDensity標(biāo)簽
表15 screenDensity標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
policy | 標(biāo)識(shí)條件屬性的過濾規(guī)則。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。 | 字符串 | 該標(biāo)簽不可缺省。 |
value | 標(biāo)識(shí)屏幕的像素密度(dpi :Dot Per Inch)。支持的取值如下: - sdpi:表示小規(guī)模的屏幕密度(Small-scale Dots per Inch),適用于dpi取值為(0,120]的設(shè)備。 - mdpi:表示中規(guī)模的屏幕密度(Medium-scale Dots Per Inch),適用于dpi取值為(120,160]的設(shè)備。 - ldpi:表示大規(guī)模的屏幕密度(Large-scale Dots Per Inch),適用于dpi取值為(160,240]的設(shè)備。 - xldpi:表示大規(guī)模的屏幕密度(Extra Large-scale Dots Per Inch),適用于dpi取值為(240,320]的設(shè)備。 - xxldpi:表示大規(guī)模的屏幕密度(Extra Extra Large-scale Dots Per Inch),適用于dpi取值為(320,480]的設(shè)備。 - xxxldpi:表示大規(guī)模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),適用于dpi取值為(480, 640]的設(shè)備。 | 字符串?dāng)?shù)組 | 該標(biāo)簽不可缺省。 |
countryCode標(biāo)簽
表16 countryCode標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
policy | 標(biāo)識(shí)條件屬性的過濾規(guī)則。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。 | 字符串 | 該標(biāo)簽不可缺省。 |
value | 標(biāo)識(shí)應(yīng)用需要分發(fā)的國(guó)家地區(qū)碼。 | 字符串?dāng)?shù)組 | 該標(biāo)簽不可缺省。 |
示例如下:
- 在開發(fā)視圖的resources/base/profile下面定義配置文件distributionFilter_config.json,文件名可以自定義。
{ "distributionFilter": { "screenShape": { "policy": "include", "value": [ "circle", "rect" ] }, "screenWindow": { "policy": "include", "value": [ "454*454", "466*466" ] }, "screenDensity": { "policy": "exclude", "value": [ "ldpi", "xldpi" ] }, "countryCode": { // 支持在中國(guó)分發(fā) "policy": "include", "value": [ "CN" ] } } }
- 在module.json5配置文件的module標(biāo)簽中定義metadata信息。
{ "module": { // ... "metadata": [ { "name": "ohos.module.distribution", "resource": "$profile:distributionFilter_config", } ] } }
testRunner標(biāo)簽
此標(biāo)簽用于支持對(duì)測(cè)試框架的配置。
表17 testRunner標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)測(cè)試框架對(duì)象名稱,取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 不可缺省。 |
srcPath | 標(biāo)識(shí)測(cè)試框架代碼路徑,取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 不可缺省。 |
testRunner標(biāo)簽示例:
{
"module": {
// ...
"testRunner": {
"name": "myTestRunnerName",
"srcPath": "etc/test/TestRunner.ts"
}
}
}
atomicService標(biāo)簽
此標(biāo)簽用于支持對(duì)原子化服務(wù)的配置。此標(biāo)簽僅在app.json中bundleType指定為atomicService時(shí)使能。
表18 atomicService標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
preloads | 標(biāo)識(shí)原子化服務(wù)中預(yù)加載列表。 | 對(duì)象數(shù)組 | 該標(biāo)簽可缺省,缺省值為空。 |
表19 preloads標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
moduleName | 標(biāo)識(shí)原子化服務(wù)中當(dāng)前模塊被加載時(shí),需預(yù)加載的模塊名。不能配置自身modulename,且必須有對(duì)應(yīng)的模塊,取值為長(zhǎng)度不超過31字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
atomicService標(biāo)簽示例:
{
"module": {
"atomicService": {
"preloads":[
{
"moduleName":"feature"
}
]
}
}
}
dependencies標(biāo)簽
此標(biāo)簽標(biāo)識(shí)模塊運(yùn)行時(shí)依賴的共享庫(kù)列表。
表20 dependencies標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
bundleName | 標(biāo)識(shí)當(dāng)前模塊依賴的共享包包名。取值為長(zhǎng)度7~128字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
moduleName | 標(biāo)識(shí)當(dāng)前模塊依賴的共享包模塊名。取值為長(zhǎng)度不超過31字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
versionCode | 標(biāo)識(shí)當(dāng)前共享包的版本號(hào)。取值范圍為0~2147483647。 | 數(shù)值 | 該標(biāo)簽可缺省,缺省值為空。 |
dependencies標(biāo)簽示例:
{
"module": {
"dependencies": [
{
"bundleName":"com.share.library",
"moduleName": "library",
"versionCode": 10001
}
]
}
}
proxyData標(biāo)簽
此標(biāo)簽標(biāo)識(shí)模塊提供的數(shù)據(jù)代理列表,僅限entry和feature配置。
表21 proxyData標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
uri | 標(biāo)識(shí)用于訪問該數(shù)據(jù)代理的URI,不同的數(shù)據(jù)代理配置的URI不可重復(fù),且需要滿足datashareproxy://當(dāng)前應(yīng)用包名/xxx 的格式。取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
requiredReadPermission | 標(biāo)識(shí)從該數(shù)據(jù)代理中讀取數(shù)據(jù)所需要的權(quán)限,若不配置,則其他應(yīng)用無法使用該代理。非系統(tǒng)應(yīng)用配置的權(quán)限的等級(jí)需為system_basic或system_core,系統(tǒng)應(yīng)用配置的權(quán)限的等級(jí)沒有限制。取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
requiredWritePermission | 標(biāo)識(shí)向該數(shù)據(jù)代理中寫入數(shù)據(jù)所需要的權(quán)限,若不配置,則其他應(yīng)用無法使用該代理。非系統(tǒng)應(yīng)用配置的權(quán)限的等級(jí)需為system_basic或system_core,系統(tǒng)應(yīng)用配置的權(quán)限的等級(jí)沒有限制。取值為長(zhǎng)度不超過255字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
[metadata] | 標(biāo)識(shí)該數(shù)據(jù)代理的元信息,只支持配置name和resource字段。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省值為空。 |
proxyData標(biāo)簽示例:
{
"module": {
"proxyData": [
{
"uri":"datashareproxy://com.ohos.datashare/event/Meeting",
"requiredReadPermission": "ohos.permission.GET_BUNDLE_INFO",
"requiredWritePermission": "ohos.permission.GET_BUNDLE_INFO",
"metadata": {
"name": "datashare_metadata",
"resource": "$profile:datashare"
}
}
]
}
}
routerMap標(biāo)簽
此標(biāo)簽標(biāo)識(shí)模塊配置的路由表的路徑。
routerMap配置文件描述模塊的路由表信息,routerMap標(biāo)簽值為數(shù)組類型。
表22 routerMap標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)跳轉(zhuǎn)頁(yè)面的名稱。取值為長(zhǎng)度不超過1023字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
pageSourceFile | 標(biāo)識(shí)頁(yè)面在模塊內(nèi)的路徑。取值為長(zhǎng)度不超過31字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
buildFunction | 標(biāo)識(shí)被@Builder修飾的函數(shù),該函數(shù)描述頁(yè)面的UI。取值為長(zhǎng)度不超過1023字節(jié)的字符串。 | 字符串 | 該標(biāo)簽不可缺省。 |
[data] | 標(biāo)識(shí)自定義數(shù)據(jù),總長(zhǎng)度不超過4096。 | 對(duì)象 | 該標(biāo)簽可缺省,缺省值為空。 |
示例如下:
- 在開發(fā)視圖的resources/base/profile下面定義配置文件,文件名可以自定義,例如:router_map.json。
{ "routerMap": [ { "name": "DynamicPage1", "pageSourceFile": "src/main/ets/pages/pageOne.ets", "buildFunction": "myFunction" }, { "name": "DynamicPage2", "pageSourceFile": "src/main/ets/pages/pageTwo.ets", "buildFunction": "myBuilder", "data": { "key1": "data1", "key2": "data2" } } ] }
- 在module.json5配置文件的module標(biāo)簽中定義
routerMap
字段,指向定義的路由表配置文件,例如:"routerMap": "$profile:router_map"
。
data標(biāo)簽
此標(biāo)簽用于支持在路由表中配置自定義數(shù)據(jù)。 data對(duì)象內(nèi)部,可以填入自定義數(shù)據(jù)。
data標(biāo)簽示例:
{
"routerMap": [
{
"name": "DynamicPage",
"pageSourceFile": "src/main/ets/pages/pageOne.ets",
"buildFunction": "myBuilder",
"data": {
"stringKey": "data1",
"numberKey": 123,
"booleanKey": true,
"objectKey": {
"name": "test"
},
"arrayKey": [
{
"id": 123
}
]
}
}
]
}
appEnvironments標(biāo)簽
此標(biāo)簽標(biāo)識(shí)模塊配置的應(yīng)用環(huán)境變量。
表23 appEnvironments標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)環(huán)境變量的變量名稱。取值為長(zhǎng)度不超過4096字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
value | 標(biāo)識(shí)環(huán)境變量的值。取值為長(zhǎng)度不超過4096字節(jié)的字符串。 | 字符串 | 該標(biāo)簽可缺省,缺省值為空。 |
appEnvironments標(biāo)簽示例:
{
"module": {
"appEnvironments": [
{
"name":"name1",
"value": "value1"
}
]
}
}
definePermissions標(biāo)簽
該標(biāo)簽僅支持系統(tǒng)資源hap定義權(quán)限,不支持應(yīng)用自定義權(quán)限。
表24 definePermissions標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
name | 標(biāo)識(shí)權(quán)限的名稱,該標(biāo)簽最大長(zhǎng)度為255字節(jié)。 | 字符串 | 不可缺省。 |
grantMode | 標(biāo)識(shí)權(quán)限的授予方式,支持如下兩種授予模式如下: - system_grant:安裝后系統(tǒng)自動(dòng)授予該權(quán)限。 - user_grant:使用時(shí)動(dòng)態(tài)申請(qǐng),用戶授權(quán)后才可使用。 | 字符串 | 可缺省,缺省值為system_grant。 |
availableLevel | 標(biāo)識(shí)權(quán)限限制類別,可選值如下: - system_core:系統(tǒng)核心權(quán)限。 - system_basic:系統(tǒng)基礎(chǔ)權(quán)限。 - normal:普通權(quán)限。所有應(yīng)用允許申請(qǐng)的權(quán)限。 | 字符串 | 可缺省,缺省值為normal。 |
provisionEnable | 標(biāo)識(shí)權(quán)限是否支持證書方式申請(qǐng)權(quán)限,包括高級(jí)別的權(quán)限。配置為true標(biāo)識(shí)開發(fā)者可以通過provision方式申請(qǐng)權(quán)限。 | 布爾值 | 可缺省,缺省值為true。 |
distributedSceneEnabled | 標(biāo)識(shí)權(quán)限是否支持分布式場(chǎng)景下使用該權(quán)限。 | 布爾值 | 可缺省,缺省值為false。 |
label | 標(biāo)識(shí)權(quán)限的簡(jiǎn)短描述,配置為對(duì)描述內(nèi)容的資源索引。 | 字符串 | 可缺省,缺省值為空。 |
description | 標(biāo)識(shí)權(quán)限的詳細(xì)描述,可以是字符串,或者是對(duì)描述內(nèi)容的資源索引。 | 字符串 | 可缺省,缺省值為空。 |
definePermissions標(biāo)簽示例:
{
"module" : {
"definePermissions": [
{
{
"name": "ohos.abilitydemo.permission.PROVIDER",
"grantMode": "system_grant",
"availableLevel": "system_core",
"provisionEnable": true,
"distributedSceneEnable": false,
"label": "$string:EntryAbility_label"
}
}
]
}
}
hnpPackages標(biāo)簽
該標(biāo)簽標(biāo)識(shí)應(yīng)用包含的Native軟件包信息。
表10 hnpPackages標(biāo)簽說明
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
package | 標(biāo)識(shí)Native軟件包名稱。 | 字符串 | 該標(biāo)簽不可缺省。 |
type | 標(biāo)識(shí)Native軟件包類型。支持的取值如下: - public:公有類型。 - private:私有類型。 | 字符串 | 該標(biāo)簽不可缺省。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
hnpPackages示例:
{
"module" : {
"hnpPackages": [
{
"package": "hnpsample.hnp",
"type": "public"
}
]
}
}
審核編輯 黃宇
-
框架
+關(guān)注
關(guān)注
0文章
397瀏覽量
17358 -
模型
+關(guān)注
關(guān)注
1文章
3054瀏覽量
48569 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2287瀏覽量
42629
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論