ExtensionAbility組件
ExtensionAbility組件是基于特定場景(例如服務卡片、輸入法等)提供的應用組件,以便滿足更多的使用場景。
每一個具體場景對應一個[ExtensionAbilityType],開發者只能使用(包括實現和訪問)系統已定義的類型。各類型的ExtensionAbility組件均由相應的系統服務統一管理,例如InputMethodExtensionAbility組件由輸入法管理服務統一管理。
當前系統已定義的ExtensionAbility類型如下表所示。
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
- “是否允許三方應用實現”是指:對于一類ExtensionAbility,三方應用能否繼承該ExtensionAbility父類實現自己的業務邏輯。
- “是否允許三方應用訪問”是指:有些ExtensionAbility會對外提供一些服務,這些ExtensionAbility可能允許三方訪問,也可能不允許。“Y”表示允許,“N”表示不允許,“NA”表示不涉及對外服務。
- “是否有獨立Extension沙箱”是指:已經開發Extension都是和主應用共沙箱運行,API12及其之后新增Extension默認獨立沙箱運行,輸入法Extesnion由于安全機制管控改為獨立沙箱運行。
- “啟動Extension傳遞共享數據是否嚴格模式訪問”是指:共享數據可通過配置應用的[data-group-ids]和ExtensionAbility的[dataGroupIds]實現。嚴格模式訪問表示只讀,非嚴格模式訪問表示可以讀寫。“Y”表示嚴格模式訪問共享數據,即只能讀取共享數據,“N”表示非嚴格模式訪問共享數據,即可以讀寫共享數據。
對于系統應用,不受下表約束,允許實現系統已定義的各類ExtensionAbility,也允許訪問提供的各類對外服務。
已支持ExtensionAbility類型 | 功能描述 | 是否允許三方應用實現 | 是否允許三方應用訪問 | 是否有獨立Extension沙箱 | 啟動Extension傳遞共享數據是否嚴格模式訪問 |
---|---|---|---|---|---|
[FormExtensionAbility] | FORM類型的ExtensionAbility組件,用于提供[服務卡片]的相關能力。 | Y | N | N | N |
[WorkSchedulerExtensionAbility] | WORK_SCHEDULER類型的ExtensionAbility組件,用于提供[延遲任務]的相關能力。 | Y | NA | N | N |
[InputMethodExtensionAbility] | INPUT_METHOD類型的ExtensionAbility組件,用于實現[輸入法應用]的開發。 | Y | Y | Y | 開發者在輸入法管理中啟用完整體驗模式,即開啟非嚴格模式,可讀寫共享數據;不啟用完整體驗模式,默認為嚴格模式,只能讀取共享數據。 |
[AccessibilityExtensionAbility] | ACCESSIBILITY類型的ExtensionAbility組件,用于實現[無障礙擴展服務]的開發。 | Y | NA | N | N |
[BackupExtensionAbility] | BACKUP類型的ExtensionAbility組件,用于提供[備份及恢復應用數據]的能力。 | Y | NA | N | N |
[DriverExtensionAbility] | DRIVER類型的ExtensionAbility組件,用于提供[驅動相關擴展框架]。 | Y | Y | N | N |
[EmbeddedUIExtensionAbility] | EMBEDDED_UI類型的ExtensionAbility組件,用于提供[跨進程界面嵌入]的能力。 | Y | Y | N | NHarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
訪問指定類型的ExtensionAbility組件
所有類型的ExtensionAbility組件均不能被應用直接啟動,而是由相應的系統管理服務拉起,以確保其生命周期受系統管控,使用時拉起,使用完銷毀。ExtensionAbility組件的調用方無需關心目標ExtensionAbility組件的生命周期。
以[InputMethodExtensionAbility]組件為例進行說明,如下圖所示,調用方應用發起對InputMethodExtensionAbility組件的調用,此時將先調用輸入法管理服務,由輸入法管理服務拉起[InputMethodExtensionAbility]組件,返回給調用方,同時開始管理其生命周期。
圖1 使用InputMethodExtensionAbility組件
實現指定類型的ExtensionAbility組件
以實現卡片[FormExtensionAbility]為例進行說明。卡片框架提供了[FormExtensionAbility]基類,開發者通過派生此基類(如MyFormExtensionAbility),實現回調(如創建卡片的onCreate()回調、更新卡片的onUpdateForm()回調等)來實現具體卡片功能,具體見開發指導見[服務卡片]。
卡片FormExtensionAbility實現方不用關心使用方何時去請求添加、刪除卡片,FormExtensionAbility實例及其所在的ExtensionAbility進程的整個生命周期,都是由卡片管理系統服務FormManagerService進行調度管理。
說明: 同一應用內的所有同類型的ExtensionAbility運行在同一獨立進程(除ServiceExtensionAbility、DataShareExtensionAbility外),跟UIAbility組件不在同一進程,Stage模型的進程模型請參見[進程模型]。
審核編輯 黃宇
-
框架
+關注
關注
0文章
404瀏覽量
17722 -
組件
+關注
關注
1文章
527瀏覽量
18229 -
鴻蒙
+關注
關注
57文章
2467瀏覽量
43619
發布評論請先 登錄
相關推薦
鴻蒙Ability Kit(程序框架服務)【ServiceExtensionAbility】

鴻蒙Ability Kit(程序框架服務)【UIExtensionAbility】

鴻蒙Ability Kit(程序框架服務)【UIAbility組件啟動模式】

鴻蒙Ability Kit(程序框架服務)【UIAbility組件基本用法】

鴻蒙Ability Kit(程序框架服務)【Ability與ServiceExtensionAbility通信】

鴻蒙Ability Kit(程序框架服務)【AbilityStage組件容器】

鴻蒙Ability Kit(程序框架服務)【應用上下文Context】

鴻蒙Ability Kit(程序框架服務)【組件啟動規則(Stage模型)】

鴻蒙Ability Kit(程序框架服務)【應用啟動框架AppStartup】
鴻蒙開發Ability Kit程序框架服務:任務管理

鴻蒙開發Ability Kit程序框架服務:FA模型與Stage模型應用組件互通綜述

評論