0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

学习鸿蒙必须要知道的几个名词

信盈达 2024-07-06 08:04 次阅读

5954ef10-3b2b-11ef-a655-92fbcf53809c.png

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

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

596d3db8-3b2b-11ef-a655-92fbcf53809c.png

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

5a1c2d00-3b2b-11ef-a655-92fbcf53809c.png

5a476ec0-3b2b-11ef-a655-92fbcf53809c.png

2.1.应用模型介绍

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

2.2.两种应用模型

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

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

5a6025dc-3b2b-11ef-a655-92fbcf53809c.png

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

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

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

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

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

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

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

5a8954ca-3b2b-11ef-a655-92fbcf53809c.png

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

5aa44852-3b2b-11ef-a655-92fbcf53809c.png

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,即元服务)两种类型,针对两种类型提供了不同的模板可以在日常业务开发中直接使用。

5ac09b6a-3b2b-11ef-a655-92fbcf53809c.png

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既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。

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

3.3.Stage模型的Ability

5ae0752a-3b2b-11ef-a655-92fbcf53809c.png

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 框架
    +关注

    关注

    0

    文章

    396

    浏览量

    17234
  • 应用程序
    +关注

    关注

    37

    文章

    3191

    浏览量

    57320
  • HarmonyOS
    +关注

    关注

    79

    文章

    1944

    浏览量

    29702
收藏 人收藏

    评论

    相关推荐

    嵌入式入门首先必须要知道以下几点

    的发行版本怎样从每个配文件中把设置用环境变量的形式读取并让他生效的。  4. 再次要掌握电路知识和单片机,你要学习电路、模电、数电,认识电阻、电容、三极管,基础器件要知道,放大电路、集成运放、时序电路
    发表于 09-24 16:21

    51单片机有哪些外围模块必须要学习

    开发板的东西基本懂了,想过渡到stm32了,现在想看看51单片机还有哪些外围模块必须要学习补补,目前知道时钟,红外lcd等,请问还有哪些模块需要学,像无线,蓝牙模块,语音模块这些的需要去学完在学stm32吗
    发表于 04-07 23:34

    CAN报文解析需要知道DBC的哪些信息排序方式

    方法解析。需要知道DBC的哪些信息CAN ID、Startbit\Length(Bit)、Factor、Offset是必须要知道的,接下来的读取和发送公式会讲到具体用法。排序方式CAN通信中字节的排序方式如下读取方式如车速信息通常占用13个字节,如下图所示。读取值=(By
    发表于 01-12 07:28

    请问NAN配网必须要鸿蒙os的api版本在6及以上嘛?

    各位大佬,NAN配网必须要鸿蒙os的api版本在6及以上嘛?
    发表于 04-28 11:56

    变频器的几个重要参数

    变频器最重要的的参数,学习变频器,这是必须要知道
    发表于 11-16 14:45 3次下载

    STM32_高级定时器

    学习STM32必须要知道的一个重要知识点。
    发表于 03-17 17:01 9次下载

    开发一个Linux调试器就必须要知道寄存器和内存!

    在我们正真的读取寄存器前,调试器需要知道一些关于x8664架构的相关知识。包括通用寄存器,专用寄存器以及浮点寄存器和向量寄存器。
    发表于 05-14 17:28 1430次阅读

    程序员需要知道的那些定理和法则

    关于开发人员必须要知道的定义、原则以及理论,一位名叫Dave Kerr的小哥哥在Github上专门开了个科普帖子,为广大程序员介绍必备的定理。
    的头像 发表于 05-17 17:20 3019次阅读

    PCB设计电容中必须要知道的知识点

    小编给大家分享一下PCB设计电容中必须要知道的知识点,期待对大家的PCB设计有作用。 去耦电容:电源附近的 旁路电容:芯片的电源管脚根部,10-0.1-0.01uF电容组,用于滤除高频噪声,防止自己
    的头像 发表于 08-12 10:38 7066次阅读
    PCB设计电容中<b class='flag-5'>必须要知道</b>的知识点

    嵌入式Linux初学者必须要知道的知识点

    有去了解过嵌入式的学员应该都会知道现在嵌入式是在什么位置上,就发展来说,嵌入式还有很大的发展空间的,所以想要去学习嵌入式的人也会越来越多,下面可以先来了解下嵌入式Linux初学者必须要知道的知识点
    发表于 11-01 16:58 9次下载
    嵌入式Linux初学者<b class='flag-5'>必须要知道</b>的知识点

    做嵌入式必须要知道几个点!!

    问:做嵌入式是不是一定要学习 C 语言?答:一定要以 C 语言为基础,嵌入式是一个面很广的学科,分类也比较多,但是我认为,嵌入式基础是一定需要 C 语言基础的,我们以前刚开始学习单片机,用
    发表于 01-13 11:20 0次下载
    做嵌入式<b class='flag-5'>必须要知道</b>的<b class='flag-5'>几个</b>点!!

    电阻选型以下几个参数你必须要知道

    折算下来是温度每变化一度,电阻值变化万分之一。万分之一不多,不过如果工作温度从-50℃升高到+50℃,电阻值就要变化1%,和精密电阻1%的误差相当了。
    的头像 发表于 10-26 11:06 3528次阅读

    STM32的基本知识

    首先,在学习Cortex-M3时,我们必须要知道必要的缩略语。
    的头像 发表于 05-04 16:48 5633次阅读
    STM32的基本知识

    锂电池必须要知道的这些常用术语

    锂电池说不复杂,其实也不是很复杂,说简单,其实也不简单。如果从事这一行业,那么就必须要掌握这些常用的术语,对你理解非常非常重要。1,锂电池电压2,锂电池容量和比容量3,锂电池能量和比能量4,锂电池
    的头像 发表于 05-26 10:33 2172次阅读
    锂电池<b class='flag-5'>必须要知道</b>的这些常用术语

    学习FPGA必须知道的社区

    学习FPGA必须知道的社区
    的头像 发表于 01-03 17:51 266次阅读
    <b class='flag-5'>学习</b>FPGA<b class='flag-5'>必须知道</b>的社区