乐趣区

关于harmonyos:HarmonyOS应用框架如何解决多设备交互问题

随着全场景多设施生存形式的不断深入,用户领有的设施越来越多,除了咱们每天带在身上的手机、手段上的智能手表、口袋外面的无线耳机、背包外面的 PC 和 Pad、另外家里还有智能电视、智能冰箱等设施,这些年,汽车也在逐渐地变成一台跑在路线上的电子设备,如果这些设施都是彼此孤立的,那体验肯定是很差的。

因而,要想让万物互联,就须要新的交互模式,而新的交互模式在开发时,须要利用框架加持,HarmonyOS 利用框架就解决了新时代的交互问题。接下来咱们以用户交互为终点,来介绍 HarmonyOS 利用框架是如何解决多设施交互问题的。

一、万物互联时代的根本交互模型

如图 1 所示,纵观人机交互历史,有以下几个要害工夫点:

• 1868 年,打字机的呈现解决了人机交互中文字输出的问题
• 1964 年,鼠标的呈现解决了人机交互中图形界面交互的问题
• 2007 年,多指手势的呈现解决了触摸屏的交互问题


图 1 人机交互模式图

这三个历史工夫点能够说是人机交互史上的分水岭,它们提供了新的交互方式解决了新类型设施的交互问题。然而,这三种交互方式解决的都是单机交互的问题,而万物互联时代面临的是多设施交互的简单问题。

基于人机交互多年的钻研剖析,咱们发现,在多设施的交互场景上,用户应用设施的场景能够分为两大类,一类是 用户同时应用多个设施 ,另一类是 相继应用多个设施(如图 2 所示)。


图 2 多设施交互模型图

1. 同时应用(Simultaneous)

当咱们在同时应用多个设施时,除了并发性之外,交互模型还有两个重要的特点就是:协作性和互补性。协作性是指多个设施彼此交互协调实现一项工作。互补性是指利用设备的自身状态差别,设施之间相互舍短取长,实现一项工作。

例如,当咱们在家里找不到电视遥控的时候,手机能够变身成遥控器,这就是一种设施能力的互补。

2. 相继应用(Sequential)

而当咱们相继应用多个设施时,连续性和一致性就十分重要了。连续性是指,当我从一个设施转向另外一个设施的时候,我刚刚操作的状态该当是持续保留没有被中断的。例如:将手机上播放的视频转到 PAD 上后可能持续播放。而一致性是指,当咱们在应用手表、手机、大屏等不同设施时,它们操作形式和根底视觉元素该当是统一的。例如:多指手势、控件的款式。当然,统一不代表一样,每种设施因为其屏幕尺寸和状态不一样,视觉元素还须要有针对性地进行一些自适应。

为了满足上述两种交互模型,HarmonyOS 构建的分布式应用框架中提供了两种根底性能,别离是:多端协同 跨端迁徙

接下来咱们将介绍 HarmonyOS 的上述两个能力是如何解决多设施交互问题的。

二、HarmonyOS 如何解决多设施交互问题?

首先咱们来介绍 HarmonyOS 分布式应用框架,该框架能够分为 5 层(如图 3 所示)。


图 3 分布式应用框架整体架构视图

Layer1 底层软件,包含内核、驱动和还有软总线,这一层与开发者间隔绝对较远。

Layer2 根底能力平台,它蕴含了很多分布式环境下的根底服务,例如:分布式任务调度、分布式数据管理、分布式硬件治理以及分布式文件治理等。

Layer3是利用框架的 外围服务,大体能够分为两块:一块是全局包治理,一块是分布式运行治理。与传统的操作系统不同,HarmonyOS 上的包治理,须要解决整个超级终端上所有设施的包信息,因而咱们称之为全局包治理。而对于分布式运行治理,将在下文重点介绍,其中蕴含了协同和迁徙框架。

Layer4是开发者所应用的 编程接口层。只管零碎底层的实现非常复杂,然而咱们在第四层为开发者提供了简洁的接口。

Layer5是开发利用的 用户程序层,这一层与开发者分割亲密。

接下来咱们将重点为大家介绍 Layer3 中实现多设施交互模型的两个框架,别离是 多端协同框架 跨端迁徙框架

1. 多端协同框架

多端协同框架就是为用户同时应用多个设施的场景而筹备的。例如:手机侧利用做游戏手柄,智慧屏侧利用做游戏显示,为用户组成一个全新的游戏体验;又如:平板侧利用做答题板,智慧屏侧利用做直播,为用户组成一个全新的上网课体验。

要实现这样的业务,就要借助多端协同框架(如图 4 所示)。


图 4 多端协同

