HarmonyOS应用框架如何解决多设备交互问题?

开发 开发工具 OpenHarmony
在未来万物互联的智能世界里,众多的电子设备将不再是一个孤立的个体

在未来万物互联的智能世界里,众多的电子设备将不再是一个孤立的个体。随身携带的智能手机、手腕上的智能手表、办公室的PC和Pad、家里的智能电视、智能冰箱等,甚至是道路上汽车,都能彼此交互。

不过,要想让众多的电子设备互联互通,还需用新的交互模式。那作为以交互为核心的新时代开发应用框架,HarmonyOS应用框架如何解决多设备交互问题呢?

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

图1 人机交互模式图


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

纵观人机交互历史,这三个时间点可以说是人机交互史上的分水岭,它们都为新类型设备的交互提供了新的交互方式。不过,这三种交互方式解决的都是单机交互问题,而万物互联时代交互面对的设备更多,交互场景也更为复杂。

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

要了解 HarmonyOS 应用框架如何解决多设备交互问题,首先我们需要了解 HarmonyOS 分布式应用框架,该框架可以分为5层(如图2所示)。

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

  • Layer1是底层软件:包括内核、驱动、软总线,这一层与开发者距离相对较远。
  • Layer2是基础能力平台:包含了很多分布式环境下的基础服务,例如:分布式任务调度、分布式数据管理、分布式硬件管理以及分布式文件管理等。
  • Layer3是应用框架的核心服务:大体可以分为全局包管理和分布式运行管理两部分。与传统的操作系统不同,HarmonyOS上的包管理,需要处理整个超级终端上所有设备的包信息,因此称之为全局包管理。而分布式运行管理中协同和迁移框架是两大重点。
  • Layer4是开发者所使用的编程接口层:通过简洁的接口为开发者提供调取系统底层的能力。
  • Layer5是开发应用的用户程序层,这一层与开发者联系密切。

基于人机交互多年的研究分析发现,在多设备的交互场景上,用户使用设备的场景可以分为两大类,一类是用户同时使用多个设备,另一类是相继使用多个设备(如图3所示)。

图3 多设备交互模型图

1.同时使用(Simultaneous)

当我们同时使用多个设备时,除了并发性之外,交互模型还有两个重要的特点就是协作性和互补性。协作性是指多个设备彼此交互协调完成一项任务;互补性是指利用设备的本身形态差异,设备之间互相取长补短,完成一项任务。

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

2.相继使用(Sequential)

而当我们相继使用多个设备时,连续性和一致性非常重要。连续性是指,从一个设备转向另外一个设备的时,操作的状态也应当继续保留而不被中断。例如:将手机上播放的视频转到 Pad上 后能够继续播放。而一致性是指,在使用手表、手机、大屏等不同设备时,它们操作方式和基础视觉元素应当一致。例如:多指手势、控件的样式。当然,一致不代表一样,每种设备由于其屏幕尺寸和形态不一样,视觉元素还需要有针对性地进行一些自适应。

为了满足上述两种交互模型,HarmonyOS构建的分布式应用框架中提供了多端协同与跨端迁移两种基础功能来解决多设备交互问题。

接下来我们将重点为大家介绍Layer3中实现多设备交互模型的两个框架,分别是多端协同框架和跨端迁移框架。

1.多端协同框架

多端协同是一种实现用户应用程序流转的技术方案,指多端上的不同FA/PA同时运行、或者交替运行实现完整的业务;或者多端上的相同FA/PA同时运行实现完整的业务。多个设备作为一个整体为用户提供比单设备更加高效、沉浸的体验。
说明:FA:Feature Ability,有UI界面, PA:Particle Ability,无UI界面。

例如手机侧应用做游戏手柄,智慧屏侧应用做游戏显示,为用户组成一个全新的游戏体验;或者平板侧应用做答题板,智慧屏侧应用做直播,为用户组成一个全新的上网课体验。

图4 多端协同

当我们的业务需要跨越多个设备时,有两个基本的能力需要保证。一个是能够建立跨设备的连接通路,并且实时感知连接状态的变化;另一个是能够在连接通道上传递状态和数据,以进行业务的协同。

