当前位置: 首页 > news >正文

鸿蒙4.0ArkUI快速入门(一)应用模型

ArkUI篇

  • 应用模型
    • Stage模型
    • FA模型
    • 模型对比

应用模型

应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。

HarmonyOS先后提供了两种应用模型:

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

Stage模型:HarmonyOS 3.1 Developer Preview版本开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。

Stage模型

是我们常用的开发模型 ,使用ArkTS,TS开发。
在这里插入图片描述
有UIAbility组件和ExtensionAbility组件。
UIAbility组件:平常我们只使用UIAbility,项目中继承了UIAbility的EntryAbility跟Android端的继承了Application的类MyApp很类似,用于管理三方组件初始化工作,APP生命周期等。
ExtensionAbility组件:组件是一种面向特定场景的应用组件。
比如说要开发一个卡片,输入法等扩展应用,就可以使用该组件场景了。

FA模型

该模型目前不是主要的开发模型,可以使用JS开发,类Web范式(HML+CSS+JSON)开发。这个模型大概率是为了保留了js开发,这里不做过多介绍。
API 8及其更早版本的应用程序只能使用FA模型进行开发。FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型,其中FA支持Page Ability,PA支持Service Ability、Data Ability、以及FormAbility。

模型对比

对比Stage模型FA模型
开发方式提供面向对象的开发方式,UI开发与FA模型一致。提供类Web的API,UI开发与Stage模型一致。
引擎实例每个进程内的多个Ability实例共享一个JS VM引擎实例。每个进程内的每个Ability实例独享一个JS VM引擎实例。
进程内对象共享支持。不支持。
包描述文件使用module.json5描述HAP包和组件信息,可以指定入口文件名。使用config.json描述HAP包和组件信息,组件必须使用固定的文件名。
组件提供Ability(页面展示)、Extension(基于场景的服务扩展)。提供PageAbility(页面展示),ServiceAbility(服务),DataAbility(数据分享)以及FormAbility(卡片)。
除了上述设计上的差异外,对于开发者而言,两种模型的主要区别在于:
  • Ability类型存在差异;
  • 在这里插入图片描述
  • Ability生命周期存在差异;
  • 在这里插入图片描述

相关文章:

鸿蒙4.0ArkUI快速入门(一)应用模型

ArkUI篇 应用模型Stage模型FA模型模型对比 应用模型 应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。 HarmonyOS先后提供了两种应用模型: FA(Feature Ability)模型&…...

C++ UML类图

