HarmonyOS 应用开发之ExtensionAbility组件

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

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

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

说明:

  • “是否允许三方应用实现”是指:对于一类ExtensionAbility,三方应用能否继承该ExtensionAbility父类实现自己的业务逻辑。
  • “是否允许三方应用访问”是指:有些ExtensionAbility会对外提供一些服务,这些ExtensionAbility可能允许三方访问,也可能不允许。“Y”表示允许,“N”表示不允许,“NA”表示不涉及对外服务。

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

已支持ExtensionAbility类型 功能描述 是否允许三方应用实现 是否允许三方应用访问
FormExtensionAbility FORM类型的ExtensionAbility组件,用于提供 服务卡片 的相关能力。 Y N
WorkSchedulerExtensionAbility WORK_SCHEDULER类型的ExtensionAbility组件,用于提供 延迟任务的相关能力。 Y NA
InputMethodExtensionAbility INPUT_METHOD类型的ExtensionAbility组件,用于实现 输入法应用 的开发。 Y Y
AccessibilityExtensionAbility ACCESSIBILITY类型的ExtensionAbility组件,用于实现 无障碍扩展服务 的开发。 Y NA
BackupExtensionAbility BACKUP类型的ExtensionAbility组件,用于提供 备份及恢复应用数据 的能力。 Y NA
DriverExtensionAbility DRIVER类型的ExtensionAbility组件,用于提供 驱动相关扩展框架。 Y Y

访问指定类型的ExtensionAbility组件

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

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

图1 使用InputMethodExtensionAbility组件

实现指定类型的ExtensionAbility组件

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

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

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

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

相关推荐

  1. 鸿蒙(HarmonyOS)应用开发——web

    2024-03-30 01:02:01       63 阅读
  2. 鸿蒙(HarmonyOS)应用开发——容器组件(List

    2024-03-30 01:02:01       66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 01:02:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 01:02:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 01:02:01       82 阅读
  4. Python语言-面向对象

    2024-03-30 01:02:01       91 阅读

热门阅读

  1. 正则表达式

    2024-03-30 01:02:01       36 阅读
  2. 正则匹配/正则表达式

    2024-03-30 01:02:01       52 阅读
  3. Rust引用借用 vs 原始指针

    2024-03-30 01:02:01       37 阅读
  4. 库函数的模拟实现

    2024-03-30 01:02:01       42 阅读
  5. uniapp踩坑细节

    2024-03-30 01:02:01       45 阅读
  6. Element-UI中el-time-picker时间选择器无法选择

    2024-03-30 01:02:01       37 阅读
  7. js移除子元素

    2024-03-30 01:02:01       37 阅读
  8. 应用Druid解析SQL获取查询表字段、参数信息

    2024-03-30 01:02:01       37 阅读
  9. 5.89 BCC工具之tcptop.py解读

    2024-03-30 01:02:01       34 阅读
  10. PTA 道路管制

    2024-03-30 01:02:01       38 阅读