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

相关文章

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

深入解析Spring TransactionTemplate 高级用法(示例代码)

《深入解析SpringTransactionTemplate高级用法(示例代码)》TransactionTemplate是Spring框架中一个强大的工具,它允许开发者以编程方式控制事务,通过... 目录1. TransactionTemplate 的核心概念2. 核心接口和类3. TransactionT

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危