参考文章: (1)C UML类图详解 (2)C基础——用C实例理解UML类图 (3)C设计模式——UML类图 (4)[UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之…...

Java SE入门及基础(44)

目录 I / O流(上) 1. 什么是I / O流 过程分析 I / O的来源 Java 中的 I / O流 2. 字节流 OutputStream 常用方法 文件输出流 FileOutputStream 构造方法 示例 InputStream 常用方法 文件输入流 FileInputStream 构造方法 示例 综合练习 字节流应用场景 Java SE文…...

基于Wechaty的微信机器人

git地址:GitHub - wechaty/getting-started: A Starter Project Template for Wechaty works out-of-the-boxhttps://github.com/wechaty/getting-started 在 Terminal中npm install 下载node包 加载完成后。npm start 启动 扫描二维码,即可登录微信web端…...

【C++ leetcode】双指针问题(续)

3. 202 .快乐数 题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结…...

51单片机-蜂鸣器

1.蜂鸣器的介绍 无源蜂鸣器不能一直通电&#xff0c;无源蜂鸣器内部的线圈较小&#xff0c;易烧坏 蜂鸣器的驱动 达林顿晶体管&#xff08;npn型&#xff09; 应用&#xff1a; 按下独立按键同时蜂鸣器响起提示音&#xff0c;数码管显示对应的独立按键键码 #include <REG…...

【MySQL】学习和总结使用列子查询查询员工工资信息

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-5odctDvQ0AHJJc1C {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...

突破编程_C++_STL教程( stack 的实战应用)

1 std::stack 应用于自定义数据结构 通常&#xff0c;std::stack 用于存储基本数据类型&#xff0c;如 int、float、char 等。然而&#xff0c;std::stack 同样可以存储自定义的数据结构&#xff0c;只要这些数据结构满足一定的要求。 &#xff08;1&#xff09;存储自定义数…...

Spring Data访问Elasticsearch----其他Elasticsearch操作支持

Spring Data访问Elasticsearch----其他Elasticsearch操作支持 一、索引设置二、索引映射三、Filter Builder四、为大结果集使用滚动Scroll五、排序选项六、运行时字段6.1 索引映射中的运行时字段定义6.2 在查询上设置的运行时字段定义 七、Point In Time (PIT) API八、搜索模板…...

代码随想录算法训练营第60天 | 84.柱状图中最大的矩形

单调栈章节理论基础&#xff1a; https://leetcode.cn/problems/daily-temperatures/ 84.柱状图中最大的矩形 题目链接&#xff1a;https://leetcode.cn/problems/largest-rectangle-in-histogram/description/ 思路&#xff1a; 本题双指针的写法整体思路和42. 接雨水是一…...

【讲解Node.js常用的命令】进阶版

Node.js常用命令 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境&#xff0c;它使得可以在服务器端运行 JavaScript 代码。Node.js 采用了事件驱动、非阻塞 I/O 模型&#xff0c;非常适用于构建高效的网络应用程序。以下是一些Node.js开发中常用的命令&#xff1…...

软考81-上午题-【面向对象技术3-设计模式】-行为型设计模式01

一、行为型设计模式一览 二、责任链模式 2-1、意图 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。 1-2、结构 1-3、代码实现 1-4、适…...

【Linux进阶之路】HTTPS = HTTP + S

文章目录 一、概念铺垫1.Session ID2.明文与密文3.公钥与私钥4.HTTPS结构 二、加密方式1. 对称加密2.非对称加密3.CA证书 总结尾序 一、概念铺垫 1.Session ID Session ID&#xff0c;即会话ID&#xff0c;用于标识客户端与服务端的唯一特定会话的标识符。会话&#xff0c;即客…...

51-31 CVPR’24 | VastGaussian,3D高斯大型场景重建

2024 年 2 月&#xff0c;清华大学、华为和中科院联合发布的 VastGaussian 模型&#xff0c;实现了基于 3D Gaussian Splatting 进行大型场景高保真重建和实时渲染。 Abstract 现有基于NeRF大型场景重建方法&#xff0c;往往在视觉质量和渲染速度方面存在局限性。虽然最近 3D…...

GPT-4引领AI新纪元,Claude3、Gemini、Sora能否跟上步伐?

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚…...

图书馆RFID(射频识别)数据模型压缩/解压缩算法实现小工具

1. 前言 最近闲来无聊&#xff0c;看了一下《图书馆射频识别数据模型第1部分&#xff1a;数据元素的设置及应用规则》以及《图书馆射频识别数据模型第2部分&#xff1a;基于ISO/IEC 15962的数据元素编码方案》&#xff0c;决定根据上面的编码方法实现一下该算法&#xff0c;于…...

【Java Web基础】一些网页设计基础(三)

文章目录 1. 导航栏样式进一步调整2. 入驻企业信息展示栏2.1 Title设置2.2 具体信息添加 3. 轮播图4. 注册登录按钮及其他信息5. 一些五颜六色的、丰富视觉效果的中间件…… 1. 导航栏样式进一步调整 这种导航栏&#xff0c;选中的时候字体变蓝色&#xff0c;可能还是不够美观&…...

2 使用GPU理解并行计算

2.1 简介 本章旨在对并行程序设计的基本概念及其与GPU技术的联系做一个宽泛的介绍。本章主要面向具有串行程序设计经验&#xff0c;但对并行处理概念缺乏了解的读者。我们将用GPU的基本知识来讲解并行程序设计的基本概念。 2.2 传统的串行代码 绝大多数程序员是在串行程序占据…...

Android什么情况下会出现内存泄漏以及怎么解决?

1.什么情况下会出现内存泄漏? (1)单例模式下为什么会造成内存泄漏? 因为单例的生命周期和应用的生命周期是一致的,如果往单例模式里面传了一个生命周期比较短的对象,比如Activity,就会导致Activity不能释放,导致内存泄漏。我们可以传context.getAppliactionContext,而…...

kafka集群介绍及搭建

介绍 kafka是一个高性能、低延迟、分布式的消息传递系统&#xff0c;特点在于实时处理数据。集群由多个成员节点broker组成&#xff0c;每个节点都可以独立处理消息传递和存储任务。 路由策略 发布消息由key、value组成&#xff0c;真正的消息是value&#xff0c;key是标识路…...

BabelDOC终极指南:如何3步完成专业PDF文档的精准翻译

BabelDOC终极指南&#xff1a;如何3步完成专业PDF文档的精准翻译 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC BabelDOC是一款专注于PDF文档翻译的智能工具&#xff0c;它通过创新的中间语言…...

开源技术中的开源协议社区运营与贡献管理

开源技术已成为现代软件开发的基石&#xff0c;而开源协议、社区运营与贡献管理则是其可持续发展的核心。开源协议定义了代码的使用、修改与分发规则&#xff0c;社区运营则决定了项目的活跃度与协作效率&#xff0c;贡献管理则直接影响项目的质量与创新速度。这三者相辅相成&a…...

告别Flask和Django:用Streamlit 1.0+快速把你的Python数据分析脚本变成Web应用

告别Flask和Django&#xff1a;用Streamlit 1.0快速把你的Python数据分析脚本变成Web应用 数据分析师和机器学习工程师经常面临一个尴尬局面&#xff1a;花了大量时间开发出功能完善的Python脚本&#xff0c;却因为缺乏前端开发能力&#xff0c;无法将这些成果直观地展示给非技…...

OpenCore Legacy Patcher终极指南:4步让老Mac显卡驱动重获新生

OpenCore Legacy Patcher终极指南&#xff1a;4步让老Mac显卡驱动重获新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 让旧Mac焕发新生的终极解决方案来了…...

Qwen3.5-9B-AWQ-4bit效果展示:复杂场景图识别准确率实测与典型失败案例复盘

Qwen3.5-9B-AWQ-4bit效果展示&#xff1a;复杂场景图识别准确率实测与典型失败案例复盘 1. 模型能力概览 Qwen3.5-9B-AWQ-4bit是一款支持图像理解的多模态模型&#xff0c;能够结合上传图片与文字提示词输出中文分析结果。这个量化版本在保持较高识别准确率的同时&#xff0c…...

intv_ai_mk11实用技巧教学:一次说清+指定格式+逐步追问三大高阶提问法详解

intv_ai_mk11实用技巧教学&#xff1a;一次说清指定格式逐步追问三大高阶提问法详解 1. 认识intv_ai_mk11对话机器人 intv_ai_mk11是一款基于7B参数Llama架构的AI对话助手&#xff0c;运行在GPU服务器上。它能帮助你完成各种任务&#xff0c;从知识问答到创意写作&#xff0c…...

Qwen3.5-9B超导研究:论文精读+实验设计建议+低温设备参数推荐

Qwen3.5-9B超导研究&#xff1a;论文精读实验设计建议低温设备参数推荐 1. Qwen3.5-9B模型概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;在多个领域展现出卓越性能。作为当前最先进的开源模型之一&#xff0c;它特别适合用于科学研究领域的文本处理和数据分…...

5G网络计费新玩法:除了流量和时长,运营商还能按什么向你收费?

5G计费革命&#xff1a;当网络质量成为可售商品 站在写字楼的落地窗前&#xff0c;李明正在用手机参加跨国视频会议&#xff0c;画面清晰流畅如同面对面交谈&#xff1b;同一时刻&#xff0c;他的女儿在家用云游戏平台通关最新大作&#xff0c;毫无卡顿延迟&#xff1b;而工厂里…...

mysql高频触发器降低SQL执行效率_优化触发器逻辑或改用存储过程

触发器中避免嵌套多条DML、跨库查询和无索引SELECT&#xff0c;优先用ON DUPLICATE KEY UPDATE合并操作&#xff1b;存储过程须显式事务控制与错误处理&#xff1b;权限配置需指定低权限DEFINER并确保必要授权。触发器里写 UPDATE/INSERT 太多&#xff0c;SQL 执行变慢MySQL 触…...

SpringBoot 声明式事务与编程式事务

上一篇我们详细讲解了 Transactional 注解的用法、原理和失效场景&#xff0c;其实 Transactional 属于「声明式事务」&#xff0c;是 SpringBoot 中最常用的事务管理方式。但很多开发者不知道&#xff0c;SpringBoot 还支持另一种事务管理方式——「编程式事务」。实际开发中&…...