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

相关文章

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

解读spring.factories文件配置详情

《解读spring.factories文件配置详情》:本文主要介绍解读spring.factories文件配置详情,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用场景作用内部原理机制SPI机制Spring Factories 实现原理用法及配置spring.f

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

一文带你深入了解Python中的GeneratorExit异常处理

《一文带你深入了解Python中的GeneratorExit异常处理》GeneratorExit是Python内置的异常,当生成器或协程被强制关闭时,Python解释器会向其发送这个异常,下面我们来看... 目录GeneratorExit:协程世界的死亡通知书什么是GeneratorExit实际中的问题案例

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多