【最新鸿蒙应用开发】——什么是应用开发模型?Stage模型

在应用程序开发时通常需要使用应用模型来提供必备的组件和运行机制,有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。接下来谈谈鸿蒙应用开发当中的两种模型:

Stage模型: HarmonyOS 3.1推出 也就是API9 , 是目前主推且会长期演进的模型。

FA模型: FA(Feature Ability)模型:HarmonyOS早期版本开始支持的模型,已经不再主推。

区别: Stage模型与FA模型最大的区别在于:

  1. Stage模型中,多个应用组件共享同一个ArkTS引擎实例;

  2. 而FA模型中,每个应用组件独享一个ArkTS引擎实例。

  3. 因此在Stage模型中,应用组件之间可以方便的共享对象和状态,同时减少复杂应用运行对内存的占用。

  4. Stage模型作为主推的应用模型,开发者通过它能够更加便利地开发出分布式场景下的复杂应用。

由于在之后的鸿蒙开发版本中将不推荐使用FA模型,并且官方也明确了以后都长期主推Stage模型,所以我在这里详细介绍一下Stage模型具体拆分成哪些概念来理解:

Stage模型是鸿蒙OS为了适应多设备和分布式场景而设计的一种新的应用模型。在Stage模型中,应用程序被组织成一系列的舞台(Stages),每个舞台代表一个应用的一个界面或一个功能模块。Stage模型重新定义了应用能力的边界,提供了对多设备和多窗口形态的支持,使得应用组件可以使用同一套生命周期,便于系统对应用组件进行管理和优化。

在Stage模型中,我们有两种主要的组件:UIAbilityExtensionAbility

UIAbility就像一个带有用户界面的应用块,可以直接和用户进行互动,比如展示图片、处理用户的选择操作等。它的生命周期主要是创建、销毁、在前台运行和转到后台这些状态。而和显示相关的状态,比如窗口的显示和隐藏,是通过WindowStage的事件来通知开发者的。

ExtensionAbility是针对特定用途的组件,比如做卡片、输入法或者后台任务。开发者并不是直接去创建ExtensionAbility,而是使用它的特定子类。这些子类是针对特定场景设计的,比如你想在桌面上放一个应用卡片,就要用FormExtensionAbility,然后实现必要的函数。这些组件的生命周期是由系统管理的,你只需要实现相关的逻辑。

WindowStage是管理UIAbility窗口的东西,每个UIAbility都有一个WindowStage,就像是应用内的窗口管理器。它有一个主窗口,这个窗口就是ArkUI用来绘制的区域。

Context是一个运行时可以用来访问资源和能力的东东。不同的组件有不同的Context,它们都继承自同一个基类,但是根据组件的不同,会有不同的能力。

AbilityStage是给HAP用的,每个HAP在运行时都会有一个AbilityStage实例。当你第一次加载HAP的代码到进程中时,系统会先创建一个AbilityStage实例。

简而言之:
  • UIAbility是一种包含UI的应用组件,主要用于和用户交互。

  • ExtensionAbility是针对特定用途的组件,开发者用它的子类实现特定功能。

  • WindowStage是管理UIAbility窗口的。

  • Context是应用上下文,是运行时访问资源和能力的。

  • AbilityStage是组件容器,是HAP运行时的一个实例。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:人工智能消防应用

青鸟消防股份有限公司成立于2001年6月,于2019年8月在深圳证券交易所挂牌上市,成为中国消防报警行业首家登陆A股的企业。公司始终聚焦于消防安全与物联网领域,主营业务为“一站式”消防安全系统产品的研发、生产和销售。公司产品已覆盖了火灾报…

USB - ACK、NAK和STALL的含义

在 USB(通用串行总线)通信中,术语 ACK、NAK 和 STALL 指的是用于控制数据流和错误处理的握手数据包。下面是对每个术语的详细解释: ACK(确认): ACK 数据包由接收方发送给发送方,以表…

【NOIP提高组】方格取数

【NOIP提高组】方格取数 💖The Begin💖点点关注,收藏不迷路💖 设有N*N的方格图,我们将其中的某些方格填入正整数, 而其他的方格中放入0。 某人从图得左上角出发,可以向下走,也可以向…

vue2 bug求助!!!(未解决,大概是浏览器缓存的问题或者是路由的问题)

我的vue2项目出现了一个超级恶心的bug 具体流程: 页面a点击a标签->到页面b->页面b用户退出刷新页面->点击浏览器的返回按钮返回上一页 返回页面后页面没有刷新导致用户名还显示这 项目中没有用keep-alive缓存 也在设置了key 尝试了window.addEventListe…

idea实用快捷键(持续更新...)

文章目录 1、快速输入try/catch/finally2、选中多个光标3、实现接口4、方法参数提示5、查看某个类的子类6、弹出显示查找内容的搜索框 1、快速输入try/catch/finally CtrlAltT 2、选中多个光标 ShiftAlt单机多选 End可以全部到行尾,Home则可以全部回到行首 3、实现接…

