鸿蒙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.蜂鸣器的介绍 无源蜂鸣器不能一直通电,无源蜂鸣器内部的线圈较小,易烧坏 蜂鸣器的驱动 达林顿晶体管(npn型) 应用: 按下独立按键同时蜂鸣器响起提示音,数码管显示对应的独立按键键码 #include <REG…...
【MySQL】学习和总结使用列子查询查询员工工资信息
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-5odctDvQ0AHJJc1C {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...
突破编程_C++_STL教程( stack 的实战应用)
1 std::stack 应用于自定义数据结构 通常,std::stack 用于存储基本数据类型,如 int、float、char 等。然而,std::stack 同样可以存储自定义的数据结构,只要这些数据结构满足一定的要求。 (1)存储自定义数…...
Spring Data访问Elasticsearch----其他Elasticsearch操作支持
Spring Data访问Elasticsearch----其他Elasticsearch操作支持 一、索引设置二、索引映射三、Filter Builder四、为大结果集使用滚动Scroll五、排序选项六、运行时字段6.1 索引映射中的运行时字段定义6.2 在查询上设置的运行时字段定义 七、Point In Time (PIT) API八、搜索模板…...
代码随想录算法训练营第60天 | 84.柱状图中最大的矩形
单调栈章节理论基础: https://leetcode.cn/problems/daily-temperatures/ 84.柱状图中最大的矩形 题目链接:https://leetcode.cn/problems/largest-rectangle-in-histogram/description/ 思路: 本题双指针的写法整体思路和42. 接雨水是一…...
【讲解Node.js常用的命令】进阶版
Node.js常用命令 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它使得可以在服务器端运行 JavaScript 代码。Node.js 采用了事件驱动、非阻塞 I/O 模型,非常适用于构建高效的网络应用程序。以下是一些Node.js开发中常用的命令࿱…...
软考81-上午题-【面向对象技术3-设计模式】-行为型设计模式01
一、行为型设计模式一览 二、责任链模式 2-1、意图 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 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,即会话ID,用于标识客户端与服务端的唯一特定会话的标识符。会话,即客…...
51-31 CVPR’24 | VastGaussian,3D高斯大型场景重建
2024 年 2 月,清华大学、华为和中科院联合发布的 VastGaussian 模型,实现了基于 3D Gaussian Splatting 进行大型场景高保真重建和实时渲染。 Abstract 现有基于NeRF大型场景重建方法,往往在视觉质量和渲染速度方面存在局限性。虽然最近 3D…...
GPT-4引领AI新纪元,Claude3、Gemini、Sora能否跟上步伐?
【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚…...
图书馆RFID(射频识别)数据模型压缩/解压缩算法实现小工具
1. 前言 最近闲来无聊,看了一下《图书馆射频识别数据模型第1部分:数据元素的设置及应用规则》以及《图书馆射频识别数据模型第2部分:基于ISO/IEC 15962的数据元素编码方案》,决定根据上面的编码方法实现一下该算法,于…...
【Java Web基础】一些网页设计基础(三)
文章目录 1. 导航栏样式进一步调整2. 入驻企业信息展示栏2.1 Title设置2.2 具体信息添加 3. 轮播图4. 注册登录按钮及其他信息5. 一些五颜六色的、丰富视觉效果的中间件…… 1. 导航栏样式进一步调整 这种导航栏,选中的时候字体变蓝色,可能还是不够美观&…...
2 使用GPU理解并行计算
2.1 简介 本章旨在对并行程序设计的基本概念及其与GPU技术的联系做一个宽泛的介绍。本章主要面向具有串行程序设计经验,但对并行处理概念缺乏了解的读者。我们将用GPU的基本知识来讲解并行程序设计的基本概念。 2.2 传统的串行代码 绝大多数程序员是在串行程序占据…...
Android什么情况下会出现内存泄漏以及怎么解决?
1.什么情况下会出现内存泄漏? (1)单例模式下为什么会造成内存泄漏? 因为单例的生命周期和应用的生命周期是一致的,如果往单例模式里面传了一个生命周期比较短的对象,比如Activity,就会导致Activity不能释放,导致内存泄漏。我们可以传context.getAppliactionContext,而…...
kafka集群介绍及搭建
介绍 kafka是一个高性能、低延迟、分布式的消息传递系统,特点在于实时处理数据。集群由多个成员节点broker组成,每个节点都可以独立处理消息传递和存储任务。 路由策略 发布消息由key、value组成,真正的消息是value,key是标识路…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
