0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

话说科技 来源:话说科技 作者:话说科技 2021-08-11 11:02 次阅读

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

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

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

如图1所示,纵观人机交互历史,有以下几个关键时间点:

1868年,打字机的出现解决了人机交互中文字输入的问题

1964年,鼠标的出现解决了人机交互中图形界面交互的问题

2007年,多指手势的出现解决了触摸屏的交互问题

d23fd1ca14ba461cb94d9d9b37c6a7a0?from=pc

图1 人机交互模式图

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

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

e8826fd87fcc46669f4b128e9c159d41?from=pc

图2 多设备交互模型图

1.同时使用(Simultaneous)

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

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

2.相继使用(Sequential)

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

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

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


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

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

9ec3c12925f0461e8f81a613e53fb8a1?from=pc

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

Layer1是底层软件,包括内核、驱动和还有软总线,这一层与开发者距离相对较远。

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

Layer3是应用框架的核心服务,大体可以分为两块:一块是全局包管理,一块是分布式运行管理。与传统的操作系统不同,HarmonyOS上的包管理,需要处理整个超级终端上所有设备的包信息,因此我们称之为全局包管理。而对于分布式运行管理,将在下文重点介绍,其中包含了协同和迁移框架。

Layer4是开发者所使用的编程接口层。尽管系统底层的实现非常复杂,但是我们在第四层为开发者提供了简洁的接口。

Layer5是开发应用的用户程序层,这一层与开发者联系密切。

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

1.多端协同框架

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

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

76f5cb9aa9c84d158c11f4a853ae1b1c?from=pc

图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所示)

415ac15d3c0e4d06ab52c9f689cbb434?from=pc

图5 跨端迁移

跨端迁移是一种实现用户应用程序流转的技术方案,是将设备1端运行的FA迁移到设备2端上,通过IAbilityContinuation实现业务迁移。完成迁移后, 设备2端的FA继续任务,而设备1端应用退出。当用户将任务从一台设备拖动到另外一台设备上时,应用程序会收到来自系统的调用,此时应用程序可以将自己需要保存的状态告知系统,系统会借助于分布式任务管理将数据传递到目标端,然后拆包数据并恢复应用状态。在这种情况下,用户感受到的就是将任务从一个设备迁移到了另外一个设备。

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

①跨端迁移与窗口管理

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

b517dedb68054f06994bb962a2d78e39?from=pc

图6 分布式窗口管理图

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

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

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

262f6f54777544a2ae7be8c27185cd4a?from=pc

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

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

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

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

作为新一代的智能终端操作系统,HarmonyOS非常欢迎广大开发者加入我们,成为整个鸿蒙生态的一员,让我们一起,为全球几十亿用户共筑全新的商业生态以及无限可能。

fqj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 设备
    +关注

    关注

    2

    文章

    4169

    浏览量

    69156
  • HarmonyOS
    +关注

    关注

    79

    文章

    1780

    浏览量

    29234