多端协同是一种实现用户应用程序流转的技术计划,指多端上的不同 FA/PA 同时运行、或者交替运行实现残缺的业务;或者多端上的雷同 FA/PA 同时运行实现残缺的业务。多个设施作为一个整体为用户提供比单设施更加高效、沉迷的体验。

阐明:FA:Feature Ability,有 UI 界面,PA:Particle Ability,无 UI 界面。

当咱们的业务须要逾越多个设施时,有两个根本的能力须要保障:

一是可能建设跨设施的连贯通路,并且实时感知连贯状态的变动。这一点通过 IAbilityConnection 来实现,它依赖分布式治理服务和软总线来进行底层连贯的治理。

二是可能在连贯通道上传递状态和数据,以进行业务的协同。这一点能够通过 HarmonyOS 的 IDL 实现。这些传递的数据既蕴含了零碎须要传递的数据,也蕴含了应用程序进行须要传递的数据。

有了这两个能力,开发者便能够实现不同设施之间业务逻辑的协同,以及设施之间硬件能力互补的性能。

2. 跨端迁徙框架

跨端迁徙是用来为用户相继应用多个设施而筹备的,它是咱们罕用的一个场景。例如,当你通过手机观看视频时,感觉体验不够好,你想切换到屏幕更大、音效更好的 PAD 上持续观看,在 HarmonyOS 之外的零碎上,你只能先解锁 PAD,找到那个利用,而后再找到播放历史,如果运气好,你的播放进度曾经被同步过来了,但很可能,因为网络同步的提早,你还得先找到刚刚观看的地位,而后再持续观看。

而关注 HarmonyOS 零碎的敌人们肯定会晓得,在往年 HarmonyOS 2 发布会上,咱们公布了全新的服务中心。在这个服务中心当中,你能够跨设施的治理整个超级终端上的工作列表,这使得你能够间接在手机上的工作核心,一步将工作拖动到 PAD 上就能够了。

要实现这一点,就要借助跨端迁徙框架(如图 5 所示)


图 5 跨端迁徙

跨端迁徙是一种实现用户应用程序流转的技术计划,是将设施 1 端运行的 FA 迁徙到设施 2 端上,通过 IAbilityContinuation 实现业务迁徙。实现迁徙后,设施 2 端的 FA 持续工作,而设施 1 端利用退出。当用户将工作从一台设施拖动到另外一台设施上时,应用程序会收到来自零碎的调用,此时应用程序能够将本人须要保留的状态告知零碎,零碎会借助于分布式工作治理将数据传递到指标端,而后拆包数据并复原利用状态。在这种状况下,用户感触到的就是将工作从一个设施迁徙到了另外一个设施。

迁徙和协同须要开发者的反对,但这类新的个性往往并不能在短时间内取得齐全地遍及,当利用没有适配迁徙框架时,零碎要如何实现跨段迁徙工作?

①跨端迁徙与窗口治理

为了保障用户体验的一致性,当利用没有适配迁徙框架的时候,零碎会通过分布式窗口治理的能力实现跨端迁徙工作。如图 6 所示,当用户跨设施拖动工作时,HarmonyOS 零碎会将工作窗口迁徙到一个 Virtual Window(虚构窗口)上渲染,而后将渲染的后果通过软总线传递到 ProxyWindow(远端的代理窗口)上,由此达到跨设施显示的成果。


图 6 分布式窗口治理图

②分布式硬件平台与主动追随

咱们晓得,利用在运行过程中,很多时候都会利用一些硬件设施。例如:Camera、麦克风或传感器。而当咱们将一个利用从一个设施迁徙到另外一个设施之后,不只是把用户界面和利用状态转移过来就能够了,如果转移之后声音还留在原来的设施上播放,那就比拟奇怪了。因而,在 HarmonyOS 中,这些硬件是如何治理的呢?

为了使得利用迁徙的流程更加具备一致性,咱们在硬件层面零碎中做了两件事件(如图 7 所示):


图 7 分布式硬件平台与主动追随

第一件事是“硬件资源池化”。即:HarmonyOS 零碎会将超级终端上所有设施的硬件进行全局的编号和虚拟化,这使得任何一个设施上的软件都能够应用所有超级终端设施内的硬件。

第二件事是“主动追随”。应用程序应用的其实是一个虚构的句柄,它并非与某个个性硬件相绑定,当咱们在将某个软件实体从一个设施迁徙到另外一个设施时,零碎中的迁徙决策模块会主动将硬件也一起切换到指标设施上,使得整个用户体验是统一的。

通过上述介绍,我置信大家曾经了解 HarmonyOS 利用框架是如何解决多设施交互问题的。

作为新一代的智能终端操作系统,HarmonyOS 十分欢送宽广开发者退出咱们,成为整个鸿蒙生态的一员,让咱们一起,为寰球几十亿用户共筑全新的商业生态以及有限可能。

退出移动版