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