鸿蒙Ability Kit(程序框架服务)【ExtensionAbility组件】

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组件,用于提供[服务卡片]的相关能力。YNNN
[WorkSchedulerExtensionAbility]WORK_SCHEDULER类型的ExtensionAbility组件,用于提供[延迟任务]的相关能力。YNANN
[InputMethodExtensionAbility]INPUT_METHOD类型的ExtensionAbility组件,用于实现[输入法应用]的开发。YYY开发者在输入法管理中启用完整体验模式,即开启非严格模式,可读写共享数据;不启用完整体验模式,默认为严格模式,只能读取共享数据。
[AccessibilityExtensionAbility]ACCESSIBILITY类型的ExtensionAbility组件,用于实现[无障碍扩展服务]的开发。YNANN
[BackupExtensionAbility]BACKUP类型的ExtensionAbility组件,用于提供[备份及恢复应用数据]的能力。YNANN
[DriverExtensionAbility]DRIVER类型的ExtensionAbility组件,用于提供[驱动相关扩展框架]。YYNN
[EmbeddedUIExtensionAbility]EMBEDDED_UI类型的ExtensionAbility组件,用于提供[跨进程界面嵌入]的能力。YYNN HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿

新文档.png

访问指定类型的ExtensionAbility组件

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

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

图1 使用InputMethodExtensionAbility组件 ExtensionAbility-start

实现指定类型的ExtensionAbility组件

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/676500.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

跨平台,不需要下载的串口调试助手

在线串口调试助手是BBAIoT旗下的首款物联网工具,web端显示,不需要下载任何软件到电脑,方便快捷。 在线串口调试 链接地址:在线串口调试在线串口调试助手 Online serial port debugging assistanthttps://www.bbaiot.com/ 软件界…

转行要趁早?2024网络安全热门岗位大盘点

2024年 热门网络安全职位排名 TOP5 热门****程度: 幕后默默守护的工匠!构建安全的网络堡垒,跨团队合作,让安全防线更加坚固。 安全架构师的工作是发现企业内潜在的 IT 和网络漏洞。他们与自己团队的其他科技专业人士合作&#x…

[FreeRTOS 基础知识] 栈

