HarmonyOS分布式应用框架深入解读

2024-04-12 19:12

本文主要是介绍HarmonyOS分布式应用框架深入解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着越来越多设备的智能化,在多设备场景下应用开发面临以下挑战:从多设备的形态差异(不同大小、不同分辨率、不同形状的屏幕,多样化的交互方式–按钮、触屏、键盘、语音、手势等),多设备的能力差异(内存从百 KB级到GB级设备)。

针对上述挑战,HarmonyOS作为一款面向万物互联时代的、全新的分布式操作系统,将迎刃而解,这得益于HarmonyOS的分布式应用框架,这些多设备组成一个超级终端,充分发挥各设备能力,从而实现多设备间多端协同、跨端迁移,为万物互联奠定基础。

针对HarmonyOS的分布式应用框架后面章节将分别深入解读。

一、HarmonyOS用户程序

在HarmonyOS系统上应用分为:HarmonyOS应用、原子化服务,HarmonyOS应用就是跟传统应用一样需要在应用商店下载安装,原子化服务是具有独立操作入口、免安装、实现特定功能,比微信小程序功能更强大,加上HarmonyOS的跨设备、分布式的能力及应用,二者具有无限能力。

从开发者角度看,HarmonyOS上基本的组件分为3+1,其中3代表三个Ability,分别是:PageAbility:负责用户界面的显示,DataAbility:负责数据的管理,对外部提供统一的数据访问抽象,ServiceAbility:负责后台运行的任务。1代表AbilityForm服务卡片,可以将重要信息或操作前置于此,以达到服务直达,减少体验层级的目的。3+1组件进行组合开发出HarmonyOS上的应用,其打包格式为HAP(HarmonyOS Ability Package),根据HAP是否有界面分为:FA(Feature Ability)、PA(Particle Ability)两种类型。

  • HarmonyOS分布式应用程序框架整体架

从应用框架的角度对系统的分层,共分5层,分别如下:

底层软件层:包括内核和HAL、软总线,这一层开发者不会用着,一般默默地为开发者和用户服务。

基础服务层:包括分布式调度管理、分布式数据管理、分布式硬件管理、分布式权限管理。

核心服务层:包括全局包管理、分布式运行管理,全局包管理:HarmonyOS上的应用不再局限于单台设备上,包管理还包括跨虚拟终端上的所有设备。分布式运行管理负责应用动态运行时管理,包括协同框架、迁移框架、服务卡片框架。

应用接口层:是系统提供给广大开发人员开发应用的接口层,不管系统底层实现有多复杂,但提供给开发者的接口尽可能的简单。这层包括之前提到的基本组件,还有ACE(Ability Cross-platform Environment)框架,在多设备的交互模型下,一致性很重要,从UI的角度怎么让UI框架适应大屏、小屏、长屏、方屏、横屏等,这个一致性很大程度是由ACE框架支撑的。

用户程序层:这层就是广大开发者开发的应用供用户使用。

  • HarmonyOS分布式应用程序框架运行视图

这是应用框架运行时的视图,运行时每个应用在独立的沙箱里面,彼此隔离互不影响,这样保证了系统的安全性。系统里面包含像AppSpawn负责进程的孵化,AppMS负责进程的管理,BMS(Bundle Manager Service)负责包的管理,AMS(Ability Manager Service)负责基本的组件管理,DMS(Distributed Manager Service)负责分布式业务的,是专门的一个底层的服务,我们好多上层的服务都有分布式的业务,经由它进行一个连接的业务的归一,它的主要职责包括像分布式任务管理、跨设备状态和数据同步。

  • HarmonyOS分布式操作:多端协同

多端协同是为了让我们的应用程序在多个端上完成一个业务,这个时候系统的框架提供了三种能力给应用程序。第一个跨设备组件启动,有了这个能力就可以完成一个并发。第二个是跨设备数据传递,经由一个连接通道进行业务的协作。第三个是分布式共享对象能够让你能够自动的在两个设备或多个设备之间进行状态的自动同步。

右上角的代码片段强调的是一个连接,其实在系统层面提供一个连接看似是很自然的事情,但背后及其复杂,HarmonyOS上的设备跨越了从小到中到大的各种类型的设备,它们的芯片的类型不一样、它们的连接方式也是不一样的,可能有WI-FI、可能有蓝牙等等,这样的连接是无线的,经常有干扰,这种连接还要把底下的网络抖动给过滤掉。

在多端协同框架的基础上,开发者能够开发出跨越多个设备的应用。举例子:你可以在pad上开发一个观看视频的应用,这样借助手机可以对视频进行文字评论和回复,进行一个业务的跨端,这样就可以达到并发、协作、互补。

  • HarmonyOS分布式操作:跨端迁移

HarmonyOS上任务管理中心可以在一个端上管理所有超级终端上的任务,借助这个任务管理中心,可以轻松的把一个任务从手机端迁移到大屏上,这个过程就是开发者跟系统的一个对接。系统本身通过任务管理中心、通过应用拿到一个状态,应用本身通过回调把状态传递给系统,系统间传递这个状态,开发者就不用关心了,借助迁移框架给用户打造一个连续性、一致性的效果。

  • HarmonyOS基本架构:分布式窗口管理

不管是多端协同还是跨端迁移,当用户在任务中心拖动时,系统会将拖动的任务窗口牵引到一个虚拟的窗口中渲染,将渲染结果传递给目标的代理窗口填充进去,不仅仅是把视频流的一个传输过去,还有用户的交互事件发回给原始的应用,既有系统多模统一的交互模块,对应用来说是其实感知不到的,不知道事件来自本端还是另一端。

  • HarmonyOS基本架构:分布式硬件

现在的设备包含的硬件、外设非常多,比如相机、麦克风,包括各种各样的传感器,像手表里每天监测睡眠、每天的步行等健康的一个状态,如果这些设备仅局限在一个设备上使用那就是一个极大的限制。所以在分布式环境的编程中,系统从硬件的角度提供了两个能力,第一个是全局的虚拟化,将所有连接到超级终端上的硬件外设全局的池化,这样能提供给开发者跨端调用,不用自己建立连接,不用自己管理硬件使用权的交换,也不用二次授权,这是因为硬件很多时候是跟隐私相关的,系统已经通过统一的全局虚拟化将这些底层能力打通了。

然后是第二是硬件自动跟随,我们的软件是不局限在一个设备上的,可能是从一个设备迁移到另一个设备,比如这个时候在播放声音,比如这个时候在跟别人视频聊天,那么这些硬件跟随着自动迁移过去,这一点系统在应用框架以及底层的分布式硬件的一个结合完成了这么一个事情,减少开发者的负担。

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

这篇关于HarmonyOS分布式应用框架深入解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

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

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

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

深入手撕链表

链表 分类概念单链表增尾插头插插入 删尾删头删删除 查完整实现带头不带头 双向链表初始化增尾插头插插入 删查完整代码 数组 分类 #mermaid-svg-qKD178fTiiaYeKjl {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念