FA模型應(yīng)用配置文件
應(yīng)用配置文件中包含應(yīng)用配置信息、應(yīng)用組件信息、權(quán)限信息、開發(fā)者自定義信息等,這些信息在編譯構(gòu)建、分發(fā)和運行解決分別提供給編譯工具、應(yīng)用市場和操作系統(tǒng)使用。
在基于FA模型開發(fā)的應(yīng)用項目代碼下,都存在一個config.json配置文件,常用配置項請參見[應(yīng)用/組件級配置]。
應(yīng)用/組件級配置
開發(fā)者在開發(fā)應(yīng)用時,需要配置應(yīng)用的一些標簽,例如應(yīng)用的Bundle名稱、圖標等標識特征的屬性。這一章節(jié)描述了開發(fā)者在開發(fā)應(yīng)用時需要配置的一些關(guān)鍵標簽。 開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
應(yīng)用包名配置
應(yīng)用包名需在config.json文件中app標簽下配置bundleName字段,該字段用于指定應(yīng)用的包名,需保證唯一性。包名是由字母、數(shù)字、下劃線(_)和點號(.)組成的字符串,必須以字母開頭。支持的字符串長度為7~127字節(jié)。包名通常采用反向域名形式表示(例如,"com.example.myapplication")。建議第一級為域名后綴"com",第二級為廠商/個人名,也可以采用多級。應(yīng)用名稱配置可以參考[app標簽說明]。
圖標和標簽配置
圖標和標簽通常一起配置,可以分為應(yīng)用圖標、應(yīng)用標簽和入口圖標、入口標簽。
應(yīng)用圖標和標簽通常用于標識整個應(yīng)用,可以在標識應(yīng)用的界面使用該類型圖標和標簽。比如:
- 設(shè)置應(yīng)用中,需要展示應(yīng)用列表時
- 在隱私管理中,需要展示應(yīng)用申請的權(quán)限時
- 在狀態(tài)欄顯示通知消息時
入口圖標和標簽是應(yīng)用安裝完成后可以在設(shè)備桌面上顯示出來的。入口圖標是以Page類型的Ability為粒度,支持同一個應(yīng)用存在多個入口圖標和入口標簽,點擊后進入對應(yīng)的Ability界面。比如:
- 桌面上需要顯示圖標時
- 最近任務(wù)列表中顯示時
應(yīng)用圖標和標簽配置
FA模型不支持直接配置應(yīng)用圖標和標簽,會以符合規(guī)則的PageAbility的圖標和標簽作為應(yīng)用圖標和標簽。存在多個時,則取位置靠前的Ability的icon和label作為應(yīng)用的icon和label。
入口圖標和標簽配置
入口圖標和標簽配置方法
FA模型的入口圖標和標簽是Page類型的Ability配置的icon和label。
PageAbility的圖標和標簽配置請參見[PageAbility組件配置]。需在config.json文件的abilities標簽下做如下配置:
- 配置icon字段,標簽值為資源文件的索引。圖標需要在配置IDE的資源文件中,路徑為/resource/base/media。取值示例:$media:ability_icon。
- 配置label字段,標簽值為資源文件的索引,標識Ability對用戶顯示的名稱。取值可以是Ability名稱,也可以是對該名稱的資源索引,以支持多語言。
如果在該PageAbility的skills屬性中,actions的取值包含 "action.system.home",entities取值中包含"entity.system.home",則該Ability的icon和label將同時作為應(yīng)用的icon和label。如果存在多個符合條件的Ability,則取位置靠前的Ability的icon和label作為應(yīng)用的icon和label。圖標和標簽配置可以參考[abilities標簽說明]。
{
...
"module": {
...
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"formsEnabled": false,
"name": ".MainAbility",
"srcLanguage": "ets",
"srcPath": "MainAbility",
"icon": "$media:icon",
"description": "$string:MainAbility_desc",
"label": "$string:MainAbility_label",
"type": "page",
"visible": true,
"launchType": "singleton"
},
...
]
...
}
}
入口圖標和標簽管控規(guī)則
系統(tǒng)對無圖標應(yīng)用實施嚴格管控,防止一些惡意應(yīng)用故意配置無入口圖標,導致用戶找不到軟件所在的位置,無法操作卸載應(yīng)用,在一定程度上保證用戶終端設(shè)備的安全。
如果應(yīng)用確需隱藏入口圖標,需要配置AllowAppDesktopIconHide應(yīng)用特權(quán)。詳細的入口圖標及入口標簽的顯示規(guī)則如下。
- HAP中包含PageAbility
- 在config.json配置文件的abilities標簽中設(shè)置了入口圖標
- 該應(yīng)用沒有隱藏圖標的特權(quán)
- 系統(tǒng)將使用該PageAbility配置的icon作為入口圖標,并顯示在桌面上。用戶點擊該圖標,頁面跳轉(zhuǎn)到該PageAbility首頁。
- 系統(tǒng)將使用該PageAbility配置的label作為入口標簽,并顯示在桌面上,如果沒有配置label,系統(tǒng)將使用應(yīng)用的bundleName作為入口標簽,并顯示在桌面上。
- 該應(yīng)用具有隱藏圖標的特權(quán)
- 桌面應(yīng)用查詢時不返回應(yīng)用信息,不會在桌面上顯示對應(yīng)的入口圖標和標簽。
- 該應(yīng)用沒有隱藏圖標的特權(quán)
- 在config.json配置文件的abilities標簽中未設(shè)置入口圖標
- 該應(yīng)用沒有隱藏圖標的特權(quán)
- 系統(tǒng)將使用系統(tǒng)資源中的icon作為入口圖標,并顯示在桌面上。用戶點擊該圖標,頁面跳轉(zhuǎn)到應(yīng)用管理中對應(yīng)的應(yīng)用詳情頁面。
- 系統(tǒng)將使用該PageAbility配置的label作為入口標簽,并顯示在桌面上,如果沒有配置label,系統(tǒng)將使用應(yīng)用的bundleName作為入口標簽,并顯示在桌面上。
- 該應(yīng)用具有隱藏圖標的特權(quán)
- 桌面應(yīng)用查詢時不返回應(yīng)用信息,不會在桌面上顯示對應(yīng)的入口圖標和標簽。
- 該應(yīng)用沒有隱藏圖標的特權(quán)
- 在config.json配置文件的abilities標簽中設(shè)置了入口圖標
- HAP中不包含PageAbility
- 該應(yīng)用沒有隱藏圖標的特權(quán)
- 系統(tǒng)將使用系統(tǒng)資源中的icon作為入口圖標,并顯示在桌面上。用戶點擊該圖標,頁面跳轉(zhuǎn)到應(yīng)用管理中對應(yīng)的應(yīng)用詳情頁面。
- 系統(tǒng)將使用應(yīng)用的bundleName作為入口標簽,并顯示在桌面上。
- 該應(yīng)用具有隱藏圖標的特權(quán)
- 桌面應(yīng)用查詢時不返回應(yīng)用信息,不會在桌面上顯示對應(yīng)的入口圖標和標簽。
- 該應(yīng)用沒有隱藏圖標的特權(quán)
應(yīng)用版本聲明配置
應(yīng)用版本聲明配置需在config.json中的app標簽下配置version字段,以說明應(yīng)用當前的版本號和版本名稱以及應(yīng)用能夠兼容的最低歷史版本號。
Module支持的設(shè)備類型配置
Module支持的設(shè)備類型需要在config.json文件中配置deviceType字段,如果deviceType標簽中添加了某種設(shè)備,則表明當前的module支持在該設(shè)備上運行。
組件權(quán)限申請配置
組件權(quán)限申請配置需在config.json中的module標簽下配置reqPermissions字段。來聲明需要申請權(quán)限的名稱,申請權(quán)限的原因以及權(quán)限使用的場景。
應(yīng)用配置文件概述(FA模型)
每個應(yīng)用項目必須在項目的代碼目錄下加入配置文件,這些配置文件會向編譯工具、操作系統(tǒng)和應(yīng)用市場提供描述應(yīng)用的基本信息。
應(yīng)用配置文件需申明以下內(nèi)容:
- 應(yīng)用的軟件Bundle名稱,應(yīng)用的開發(fā)廠商,版本號等應(yīng)用的基本配置信息,這些信息被要求設(shè)置在app這個字段下。
- 應(yīng)用的組件的基本信息,包括所有的Ability,設(shè)備類型,組件的類型以及當前組件所使用的語法類型。
- 應(yīng)用在具體設(shè)備上的配置信息,這些信息會影響應(yīng)用在設(shè)備上的具體功能。
在FA模型的應(yīng)用開發(fā)過程中,需要在config.json配置文件中對應(yīng)用的包結(jié)構(gòu)進行聲明。
配置文件的內(nèi)部結(jié)構(gòu)
config.json由app、deviceConfig和module三個部分組成,缺一不可。
屬性名稱 | 含義 | 數(shù)據(jù)類型 | 是否可缺省 |
---|---|---|---|
[app] | 標識應(yīng)用的全局配置信息。同一個應(yīng)用的不同HAP的app配置必須保持一致。 | 對象 | 不可缺省。 |
[deviceConfig] | 標識應(yīng)用在具體設(shè)備上的配置信息。 | 對象 | 不可缺省。 |
[module] | 標識HAP的配置信息。該標簽下的配置只對當前HAP生效。 | 對象 | 不可缺省。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
config.json示例:
{
"app": {
"vendor": "example",
"bundleName": "com.example.demo",
"version": {
"code": 1000000,
"name": "1.0.0"
}
},
"deviceConfig": {
},
"module": {
"mainAbility": ".MainAbility_entry",
"deviceType": [
"tablet"
],
"commonEvents": [
{
"name": ".EntryAbility",
"permission": "ohos.permission.GET_BUNDLE_INFO",
"data": [
"com.example.demo",
"100"
],
"events": [
"install",
"update"
]
}
],
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility_entry",
"name": ".MainAbility_entry",
"srcLanguage": "ets",
"icon": "$media:icon",
// $string:MainAbility_entry_desc為資源索引
"description": "$string:MainAbility_entry_desc",
"formsEnabled": false,
// $string:MainAbility_entry_label為資源索引
"label": "$string:MainAbility_entry_label",
"type": "page",
"launchType": "multiton"
}
],
"distro": {
"moduleType": "entry",
"installationFree": false,
"deliveryWithInstall": true,
"moduleName": "myapplication"
},
"package": "com.example.myapplication",
"srcPath": "",
"name": ".myapplication",
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index"
],
"name": ".MainAbility_entry",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
審核編輯 黃宇
-
框架
+關(guān)注
關(guān)注
0文章
403瀏覽量
17553 -
模型
+關(guān)注
關(guān)注
1文章
3336瀏覽量
49260 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2395瀏覽量
43086
發(fā)布評論請先 登錄
相關(guān)推薦
OpenHarmony開發(fā)之Ability架構(gòu)
鴻蒙元服務(wù)萬能卡片開發(fā)-stage模型和fa模型的卡片區(qū)別
鴻蒙開發(fā):【Stage模型應(yīng)用配置文件】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:【Stage<b class='flag-5'>模型</b>應(yīng)用<b class='flag-5'>配置文件</b>】](https://file1.elecfans.com/web2/M00/EB/49/wKgaomZYGf-AbJxuAAWQ7RqfYmE388.jpg)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型與Stage模型應(yīng)用組件互通綜述
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>與Stage<b class='flag-5'>模型</b>應(yīng)用組件互通綜述](https://file1.elecfans.com/web2/M00/F2/5C/wKgZomZ5J5OAKymYAAQbWDMAR2M322.jpg)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型綁定Stage模型ServiceExtensionAbility
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>綁定Stage<b class='flag-5'>模型</b>ServiceExtensionAbility](https://file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型訪問Stage模型DataShareExtensionAbility
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>訪問Stage<b class='flag-5'>模型</b>DataShareExtensionAbility](https://file1.elecfans.com/web2/M00/F2/CD/wKgZomZ6Y3-AKHqkAAC98f61kj0358.jpg)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):Stage模型啟動FA模型PageAbility
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:Stage<b class='flag-5'>模型</b>啟動<b class='flag-5'>FA</b><b class='flag-5'>模型</b>PageAbility](https://file1.elecfans.com/web2/M00/EB/93/wKgZomZeuXuAfmJRAADrojiVvnQ389.png)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):Stage模型綁定FA模型ServiceAbility
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:Stage<b class='flag-5'>模型</b>綁定<b class='flag-5'>FA</b><b class='flag-5'>模型</b>ServiceAbility](https://file1.elecfans.com/web2/M00/C6/E9/wKgaomYEK1aAOyTeAADysXFhWs8242.png)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型切換Stage模型指導 配置文件差異
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>切換Stage<b class='flag-5'>模型</b>指導 <b class='flag-5'>配置文件</b>差異](https://file1.elecfans.com/web2/M00/F3/2F/wKgZomZ8B0CARNxEAAIfjY_WHyA129.jpg)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型切換Stage模型指導 app和deviceConfig的切換
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>切換Stage<b class='flag-5'>模型</b>指導 app和deviceConfig的切換](https://file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型切換Stage模型指導 module的切換
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>切換Stage<b class='flag-5'>模型</b>指導 module的切換](https://file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):聲明權(quán)限
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:聲明權(quán)限](https://file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)
評論