学习鸿蒙一定要搞清楚的几个概念

2024-02-23 09:12

本文主要是介绍学习鸿蒙一定要搞清楚的几个概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、UI框架

2、应用模型

2.1、应用模型介绍

2.2、两种应用模型

2.3、应用模型和UI框架的关系

3、Ability

3.1、Ability介绍

3.2、FA模型的ability

3.3、Stage模型的Ability 


1、UI框架

HarmonyOS提供了一套UI(User Interface,用户界面)开发框架,即方舟开发框架(ArkUI框架),用于快速搭建漂亮的用户界面。

它为开发者提供应用UI开发所必需的能力,比如多种组件、布局计算、动画能力、UI交互、绘制等。

  组件文档具体参考:

组件文档icon-default.png?t=N7T8https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/84_u58f0_u660e_u5f0f_u5f00_u53d1_u8303_u5f0f_uff09-0000001427744776-V2

ArkUI框架提供了ArkTS语言开发方式兼容JS的类Web开发方式推荐使用ArkTS语言开发方式。

2、应用模型

2.1、应用模型介绍

应用模型可以理解为HarmonyOS为开发者提供的应用程序开发规范,组织文件入口设置、生命周期、进程线程服务、配置项内容等,具有必备的组件和运行机制,让开发者在统一的模型进行应用开发,更简单、高效。

2.2、两种应用模型

FA(Feature Ability)模型: HarmonyOS API 7开始支持的模型,已经不再主推。

Stage模型: HarmonyOS API 9开始新增的模型,是目前主推且会长期演进的模型。

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

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

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

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

具体模型解读参考地址:

鸿蒙模型文档icon-default.png?t=N7T8https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/application-model-description-0000001493584092-V2

​​​​​​​2.3、应用模型和UI框架的关系

UI框架提供了:ArkTS语言和类JS的web语言方式开发范式。

应用模型提供了:FA模型和Stage模型。

总之,鸿蒙应用开发推荐应用模型使用Stage模型,UI框架使用ArkTS声明式开发范式

3、Ability

3.1、Ability介绍

Ability意为能力,现实中手机有打电话、发短信、玩游戏的能力,电饭煲具有蒸煮煲汤的能力,电视有播放视频的能力,音响有播放音乐的能力。

Ability是HarmonyOS应用程序提供的抽象功能,在HarmonyOS中一切皆能力。

HarmonyOS分布式系统所要实现的不仅仅是单一的能力,它所要达到的效果是能力可以单独存在,可以互相关联,可以彼此调用互相迁移。

比如:可以将手机端播放的视频迁移到智慧屏,通过大屏来观看视频,同时也可以将视频音效分离到外设音响;通过设备A获取设备B的数据;多设备终端数据同步等。

在HarmonyOS分布式系统中,一切皆能力,能力无大小。

在HarmonyOS应用程序中,一个页面即一种能力,如登录页面,即具有登录功能的能力;一个服务即一种能力,如后台播放音乐的能力;一个数据操作即一种能力,如获取数据库数据等。同时能力之间也可以互相调用,通过页面能力来管理后台音效播放与暂停。

一个HarmonyOS应用程序可以包含一个或多个能力,HarmonyOS应用程序可以以能力为单位进行部署。

3.2、FA模型的ability

在HarmonyOS应用程序的FA模型中将能力分为FA(Feature Ability,即元程序)和PA(Particle Ability,即元服务)两种类型,针对两种类型提供了不同的模板可以在日常业务开发中直接使用。

FA: 支持PageAbility组件;

PA:支持ServiceAbility组件和DataAbility组件。

PageAbility

Page 模板的 Ability,用于提供与用户交互的能力。

一个 Page 可以由一个或多个 AbilitySlice 构成,AbilitySlice 是指应用的单个页面及其控制逻辑的总和,可以称之为子页面,可以存在并复用在其他PageAbility上.

跨设备迁移支持将 Page 在同一用户的不同设备间迁移,以便支持用户无缝切换的诉求。

ServiceAbility

Service 模板的 Ability(以下简称 "Service")主要用于后台运行任务(如执行音乐播放文件下载 等),但不提供用户交互界面。

Service 可由其他应用或 Ability 启动,即使用户切换到其他应用,Service 仍将在后台继续运行。

DataAbility

Data 模板的 Ability(以下简称“Data”)有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。

Data 既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。

数据的存放形式多样,可以是数据库,也可以是磁盘上的文件。

Data 对外提供对数据的增、删、改、查,以及打开文件等接口,这些接口的具体实现由开发者提供。

3.3、Stage模型的Ability 

在HarmonyOS应用程序的Stage模型中将能力分为:UIAbility组件和ExtensionAbility组件。

UIAbility组件:包含UI界面,提供展示UI的能力,主要用于和用户交互。

ExtensionAbility组件:提供特定场景(如卡片、输入法)的扩展能力,满足更多的使用场景。

这篇关于学习鸿蒙一定要搞清楚的几个概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/738143

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学