文章目录 栈的概念使用C语言实现 栈通过代码反汇编解析 栈 栈的概念 所谓的栈就是一块空间的内存,CPU的SP寄存器指向它,它可以用于函数调用,局部变量,多任务系统里保存现场。 使用C语言实现 栈 volatile int num0;int fun_b(vol…

大模型ChatGLM的部署与微调

前言:最近大模型太火了,导师让我看看能不能用到自己的实验中,就想着先微调一个chatGLM试试水,微调的过程并不难,难的的硬件条件跟不上,我试了一下lora微调,也算跑通了吧,虽然最后评估…

聚类算法—DBSCAN算法

文章目录 DBSCAN算法基本概念1个核心思想:基于密度2个算法参数:邻域半径R和最少点数目minpoints3种点的类别:核心点,边界点和噪声点4种点的关系:密度直达,密度可达,密度相连,非密度相…

2024-6-3 石群电路-22

2024-6-3,星期一,20:45,天气:晴,心情:阴转晴。今天没有发生了一些令人不开心事情,心情有些差,不过还是调整过来了,活好自己,就是对你讨厌的人最大的惩罚。因为…

jdk的组成和跨平台原理

为什么 1.笔试会用到 2. 方便理解程序的运行 java跨平台的原因: sun公司提供了各种平台可以使用的jvm,所以java将程序一次编译成字节码之后可以给各种平台运行。这也是java这么多年深受欢迎的原因

GB28181安防视频融合汇聚平台EasyCVR如何实现视频画面自定义标签?

安防视频融合汇聚平台EasyCVR兼容性强,可支持Windows系统、Linux系统以及国产化操作系统等,平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,可拓展性强、视频能力灵活,能对外分发RTMP、RTSP、HTTP-FLV、…

Fatfs

STM32进阶笔记——FATFS文件系统(上)_stm32 fatfs-CSDN博客 STM32进阶笔记——FATFS文件系统(下)_stm32 文件系统怎样获取文件大小-CSDN博客 STM32——FATFS文件基础知识_stm32 fatfs-CSDN博客 021 - STM32学习笔记 - Fatfs文件…

IDEA配置Java远程调试,以CVE-2024-4956为例

背景 学习代码审计,看到一些Java的漏洞,想要动手调试,复现漏洞搭建环境可以使用docker快速创建,了解到Java可以远程调试,本文记录学习Java远程调试环境搭建的过程。 远程调试的原理 如下图(图源&#xf…

无人值守设备远程运维,几个关键问题如何解决?

商用无人值守设备承载着很多企业的一线业务,它们分布广泛且数量众多,企业如何对这类设备实施有效的运维管理是一个重要的课题。 面对这一问题,很多企业选择了引入远程运维方案,以远程桌面为基础工具实施远程运维管理,…

安卓玩机搞机技巧综合资源----电脑控制手机 投屏操控的软件工具操作步骤解析【二十二】

接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红…

1、Tomcat整体架构

1、Tomcat整体架构 Tomcat介绍Tomcat概述Tomcat目录结构web应用部署的三种方式 Tomcat整体架构分析Tomcat架构图Tomcat核心组件Server 组件Service组件连接器Connector组件容器Container组件结合Server.xml理解Tomcat架构请求定位 Servlet 的过程 Tomcat架构设计精髓Connector高…

netty LengthFieldBasedFrameDecoder 根据动态长度分包粘包

如下数据格式 在方法: // Integer.MAX_VALUE, // maxFrameLength: 最大允许的帧长度// 4, // lengthFieldOffset: 长度字段在帧中的偏移量,这里是在帧头之后// 4, // lengthFieldLength: 长度字段的长度,4字节表示32位整数// 0, // …

常见4种时间管理方法及实施步骤(收藏版)

有效的时间管理方法,不仅能够保证项目按时交付,还能提高开发效率,减少成本超支和质量风险。如果缺乏明确的时间规划,可能会导致任务延误;容易造成资源分配不当,导致整体效率低下和成本增加。 因此有效的时间…

go语言实现微信扫码登录,涵盖微信登录超详细流程并附带时序图

微信扫码登录 1. 简述:此文章目的主要是web网站进行微信扫码登录2. 微信登录过程时序图3. 全部微信登录组成元素3.1. 微信扫码登录后端总共只需要两个接口,3.2. 微信登录的各个对象:3.3. 微信登录的主要参数: 4. 流程解释&#xf…

基于Android Studio 垃圾分类助手App--原创

一、高质量源码(非开源,白嫖低价勿扰) 关注公众号:《编程乐学》 后台回复:24060301 二、项目演示视频 基于Android Studio 垃圾分类助手App--原创 三、开发环境 四、设计与实现 1.启动页 1.设置延迟三秒后执行 runna…

HDL-A/1-110VAC-2电流继电器 JOSEF约瑟 导轨安装

一. 应用 HDL系列电流继电器是静态型,不带方向性的、瞬动、交流电流继电器。可用于电力系统输电线,电机过负荷和短路保护中,作为启动元件。 继电器对短路电流中的直流分量不敏感,因此可用于要求哲态超小的线路中,改继电器由集成…

SpringBoot启动流程分析之设置系统属性spring.beaninfo.ignore、自定义banner图(五)

SpringBoot启动流程分析之设置系统属性spring.beaninfo.ignore、自定义banner图(五) 参考 目录 文章目录 SpringBoot启动流程分析之设置系统属性spring.beaninfo.ignore、自定义banner图(五)1、设置sping.beaninfo.ignore属性2、…

一文带你搞懂单模光纤和多模光纤的区别

单模光纤和多模光纤的区别及常见疑问解答 随着网络技术的飞跃,光纤因其高速传输与大容量特性,成为通信领域的佼佼者。光纤主要分为单模与多模,两者在几何与传输特性上迥异,实际应用中表现显著不同。本文将深入剖析两者的差异与应用…