ExtensionAbility組件
ExtensionAbility組件是基于特定場景(例如服務(wù)卡片、輸入法等)提供的應(yīng)用組件,以便滿足更多的使用場景。
每一個具體場景對應(yīng)一個[ExtensionAbilityType],開發(fā)者只能使用(包括實現(xiàn)和訪問)系統(tǒng)已定義的類型。各類型的ExtensionAbility組件均由相應(yīng)的系統(tǒng)服務(wù)統(tǒng)一管理,例如InputMethodExtensionAbility組件由輸入法管理服務(wù)統(tǒng)一管理。
當(dāng)前系統(tǒng)已定義的ExtensionAbility類型如下表所示。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
- “是否允許三方應(yīng)用實現(xiàn)”是指:對于一類ExtensionAbility,三方應(yīng)用能否繼承該ExtensionAbility父類實現(xiàn)自己的業(yè)務(wù)邏輯。
- “是否允許三方應(yīng)用訪問”是指:有些ExtensionAbility會對外提供一些服務(wù),這些ExtensionAbility可能允許三方訪問,也可能不允許。“Y”表示允許,“N”表示不允許,“NA”表示不涉及對外服務(wù)。
- “是否有獨立Extension沙箱”是指:已經(jīng)開發(fā)Extension都是和主應(yīng)用共沙箱運行,API12及其之后新增Extension默認獨立沙箱運行,輸入法Extesnion由于安全機制管控改為獨立沙箱運行。
- “啟動Extension傳遞共享數(shù)據(jù)是否嚴格模式訪問”是指:共享數(shù)據(jù)可通過配置應(yīng)用的[data-group-ids]和ExtensionAbility的[dataGroupIds]實現(xiàn)。嚴格模式訪問表示只讀,非嚴格模式訪問表示可以讀寫。“Y”表示嚴格模式訪問共享數(shù)據(jù),即只能讀取共享數(shù)據(jù),“N”表示非嚴格模式訪問共享數(shù)據(jù),即可以讀寫共享數(shù)據(jù)。
對于系統(tǒng)應(yīng)用,不受下表約束,允許實現(xiàn)系統(tǒng)已定義的各類ExtensionAbility,也允許訪問提供的各類對外服務(wù)。
已支持ExtensionAbility類型 | 功能描述 | 是否允許三方應(yīng)用實現(xiàn) | 是否允許三方應(yīng)用訪問 | 是否有獨立Extension沙箱 | 啟動Extension傳遞共享數(shù)據(jù)是否嚴格模式訪問 |
---|---|---|---|---|---|
[FormExtensionAbility] | FORM類型的ExtensionAbility組件,用于提供[服務(wù)卡片]的相關(guān)能力。 | Y | N | N | N |
[WorkSchedulerExtensionAbility] | WORK_SCHEDULER類型的ExtensionAbility組件,用于提供[延遲任務(wù)]的相關(guān)能力。 | Y | NA | N | N |
[InputMethodExtensionAbility] | INPUT_METHOD類型的ExtensionAbility組件,用于實現(xiàn)[輸入法應(yīng)用]的開發(fā)。 | Y | Y | Y | 開發(fā)者在輸入法管理中啟用完整體驗?zāi)J剑撮_啟非嚴格模式,可讀寫共享數(shù)據(jù);不啟用完整體驗?zāi)J剑J為嚴格模式,只能讀取共享數(shù)據(jù)。 |
[AccessibilityExtensionAbility] | ACCESSIBILITY類型的ExtensionAbility組件,用于實現(xiàn)[無障礙擴展服務(wù)]的開發(fā)。 | Y | NA | N | N |
[BackupExtensionAbility] | BACKUP類型的ExtensionAbility組件,用于提供[備份及恢復(fù)應(yīng)用數(shù)據(jù)]的能力。 | Y | NA | N | N |
[DriverExtensionAbility] | DRIVER類型的ExtensionAbility組件,用于提供[驅(qū)動相關(guān)擴展框架]。 | Y | Y | N | N |
[EmbeddedUIExtensionAbility] | EMBEDDED_UI類型的ExtensionAbility組件,用于提供[跨進程界面嵌入]的能力。 | Y | Y | N | NHarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
訪問指定類型的ExtensionAbility組件
所有類型的ExtensionAbility組件均不能被應(yīng)用直接啟動,而是由相應(yīng)的系統(tǒng)管理服務(wù)拉起,以確保其生命周期受系統(tǒng)管控,使用時拉起,使用完銷毀。ExtensionAbility組件的調(diào)用方無需關(guān)心目標(biāo)ExtensionAbility組件的生命周期。
以[InputMethodExtensionAbility]組件為例進行說明,如下圖所示,調(diào)用方應(yīng)用發(fā)起對InputMethodExtensionAbility組件的調(diào)用,此時將先調(diào)用輸入法管理服務(wù),由輸入法管理服務(wù)拉起[InputMethodExtensionAbility]組件,返回給調(diào)用方,同時開始管理其生命周期。
圖1 使用InputMethodExtensionAbility組件
實現(xiàn)指定類型的ExtensionAbility組件
以實現(xiàn)卡片[FormExtensionAbility]為例進行說明。卡片框架提供了[FormExtensionAbility]基類,開發(fā)者通過派生此基類(如MyFormExtensionAbility),實現(xiàn)回調(diào)(如創(chuàng)建卡片的onCreate()回調(diào)、更新卡片的onUpdateForm()回調(diào)等)來實現(xiàn)具體卡片功能,具體見開發(fā)指導(dǎo)見[服務(wù)卡片]。
卡片F(xiàn)ormExtensionAbility實現(xiàn)方不用關(guān)心使用方何時去請求添加、刪除卡片,F(xiàn)ormExtensionAbility實例及其所在的ExtensionAbility進程的整個生命周期,都是由卡片管理系統(tǒng)服務(wù)FormManagerService進行調(diào)度管理。
說明: 同一應(yīng)用內(nèi)的所有同類型的ExtensionAbility運行在同一獨立進程(除ServiceExtensionAbility、DataShareExtensionAbility外),跟UIAbility組件不在同一進程,Stage模型的進程模型請參見[進程模型]。
審核編輯 黃宇
-
框架
+關(guān)注
關(guān)注
0文章
403瀏覽量
17543 -
組件
+關(guān)注
關(guān)注
1文章
518瀏覽量
17925 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2392瀏覽量
43055
發(fā)布評論請先 登錄
相關(guān)推薦
鴻蒙Ability Kit(程序框架服務(wù))【ServiceExtensionAbility】
![<b class='flag-5'>鴻蒙</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>)【ServiceExtensionAbility】](https://file1.elecfans.com/web2/M00/C6/E9/wKgaomYEK1aAOyTeAADysXFhWs8242.png)
鴻蒙Ability Kit(程序框架服務(wù))【UIExtensionAbility】
![<b class='flag-5'>鴻蒙</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>)【UIExtensionAbility】](https://file1.elecfans.com/web2/M00/EB/B0/wKgZomZfHSeASBoeAAE5nDiRpn8209.jpg)
鴻蒙應(yīng)用模型:【Ability Kit】簡介
![<b class='flag-5'>鴻蒙</b>應(yīng)用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡介](https://file1.elecfans.com/web2/M00/EA/1B/wKgZomZWzLmARq9xAABl2Ql50bI212.jpg)
鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件啟動模式】
![<b class='flag-5'>鴻蒙</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>)【UIAbility<b class='flag-5'>組件</b>啟動模式】](https://file1.elecfans.com/web2/M00/EB/9D/wKgaomZZxTSANfBpAGBNtLqJkcU253.jpg)
鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件基本用法】
![<b class='flag-5'>鴻蒙</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>)【UIAbility<b class='flag-5'>組件</b>基本用法】](https://file1.elecfans.com/web2/M00/EC/1E/wKgZomZhJtuAGvhjAACAmnpjgBM543.png)
鴻蒙Ability Kit(程序框架服務(wù))【Ability內(nèi)頁面間的跳轉(zhuǎn)】
![<b class='flag-5'>鴻蒙</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'>Ability</b>內(nèi)頁面間的跳轉(zhuǎn)】](https://file1.elecfans.com/web2/M00/E3/5B/wKgaomY7dICAanabAG9fQxOwEh0579.jpg)
鴻蒙Ability Kit(程序框架服務(wù))【Ability與ServiceExtensionAbility通信】
![<b class='flag-5'>鴻蒙</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'>Ability</b>與ServiceExtensionAbility通信】](https://file1.elecfans.com/web2/M00/EC/91/wKgaomZfBTaAUYFaAAIK5_JVZ4U512.jpg)
鴻蒙Ability Kit(程序框架服務(wù))【AbilityStage組件容器】
![<b class='flag-5'>鴻蒙</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>)【AbilityStage<b class='flag-5'>組件</b>容器】](https://file1.elecfans.com/web2/M00/EC/CC/wKgaomZgJmmAAKv7AACS_WtXUhs251.png)
鴻蒙Ability Kit(程序框架服務(wù))【應(yīng)用上下文Context】
![<b class='flag-5'>鴻蒙</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>)【應(yīng)用上下文Context】](https://file1.elecfans.com/web2/M00/EB/AA/wKgZomZfBbWAPqxgAAMXOrGQOgM110.png)
鴻蒙Ability Kit(程序框架服務(wù))【組件啟動規(guī)則(Stage模型)】
![<b class='flag-5'>鴻蒙</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'>組件</b>啟動規(guī)則(Stage模型)】](https://file1.elecfans.com/web2/M00/EC/7E/wKgZomZi_feAXjNKAAFnNkxsf8k722.jpg)
鴻蒙Ability Kit(程序框架服務(wù))【應(yīng)用啟動框架AppStartup】
鴻蒙開發(fā)Ability Kit程序框架服務(wù):任務(wù)管理
![<b class='flag-5'>鴻蒙</b>開發(fā)<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>:任務(wù)管理](https://file1.elecfans.com/web2/M00/EE/32/wKgaomZqk2mAaMcQAAEKIy3nFy8557.jpg)
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型與Stage模型應(yīng)用組件互通綜述
![<b class='flag-5'>鴻蒙</b>開發(fā)<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>:FA模型與Stage模型應(yīng)用<b class='flag-5'>組件</b>互通綜述](https://file1.elecfans.com/web2/M00/F2/5C/wKgZomZ5J5OAKymYAAQbWDMAR2M322.jpg)
評論