而多端协同框架是为用户同时使用多个设备的场景而准备的。开发者借助多端协同框架,便可以完成不同设备之间业务逻辑的协同,以及设备之间硬件能力互补的功能。

2.跨端迁移框架

跨端迁移是一种实现用户应用程序流转的技术方案,是将设备1端运行的FA迁移到设备2端上,通过IAbilityContinuation实现业务迁移。完成迁移后, 设备2端的FA继续任务,而设备1端应用退出。

当用户将任务从一台设备拖动到另外一台设备上时,应用程序会收到来自系统的调用,此时应用程序可以将自己需要保存的状态告知系统,系统会借助于分布式任务管理将数据传递到目标端,然后拆包数据并恢复应用状态。在这种情况下,用户感受到的就是将任务从一个设备迁移到了另外一个设备。

例如,想把手机观看的视频切换到体验屏幕更大、音效更好的Pad上继续观看时,通过HarmonyOS 2全新的服务中心,可以直接在手机上的任务中心,一步将应用拖动到Pad上继续观看。

要完成这一点,就要借助跨端迁移框架(如图5所示)。

图5 跨端迁移

迁移和协同需要开发者的支持,但这类新的特性往往并不能在短时间内获得完全地普及, 当应用没有适配迁移框架时,系统要如何完成跨段迁移任务?

①跨端迁移与窗口管理

为了保证用户体验的一致性,当应用没有适配迁移框架的时候,系统会通过分布式窗口管理的能力完成跨端迁移任务。如图6所示,当用户跨设备拖动任务时,HarmonyOS系统会将任务窗口迁移到一个Virtual Window(虚拟窗口)上渲染,然后将渲染的结果通过软总线传递到ProxyWindow(远端的代理窗口)上,由此达到跨设备显示的效果。

图6 分布式窗口管理图

②分布式硬件平台与自动跟随

在应用的运行过程中,很多时候都会利用一些硬件设备。例如:Camera、麦克风或传感器。当我们将一个应用从一个设备迁移到另一个设备之后,不只是把用户界面和应用状态转移过去,还需要管理相应设备的硬件。

为了使应用迁移的流程更加具有一致性,我们在硬件层面系统中做了两件事情(如图7所示):

图7 分布式硬件平台与自动跟随

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

第二件事是“自动跟随”。应用程序使用的其实是一个虚拟的句柄,它并非与某个特性硬件相绑定,当我们在将某个软件实体从一个设备迁移到另外一个设备时,系统中的迁移决策模块会自动将硬件也一起切换到目标设备上,使得整个用户体验一致。

经过上述介绍,相信大家已经对HarmonyOS应用框架如何解决多设备交互问题有了深入的理解。

作为面向万物互联新时代的智能终端操作系统,HarmonyOS期待与广大开发者携手同行,共筑HarmonyOS生态,为用户创造全新的体验和无限的可能。

 

 

责任编辑:黄显东 来源: 51CTO
相关推荐

2021-08-18 16:02:29

Windows 11操作系统微软

2009-02-05 10:33:27

设备碎片Java ME移动

2022-03-25 10:13:05

自动驾驶监督学习数据集

2023-03-01 10:02:43

2013-02-26 09:51:31

Windows 8应用异常问题

2012-09-05 11:09:15

SELinux操作系统

2014-05-21 11:09:56

前端有限状态机

2022-06-09 14:08:34

多设备协同鸿蒙

2010-04-29 17:46:31

Oracle死锁

2011-08-29 10:34:00

网络安全云安全云计算

2023-10-30 18:35:47

MySQL主从延时

2011-03-23 14:42:47

CPU过度消耗

2010-07-16 13:52:26

telnet漏洞

2017-10-17 09:21:06

2021-06-06 13:05:15

前端跨域CORS

2020-04-09 11:08:30

PyFlinkJAR依赖

2017-07-20 07:30:16

大数据数据互联网

2013-05-21 10:49:59

Windows硬件冲突

2015-07-01 09:47:38

2021-07-30 16:03:03

双因素认证2FA多因素认证
点赞
收藏

51CTO技术栈公众号