当前位置: 首页 > 科技观察

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

时间:2023-03-22 14:50:28 科技观察

更多内容请访问:https://harmonyos.51cto.com,与华为官方共同打造的鸿蒙科技社区很多,除了我们每天随身携带的手机,手腕上的智能手表,无线耳机我们口袋里,背包里的PC和Pad,还有家里的智能电视、智能冰箱等设备,这些年来,汽车逐渐变成了跑在路上的电子设备,如果这些设备相互隔离,经验一定很差。因此,要连接万物,就需要一种新的交互模式,而新交互模式的发展需要应用框架的加持。HarmonyOS应用框架解决了新时代的交互问题。接下来,我们将以用户交互为切入点,介绍HarmonyOS应用框架是如何解决多设备交互问题的。1、万物互联时代的基本交互模型如图1所示。纵观人机交互的历史,主要有以下几个时间点:1868年,打字机的出现,解决了人机交互的问题人机交互中的文本输入。1964年,鼠标2007年,多指手势的出现解决了触摸屏的交互问题。图1人机交互模式图这三个历史时间点可以说是人机交互史上的一个分水岭。它们为新型设备提供新的交互方式并解决交互问题。然而,这三种交互方式都解决了单机交互的问题,而万物互联时代则面临着多设备交互的复杂问题。基于多年人机交互的研究分析,我们发现在多设备交互场景中,用户使用设备的场景可以分为两类,一类是用户同时使用多个设备时间,另一种是用户使用多个设备(如图2所示)。图2多设备交互模型图1.同时使用(Simultaneous)当我们同时使用多台设备时,除了并发之外,交互模型还有两个重要的特征:协作和互补。协作是指多个设备相互交互和协调以完成一项任务。互补性是指利用设备自身形态的差异,设备之间相互学习,共同完成一项任务。比如,当我们在家里找不到电视遥控器的时候,手机可以变身为遥控器,这是一种设备能力的补充。2.顺序使用(Sequential)当我们连续使用多个设备时,连续性和一致性非常重要。连续性是指当我从一个设备切换到另一个设备时,我刚刚操作的状态应该保持不间断。例如:手机播放的视频传到PAD上后,可以继续播放。一致性是指我们在使用手表、手机、大屏等不同设备时,它们的操作方式和基本视觉元素应该保持一致。例如:多指手势、控件样式。当然,一致性并不意味着相同。由于每个设备的屏幕尺寸和形状不同,视觉元素需要有针对性地自适应。为了满足以上两种交互模型,HarmonyOS构建的分布式应用框架提供了两个基本功能,即:多端协同和跨端迁移。接下来,我们就来介绍鸿蒙OS的上述两项能力是如何解决多设备交互问题的。2、HarmonyOS如何解决多设备交互问题?首先介绍一下HarmonyOS分布式应用框架,可以分为五层(如图3所示)。图3分布式应用框架整体架构图Layer1为底层软件,包括内核、驱动、软总线。这一层离开发者比较远。Layer2是一个基础能力平台,包括分布式任务调度、分布式数据管理、分布式硬件管理、分布式文件管理等分布式环境下的许多基础服务。Layer3是应用框架的核心服务,大致可以分为两部分:一是全局包管理,二是分布式运行管理。与传统操作系统不同的是,HarmonyOS上的包管理需要处理整个超级终端上所有设备的包信息,所以我们称之为全局包管理。至于分布式运行管理,下面会重点介绍,包括协调和迁移框架。Layer4是开发者使用的编程接口层。虽然系统的底层实现非常复杂,但我们在第四层为开发者提供了简洁的接口。Layer5是开发应用程序的用户程序层,与开发人员密切相关。下面重点介绍Layer3实现多设备交互模型的两个框架,即多终端协同框架和跨终端迁移框架。1.多设备协同框架多设备协同框架是为用户同时使用多台设备的场景准备的。例如:手机端应用作为游戏手柄,智慧屏端应用作为游戏显示器,为用户形成全新的游戏体验;又如:平板端应用作为答题板,智慧屏端应用作为直播,为用户课堂体验形成全新的在线体验。要实现这样的服务,就需要使用多端协同框架(如图4所示)。图4多终端协同多终端协同是实现用户应用程序流的技术方案,是指多个终端上的不同FA/PA同时或交替运行,以实现完整的服务;或多个终端上的同一个FA/PA同时运行,实现完整的业务业务。多个设备作为一个整体为用户提供比单个设备更高效和身临其境的体验。说明:FA:FeatureAbility,有UI界面,PA:ParticleAbility,无UI界面。当我们的业务需要跨越多个设备时,有两个基本能力需要保证:一是能够建立跨设备的连接路径,实时感知连接状态的变化。这是通过IAbilityConnection实现的,它依赖于分布式管理服务和软总线来管理底层连接。二是能够在业务协同的连接通道上传输状态和数据。这可以通过HarmonyOS的IDL来实现。传输的数据不仅包括系统需要传输的数据,还包括应用程序需要传输的数据。通过这两种能力,开发者可以完成不同设备之间业务逻辑的协同,以及设备之间硬件能力互补的功能。2.跨设备迁移框架跨设备迁移是为用户接连使用多台设备做准备。这是我们使用的常见场景。比如,当你在手机上看视频,觉得体验不够好,想换一台屏幕更大、音效更好的PAD继续看。在HarmonyOS以外的系统上,只能先解锁PAD,找到那个app,再找到播放历史。运气好的话,你的播放进度已经同步了,但多半是因为网络同步的延迟,你得先找到刚刚观看的位置,才能继续观看。关注鸿蒙系统的朋友就会知道,在今年的鸿蒙2发布会上,我们发布了全新的服务中心。在这个服务中心,您可以跨设备管理超级终端上的整个任务列表,您可以直接将任务拖到手机任务中心的PAD中。为此,需要使用跨设备迁移框架(如图5所示)图5跨设备迁移跨设备迁移是一种实现用户应用流程的技术方案,即迁移运行在device1到device2端,通过IAbilityContinuation实现业务迁移。迁移完成后,设备2端的FA继续执行任务,而设备1端的应用退出。当用户将任务从一台设备拖到另一台设备时,应用程序将收到来自系统的调用。这时,应用程序可以通知系统它需要保存的状态,系统会使用分布式任务管理将数据传递到目的地,然后解包数据并恢复应用程序状态。在这种情况下,用户的感觉是任务已经从一台设备迁移到另一台设备。迁移和协作需要开发者的支持,但这样的新特性往往无法在短时间内得到全面普及。当应用不适应迁移框架时,系统如何完成跨段迁移任务?①跨设备迁移和窗口管理为了保证用户体验的一致性,当应用程序不适配迁移框架时,系统将通过分布式窗口管理能力完成跨设备迁移任务。如图6所示,当用户跨设备拖动任务时,HarmonyOS系统会将任务窗口迁移到VirtualWindow(虚拟窗口)进行渲染,然后将渲染结果通过ProxyWindow(远程代理窗口)传递给软总线),从而实现跨设备展示的效果。图6分布式窗口管理示意图②分布式硬件平台和自动跟随我们知道,应用程序在运行过程中经常会用到一些硬件设备。例如:相机、麦克风或传感器。当我们将应用程序从一台设备迁移到另一台设备时,我们不仅仅需要传输用户界面和应用程序状态。如果传输后声音还在原来的设备上播放,那就奇怪了。那么在HarmonyOS中,这些硬件是如何管理的呢?为了让应用迁移过程更加一致,我们在硬件层面系统做了两件事(如图7所示):图7分布式硬件平台首先自动跟随的是“硬件资源池化”。即:HarmonyOS系统会对超级终端上所有设备的硬件进行全局编号和虚拟化,使得任何设备上的软件都可以使用所有超级终端设备中的硬件。第二件事是“自动跟随”。应用程序使用的其实是一个虚拟句柄,不绑定具体的硬件。当我们将软件实体从一台设备迁移到另一台设备时,系统中的迁移决策模块会自动将硬件也一起切换到目标设备,从而使整个用户体验保持一致。经过上面的介绍,相信大家已经了解了HarmonyOS应用框架是如何解决多设备交互问题的。HarmonyOS作为新一代智能终端操作系统,欢迎广大开发者加入我们,成为整个HarmonyOS生态的一员。让我们共同努力,为全球数十亿用户打造全新的商业生态和无限可能。更多信息请访问:Harmonyos.51cto.com,与华为官方合作打造的鸿蒙技术社区