收藏 人收藏

    评论

    相关推荐

    润开鸿获鸿蒙先锋授牌,荣膺华为HarmonyOS开发服务商

    3月27日,华为HDD行业沙龙在北京举办,本次活动由HarmonyOS产品专家带来了精彩的议题分享,涵盖HarmonyOS操作系统介绍、HarmonyOS应用特性分享、意图框架介绍、行
    的头像 发表于 03-29 10:33 115次阅读
    润开鸿获鸿蒙先锋授牌,荣膺华为<b class='flag-5'>HarmonyOS</b>开发服务商

    HarmonyOS开发技术全面分析

    层是 HarmonyOS 的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分: ⚫ 系统基本能力子系统集 :为分布式应用在 HarmonyOS
    发表于 02-21 16:31

    鸿蒙原生应用元服务实战-发布时设备选择注意事项

    在可公开可获取DevEco Studio最新版本,Stage模型ArkTSAPI9开发元服务HarmonyOS4现不支持平板等;但是元服务在发布时是可选平板、智慧屏电视设备发布。 如果开发人员与上架
    发表于 02-21 10:22

    鸿蒙开发丨设备内 UIAbility 的几种交互方式

    UIAbility 组件间交互设备内) 在设备内,UIAbility(用户界面能力)是系统调度的最小单元,它们负责展示用户界面和执行相关的业务逻辑。设备内的不同功能模块之间的
    的头像 发表于 02-02 10:42 211次阅读
    鸿蒙开发丨<b class='flag-5'>设备</b>内 UIAbility 的几种<b class='flag-5'>交互</b>方式

    harmonyos和安卓的区别

    和安卓的比较分析。 一、架构设计: HarmonyOS采用了分布式架构设计,可以应用于多种终端设备,从手机到智能家居、汽车等,实现设备之间的协同工作和资源共享。而安卓主要是面向手机和平板等消费电子
    的头像 发表于 01-10 17:55 1021次阅读

    HamronyOS自动化测试框架使用指南

    概述 为支撑 HarmonyOS 操作系统的自动化测试活动开展,我们提供了支持 JS/TS 语言的单元及 UI 测试框架,支持开发者针对应用接口进行单元测试,并且可基于 UI 操作进行 UI 自动化
    发表于 12-19 10:26

    异步信号与同步电路交互的问题及其解决方法

    不良影响。本文将详细介绍异步信号与同步电路交互问题的背景、常见的问题及其解决方法。 一、背景 在现代电子系统中,通信和交互已经成为不可或缺的一部分。为了实现设备之间的信息传递和控制,我们常常会使用各种不同的信号
    的头像 发表于 12-07 10:53 271次阅读

    鸿蒙原生应用/元服务开发-AGC分发如何上架HarmonyOS应用

    应用素材。如果选择分发到设备,请在各设备标签页分别上传对应的应用素材。 7.配置HarmonyOS应用的“应用分类”。 8.配置HarmonyOS
    发表于 11-24 14:44

    HarmonyOS 上实现 ArkTS 与 H5 的交互

    。 @ohos.web.webview:提供web控制能力。 完整示例 gitee源码地址 源码下载 ArkTS与H5的交互(ArkTS).zip 环境搭建 我们首先需要完成HarmonyOS开发
    发表于 11-13 17:08

    HarmonyOS\"一次开发,多端部署\"优秀实践——玩机技巧,码上起航

    常用的应用,通过\"一\",部署在手机、折叠屏、平板等设备上,不仅获得了体验提升,开发代码量也下降了约40%。下文,我们将从架构设计、UI设计、交互设计和上架4个层面对玩机
    发表于 08-30 18:14

    HarmonyOS NEXT新能力,一站式高效开发HarmonyOS应用

    更复杂应用开发。首先HarmonyOS支持大型应用模块化开发,并且支持通过轻量化应用组件,减少运行资源占用。同时,通过ArkUI跨平台框架的能力,可以实现一次开发, 平台运行,高度复用代码,大幅提升
    发表于 08-14 15:08

    面向万物智联的应用框架的思考与探索

    Android首选的编程语言,并在2021年推出基于Kotlin的应用框架Jetpack Compose, 同时结合开发工具Android Studio逐步往设备以及跨平台演进。 ■ 总体而言,移动端
    发表于 08-08 17:04

    不同设备如何统一语言编程平台高效开发?本文为你揭秘

    交互匮乏、体验割裂,难以为用户带来一致性的应用交互体验。 HarmonyOS是一款面向全场景的分布式操作系统,能够兼容手机、平板、PC、智慧屏、智能手表、车机等智能设备。我们知道,
    的头像 发表于 05-11 20:16 470次阅读

    HarmonyOS服务卡片跑AIGC

    我们认为基于 AIGC 能力类型的 HarmonyOS 元服务万能卡片应该通过 API 方式调用合规训练后的各具特色的模型与角色来服务用户,通过万能卡片、智能语音、手势动作等更加自然友好的方式来和用户交互
    的头像 发表于 04-25 09:40 1737次阅读
    <b class='flag-5'>HarmonyOS</b>服务卡片跑AIGC

    APDU指令交互响应没有响应内容,只有一个状态码,如何解决?

    APDU指令交互响应没有响应内容,只有一个状态码,如何解决?谢谢! 问题现象:(例) 测试顺序是一个选择文件->获取应用版本号的过程,如NCF3320的日志所示
    发表于 04-23 07:19