ExtensionAbility組件
ExtensionAbility組件是基于特定場景(例如服務(wù)卡片、輸入法等)提供的應(yīng)用組件,以便滿足更多的使用場景。
每一個具體場景對應(yīng)一個[ExtensionAbilityType],開發(fā)者只能使用(包括實(shí)現(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)用實(shí)現(xiàn)”是指:對于一類ExtensionAbility,三方應(yīng)用能否繼承該ExtensionAbility父類實(shí)現(xiàn)自己的業(yè)務(wù)邏輯。
- “是否允許三方應(yīng)用訪問”是指:有些ExtensionAbility會對外提供一些服務(wù),這些ExtensionAbility可能允許三方訪問,也可能不允許。“Y”表示允許,“N”表示不允許,“NA”表示不涉及對外服務(wù)。
- “是否有獨(dú)立Extension沙箱”是指:已經(jīng)開發(fā)Extension都是和主應(yīng)用共沙箱運(yùn)行,API12及其之后新增Extension默認(rèn)獨(dú)立沙箱運(yùn)行,輸入法Extesnion由于安全機(jī)制管控改為獨(dú)立沙箱運(yùn)行。
- “啟動Extension傳遞共享數(shù)據(jù)是否嚴(yán)格模式訪問”是指:共享數(shù)據(jù)可通過配置應(yīng)用的[data-group-ids]和ExtensionAbility的[dataGroupIds]實(shí)現(xiàn)。嚴(yán)格模式訪問表示只讀,非嚴(yán)格模式訪問表示可以讀寫。“Y”表示嚴(yán)格模式訪問共享數(shù)據(jù),即只能讀取共享數(shù)據(jù),“N”表示非嚴(yán)格模式訪問共享數(shù)據(jù),即可以讀寫共享數(shù)據(jù)。
對于系統(tǒng)應(yīng)用,不受下表約束,允許實(shí)現(xiàn)系統(tǒng)已定義的各類ExtensionAbility,也允許訪問提供的各類對外服務(wù)。
已支持ExtensionAbility類型 | 功能描述 | 是否允許三方應(yīng)用實(shí)現(xiàn) | 是否允許三方應(yīng)用訪問 | 是否有獨(dú)立Extension沙箱 | 啟動Extension傳遞共享數(shù)據(jù)是否嚴(yán)格模式訪問 |
---|---|---|---|---|---|
[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組件,用于實(shí)現(xiàn)[輸入法應(yīng)用]的開發(fā)。 | Y | Y | Y | 開發(fā)者在輸入法管理中啟用完整體驗(yàn)?zāi)J剑撮_啟非嚴(yán)格模式,可讀寫共享數(shù)據(jù);不啟用完整體驗(yàn)?zāi)J剑J(rèn)為嚴(yán)格模式,只能讀取共享數(shù)據(jù)。 |
[AccessibilityExtensionAbility] | ACCESSIBILITY類型的ExtensionAbility組件,用于實(shí)現(xiàn)[無障礙擴(kuò)展服務(wù)]的開發(fā)。 | Y | NA | N | N |
[BackupExtensionAbility] | BACKUP類型的ExtensionAbility組件,用于提供[備份及恢復(fù)應(yīng)用數(shù)據(jù)]的能力。 | Y | NA | N | N |
[DriverExtensionAbility] | DRIVER類型的ExtensionAbility組件,用于提供[驅(qū)動相關(guān)擴(kuò)展框架]。 | Y | Y | N | N |
[EmbeddedUIExtensionAbility] | EMBEDDED_UI類型的ExtensionAbility組件,用于提供[跨進(jìn)程界面嵌入]的能力。 | 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]組件為例進(jìn)行說明,如下圖所示,調(diào)用方應(yīng)用發(fā)起對InputMethodExtensionAbility組件的調(diào)用,此時將先調(diào)用輸入法管理服務(wù),由輸入法管理服務(wù)拉起[InputMethodExtensionAbility]組件,返回給調(diào)用方,同時開始管理其生命周期。
圖1 使用InputMethodExtensionAbility組件
實(shí)現(xiàn)指定類型的ExtensionAbility組件
以實(shí)現(xiàn)卡片[FormExtensionAbility]為例進(jìn)行說明。卡片框架提供了[FormExtensionAbility]基類,開發(fā)者通過派生此基類(如MyFormExtensionAbility),實(shí)現(xiàn)回調(diào)(如創(chuàng)建卡片的onCreate()回調(diào)、更新卡片的onUpdateForm()回調(diào)等)來實(shí)現(xiàn)具體卡片功能,具體見開發(fā)指導(dǎo)見[服務(wù)卡片]。
卡片F(xiàn)ormExtensionAbility實(shí)現(xiàn)方不用關(guān)心使用方何時去請求添加、刪除卡片,F(xiàn)ormExtensionAbility實(shí)例及其所在的ExtensionAbility進(jìn)程的整個生命周期,都是由卡片管理系統(tǒng)服務(wù)FormManagerService進(jìn)行調(diào)度管理。
說明: 同一應(yīng)用內(nèi)的所有同類型的ExtensionAbility運(yùn)行在同一獨(dú)立進(jìn)程(除ServiceExtensionAbility、DataShareExtensionAbility外),跟UIAbility組件不在同一進(jìn)程,Stage模型的進(jìn)程模型請參見[進(jìn)程模型]。
審核編輯 黃宇
-
框架
+關(guān)注
關(guān)注
0文章
403瀏覽量
17475 -
組件
+關(guān)注
關(guān)注
1文章
512瀏覽量
17813 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2339瀏覽量
42811
發(fā)布評論請先 登錄
相關(guān)推薦
評論