鸿蒙开发基础——ExtensionAbility组件

📑往期推文全新看点(文中附带最新·鸿蒙全栈学习笔记)

✒️ 鸿蒙(HarmonyOS)北向开发知识点记录~

✒️ 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~

✒️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?

✒️ 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~

✒️ 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?

✒️ 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?

✒️ 记录一场鸿蒙开发岗位面试经历~

✒️ 持续更新中……


ExtensionAbility 组件是基于特定场景(例如服务卡片、输入法等)提供的应用组件,以便满足更多的使用场景。

每一个具体场景对应一个 ExtensionAbilityType ,开发者只能使用(包括实现和访问)系统已定义的类型。各类型的ExtensionAbility组件均由相应的系统服务统一管理,例如 InputMethodExtensionAbility 组件由输入法管理服务统一管理。

当前系统已定义的ExtensionAbility类型如下表所示。

说明:

  • “是否允许三方应用实现”是指:对于一类ExtensionAbility,三方应用能否继承该ExtensionAbility父类实现自己的业务逻辑。
  • “是否允许三方应用访问”是指:有些ExtensionAbility会对外提供一些服务,这些ExtensionAbility可能允许三方访问,也可能不允许。“Y”表示允许,“N”表示不允许,“NA”表示不涉及对外服务。
  • “是否有独立Extension沙箱”是指:已经开发Extension都是和主应用共沙箱运行,API12及其之后新增Extension默认独立沙箱运行,输入法Extesnion由于安全机制管控改为独立沙箱运行。
  • “启动Extension传递共享数据是否严格模式访问”是指:共享数据可通过配置应用的data-group-ids和ExtensionAbility的dataGroupIds实现。严格模式访问表示只读,非严格模式访问表示可以读写。“Y”表示严格模式访问共享数据,即只能读取共享数据,“N”表示非严格模式访问共享数据,即可以读写共享数据。

对于系统应用,不受下表约束,允许实现系统已定义的各类ExtensionAbility,也允许访问提供的各类对外服务。

ExtensionAbility类型功能描述是否允许三方应用实现是否允许三方应用访问是否有独立Extension沙箱启动Extension 传递共享数据是否严格模式访问
FormExtensionAbilityFORM类型的ExtensionAbility组件,用于提供服务卡片的相关能力。YNNN
WorkSchedulerExtensionAbilityWORK_SCHEDULER类型的ExtensionAbility组件,用于提供延迟任务的相关能力。YNANN
InputMethodExtensionAbilityINPUT_METHOD类型的ExtensionAbility组件,用于实现输入法应用的开发。YYY开发者在输入法管理中启用完整体验模式,即开启非严格模式,可读写共享数据;不启用完整体验模式,默认为严格模式,只能读取共享数据。
BackupExtensionAbilityBACKUP类型的ExtensionAbility组件,用于提供备份及恢复应用数据 的能力。YNANN
DriverExtensionAbilityDRIVER类型的ExtensionAbility组件,用于提供驱动相关扩展框架。YYNN
EmbeddedUIExtensionAbilityEMBEDDED_UI类型的ExtensionAbility组件,用于提供跨进程界面嵌入的能力。YYNN
ShareExtensionAbilitySHARE类型的ExtensionAbility组件,用于提供分享模板服务扩展的能力。YYNN

访问指定类型的ExtensionAbility组件

所有类型的ExtensionAbility组件均不能被应用直接启动,而是由相应的系统管理服务拉起,以确保其生命周期受系统管控,使用时拉起,使用完销毁。ExtensionAbility组件的调用方无需关心目标ExtensionAbility组件的生命周期。

以InputMethodExtensionAbility组件为例进行说明,如下图所示,调用方应用发起对InputMethodExtensionAbility组件的调用,此时将先调用输入法管理服务,由输入法管理服务拉起InputMethodExtensionAbility组件,返回给调用方,同时开始管理其生命周期。

图1 使用InputMethodExtensionAbility组件

实现指定类型的ExtensionAbility组件

以实现卡片FormExtensionAbility为例进行说明。卡片框架提供了FormExtensionAbility基类,开发者通过派生此基类(如MyFormExtensionAbility),实现回调(如创建卡片的onCreate()回调、更新卡片的onUpdateForm()回调等)来实现具体卡片功能,具体见开发指导见服务卡片。

卡片FormExtensionAbility实现方不用关心使用方何时去请求添加、删除卡片,FormExtensionAbility实例及其所在的ExtensionAbility进程的整个生命周期,都是由卡片管理系统服务FormManagerService进行调度管理。

说明
同一应用内的所有同类型的ExtensionAbility运行在同一独立进程(除ServiceExtensionAbility、DataShareExtensionAbility外),跟UIAbility组件不在同一进程,Stage模型的进程模型请参见进程模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值