鸿蒙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生命周期存在差异;
  • 在这里插入图片描述

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

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

相关文章

Machine Learning ---- Gradient Descent

目录 一、The concept of gradient: ① In a univariate function: ②In multivariate functions: 二、Introduction of gradient descent cases: 三、Gradient descent formula and its simple understanding: 四、Formula o…

MATLAB教程

目录 前言一、MATLAB基本操作1.1 界面简介1.2 搜索路径1.3 交互式命令操作1.4 帮助系统 二、MATLAB语言基础2.1 数据类型2.2 MATLAB运算2.2.1 算数运算2.2.2 关系运算2.2.3 逻辑运算 2.3 常用内部函数2.4 结构数据与单元数据 三、MATLAB程序设计3.1 M文件3.2 函数文件3.3 程序控…

1、Jenkins持续集成-介绍

文章目录 1、软件开发生命周期1.1 软件开发瀑布模型 2、软件的敏捷开发2.1 什么是敏捷开发?2.2 敏捷开发是如何迭代?2.3 敏捷开发有什么好处? 3、什么是持续集成4、持续集成的组成要素5、持续集成的好处6、Jenkins介绍 PS:本篇都是…

AcWing 1510:楼梯 ← 浮点数二分

【题目来源】http://poj.org/problem?id2507https://www.acwing.com/problem/content/1512/【题目描述】 一个街道两侧有两栋楼,现在有如图所示两楼梯 x,y。 两个楼梯分别如图放置。 已知两个楼梯的长度和他们交点离地面的高度,求两栋楼之间…

【Qt图形界面引擎(一)】:第一个Qt程序

跨平台图形界面引擎,接口简单,易上手,一定程度简化内存。 Qt发展史 1991年由Qt Company开发的跨平台C图形用户界面应用程序开发框架2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具2012…

idea+vim+pycharm的块选择快捷键

平时开发的时候,有的时候我们想用矩形框住代码,或者想在某列上插入相同字符 例如下图所示,我想在22-24行的前面插入0000 1. Idea的快捷键:option 鼠标 2. Pycharm的快捷键:shift option 鼠标 2. Vim 块选择 v/V/c…

jQuery+CSS3自动轮播焦点图特效源码

jQueryCSS3自动轮播焦点图特效源码,源码由HTMLCSSJS组成,双击html文件可以本地运行效果,也可以上传到服务器里面 下载地址 jQueryCSS3自动轮播焦点图特效源码

firewalld 防火墙配置根据某个IP地址(只放行指定IP地址的流量)进行端口开放

# 增加针对某个IP进行端口开放 firewall-cmd --zonepublic --add-rich-rulerule family"ipv4" source address"IP地址" port port"8082" protocol"tcp" accept --permanent# 删除添加的规则(删除后也需要重启防火墙),和增加的区别是 …

【GPT-SOVITS-01】源码梳理

说明:该系列文章从本人知乎账号迁入,主要原因是知乎图片附件过于模糊。 知乎专栏地址: 语音生成专栏 系列文章地址: 【GPT-SOVITS-01】源码梳理 【GPT-SOVITS-02】GPT模块解析 【GPT-SOVITS-03】SOVITS 模块-生成模型解析 【G…

LeetCode Python - 61. 旋转链表

目录 题目描述解法运行结果 题目描述 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3] 示例 2: 输入:head…

Day68:WEB攻防-Java安全原生反序列化SpringBoot攻防heapdump提取CVE

目录 Java安全-反序列化-原生序列化类函数 原生序列化类函数 SnakeYaml XMLDecoder ObjectInputStream.readObject 工具利用 ysoserial Yakit SerializedPayloadGenerator Java安全-SpringBoot框架-泄漏&CVE SpringBoot Actuator-黑白盒发现 人工识别 BurpSui…

文献速递:深度学习乳腺癌诊断---使用深度学习改善乳腺癌诊断的MRI技术

Title 题目 Improving breast cancer diagnostics with deep learning for MRI 使用深度学习改善乳腺癌诊断的MRI技术 01 文献速递介绍 乳腺磁共振成像(MRI)是一种高度敏感的检测乳腺癌的方式,报道的敏感性超过80%。传统上,其…

【Ubuntu】FTP站点搭建

配置顺序 前提条件:确保软件仓库可以正常使用,确保已正常配置IP地址 1.安装FTP服务 2.编辑FTP配置文件 3.设置开机自启 4.创建用户 5.配置用户限制名单 6.重启服务 7.查看运行状态 8.测试在同一局域网下的Windows查看文件 1.安装FTP服务 sudo apt insta…

【系统架构设计师】软件架构设计 02

系统架构设计师 - 系列文章目录 01 系统工程与信息系统基础 02 软件架构设计 文章目录 系统架构设计师 - 系列文章目录 文章目录 前言 一、软件架构的概念 ★★★ 二、基于架构的软件开发 ★★★★ 三、软件架构风格 ★★★★ 1.数据流风格 2.调用/返回风格 3.独立构件风格…

vue3的路由组件缓存和过度动画

vue3中路由组件缓存和过渡的组件写法和vue2不同,从外到里依次是: router-view , transition,keep-alive, component

Linux字符设备与I2C驱动结合使用

引言 在Linux操作系统中,设备驱动程序充当硬件和软件之间的桥梁。字符设备驱动是一种特殊类型的驱动,它允许用户以字节流的形式访问硬件设备。这些设备包括键盘、鼠标、串口等。在本博客中,我们将探讨Linux字符设备驱动的基础知识&#xff0…

Github 2024-03-16 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10TypeScript项目2Go项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero Gene…

二叉树遍历(牛客网)

描述 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树…

Qt实现简单的五子棋程序

Qt五子棋小程序 Qt五子棋演示及源码链接登陆界面单机模式联机模式联网模式参考 Qt五子棋 参考大佬中国象棋程序,使用Qt实现了一个简单的五子棋小程序,包含了单机、联机以及联网三种模式;单机模式下实现了简易的AI;联机模式为PtoP…

【LabVIEW FPGA入门】并行执行

利用图形化编程的并行特性以及 FPGA 上 LabVIEW 图的真正并行实现,您可以通过将应用程序代码划分为更小的进程来进一步优化执行速度。与整个应用程序在一个循环中运行相比,这使得每个进程能够实现更高的循环速率和更高的应用程序整体执行速率。 …