存储过程定义及优势

存储过程 是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名字和参数(如果有)来调用并执行它。存储过程可以在SQL Server、Oracle、MySQL等关系型数据库中创建和使用。 存储过程的定义&…

评价一个AI模型“好不好”“有没有发展”,首先就躲不掉“开源”和“闭源”两条发展路径。对于这两条路径,你更看好哪一种呢?

评价一个AI模型的发展潜力和好坏时,确实需要考虑它是走“开源”还是“闭源”的发展路径。两者各有优缺点,具体选择哪一种路径更好,要根据具体情况和目标来决定。 开源路径 优点: 透明性和安全性: 开源代码允许任何人…

Python深度学习基于Tensorflow(14)人脸检测和识别实例

文章目录 人脸检测研究现状传统的人脸检测算法深度学习人脸检测算法 人脸识别实战人脸检测人脸对齐人脸标准化人脸表示人脸验证 参考资料 人脸检测研究现状 这里直接引用了吴伟硕士毕业论文 随着计算能力的飞速提升和创新性的传感、分析、渲染设备和技术的广泛应用&#xff0c…

【TB作品】msp430g2553单片机,流速,流量,检测与显示

功能 采用P1.4作为ADC输入通道,采集流量,显示到oled,并串口发送。 硬件 //OLED // SCL接P2^0 // SDA接P2^1 //vcc接VCC //GND接GND //串口 //P1.1 RXD, P1.2TXD //P1.1接模块的TX P1.2接模块的RX 反着接 //ADC通道 //采用P1.4作为ADC输…

LoRA低秩自适应微调技术原理及实践

大型语言模型的低秩自适应 (LoRA) 用于解决微调大型语言模型 (LLM) 的挑战。GPT 和 Llama 等模型拥有数十亿个参数,通常对于特定任务或领域进行微调的成本过高。LoRA 保留了预训练的模型权重,并在每个模型块中加入了可训练层。这显著减少了需要微调的参数…

k8s学习--ConfigMap详细解释与应用

文章目录 一 什么是configmapConfigMap 的好处ConfigMap 的限制 二.创建ConfigMap的4种方式1.在命令行指定参数创建2.在命令行通过多个文件创建3.在命令行通过文件提供多个键值对创建4.YAML资源清单文件创建 三 configmap的两种使用方法1.通过环境变量的方式传递给pod2.通过vol…

提高LabVIEW程序员分析需求、写代码、测试能力的方法

分析需求 深入了解项目背景:在开始任何项目之前,程序员应该深入了解项目的背景和目标。这包括与客户或项目干系人进行详细讨论,理解他们的期望和需求。参加相关的行业研讨会和阅读技术文档也有助于更好地了解项目背景。 使用需求管理工具&am…

MySQL学习——影响选项文件处理的命令行选项和程序选项修改器

大多数支持选项文件的MySQL程序都处理以下选项。因为这些选项会影响选项文件的处理,所以必须在命令行上给出,而不是在选项文件中给出。为了正常工作,这些选项中的每一个都必须先于其他选项给出,但以下情况除外: -prin…

WLAN组网模型探究

目录 一、WLAN基本概念二、WLAN组网方式三、WLAN转发模型 随着信息技术的飞速发展,无线局域网(WLAN)已逐渐成为企业网络架构中不可或缺的一部分。不同的企业组织因其业务特性、规模大小及安全需求的不同,对WLAN的要求也各有侧重。…

物联网面试准备

volatile的作用 volatile关键字用于告诉编译器,该变量可能会在程序的执行过程中被意外更改,因此编译器不应该对该变量进行优化或者缓存。 这样可以确保每次访问该变量时都会从内存中读取最新的值,而不是使用缓存中的旧值。 在多线程编程中&…

C语言习题~day28

关于文本文件和二进制文件描述错误的是? A.文本文件是可以读懂的,二进制文件没办法直接读懂 B.数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件 C.将内存中的数据转化成ASCII码值的形式,并…

Arduino IDE 2.3.2找不到端口解决方法

Arduino IDE 2.3.2找不到端口解决方法 问题描述 Arduino IDE 2.3.2 软件找不到端口(端口显示灰色),Arduino开发板连接电脑后,设备管理器能够看到端口信息,Arduino IDE软件中看不到端口。 设备管理器中能够看到端口信息 Arduino IDE中端口显…

力扣5 最长回文子串

给你一个字符串 s,找到 s 中最长的 回文子串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入:s "cbbd" 输…

植物大战僵尸杂交版(最新版)

杂交版1.0文件链接 链接:https://pan.baidu.com/s/1Ew6iTg0_d_Ut8N9_18KGLw 提取码:yspa 杂交版2.0文件链接 链接:https://pan.baidu.com/s/1tuchowb4C_oNT6EpqSvr_w?pwdy2fz 提取码:y2fz

HTML静态网页成品作业(HTML+CSS)—— 香奈儿香水介绍网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…