HarmonyOS 鸿蒙Next【HarmonyOS工具链】HarmonyOS“跨设备迁移”原理解析

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next【HarmonyOS工具链】HarmonyOS“跨设备迁移”原理解析 作者:zhenyu,华为软件开发工程师

什么是HarmonyOS“跨设备迁移”?

HarmonyOS“跨设备迁移”是指将承载业务的Page在同一用户的不同设备间迁移,以便支持用户业务无缝切换的诉求。“跨设备迁移”实现了业务跨设备流转功能,打破业务受限单设备的壁垒。

典型应用场景举例:

  • 导航场景

    如果用户驾车出行,上车前,在手机上规划好导航路线;上车后,导航自动迁移到车机和车载音箱;下车后,导航自动迁移回手机。如果用户骑车出行,在手机上规划好导航路线,骑行时手表可以接续导航。

  • 办公场景

    大屏上呈现的文档,PAD或者手机可以跨设备编辑。

  • 娱乐场景

    电影视频从客厅电视到房间PAD跨设备接续播放。

HarmonyOS“跨设备迁移”的技术原理

HarmonyOS“跨设备迁移”需要用到一项关键技术——“分布式任务调度”。

分布式任务调度

“跨设备迁移”依赖HarmonyOS系统中分布式任务调度的“业务迁移能力”。

“分布式任务调度”基于分布式软总线、分布式数据管理、分布式Profile和分布式安全认证这四项技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作。

HarmonyOS“跨设备迁移”的具体实现流程

HarmonyOS“跨设备迁移”依赖“Ability”实现,这里我们简单介绍一下“Ability”。

Ability

Ability是应用所具备能力的抽象,HarmonyOS支持应用以Ability为单位进行部署。业务“跨设备迁移”的基础粒度也是Ability,具体实现是在不同设备间同一应用的同名Ability之间进行迁移。

“跨设备迁移”关键步骤:

  1. 设备A上的Page调用continueAbility请求迁移。
  2. HarmonyOS处理迁移任务,并回调设备A上Page的保存数据方法onSaveData,用于保存迁移必须的Page数据。
  3. HarmonyOS将Page数据从设备A迁移到设备B。
  4. HarmonyOS在设备B上启动同一个Page,并回调onRestoreData恢复Page数据。

“跨设备迁移”数据流转过程:

  1. 设备A上的Page请求迁移到设备B(调用continueAbility)后,HarmonyOS回调设备A上该Page及其AbilitySlice栈中所有AbilitySlice实例的onStartContinuation()方法,以确认当前是否可以迁移。True代表可执行迁移。
  2. 若可执行迁移,则HarmonyOS回调设备A上Page及其AbilitySlice栈中所有AbilitySlice实例的onSaveData()方法,由该Page保存必须传递到接收端设备B的Page状态数据。
  3. 若数据保存成功,则分布式调度系统通过RPC通信,在设备B上启动同一个Page,并恢复对应的AbilitySlice栈,然后回调设备B上该Page的onRestoreData()方法,传递此前保存的数据;此后设备B上此Page从onStart()开始其生命周期回调。
  4. HarmonyOS回调设备A上Page及其AbilitySlice栈中所有AbilitySlice实例的onCompleteContinuation()方法,通知设备A迁移结果即数据恢复成功与否。

HarmonyOS“跨设备迁移”动手实例

我们为大家带来一个办公场景下“基于分布式的协同邮件编辑”Demo,作为“跨设备迁移”应用的开发实例。该实例通过模拟不同设备间协同的邮件内容编辑来做一个“内容”跨设备迁移的演示。

目前该Demo已在HarmonyOS官网Codelabs中上线,感兴趣的同学可以参考其具体流程,动手开发一个“跨设备迁移”邮箱Demo。

通过这一系列的解析,开发者们是不是对HarmonyOS“跨设备迁移”技术有了更深的了解,未来我们还将为大家带来更多HarmonyOS相关技术解读,也欢迎大家评论区留言,告诉我们更多你想听的技术内容,我们将逐一为大家奉上~


更多关于HarmonyOS 鸿蒙Next【HarmonyOS工具链】HarmonyOS“跨设备迁移”原理解析的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

老师您好,有个问题想请教您,多端协同需要登录同一个华为账号吗?

需求场景:我们这边有一个市场营销软件,简称为移动作业平台,目前是在Pad上,可以进行A/B面切换,A面主要由客户经理操作,B面主要面向客户,客户在B面进行相关操作。

基于鸿蒙系统万物互联的思想,提出如下设想:在作业平台Pad端和客户手机是鸿蒙系统的前提下,通过作业平台Pad启动B面时,将其B面投屏或者同步到客户手机上,由客户自行操作,并将结果或数据同步回作业平台Pad,方便快捷的完成相关操作。

现有以下困惑:

  1. 这样的操作是否能实现?
  2. 通过哪种方式进行,跨设备转移还是多端协同?
  3. 查阅文档,跨设备转移需要满足同一网络、登录同一华为账号等要求,那么作业平台Pad和客户手机是否需要登录同一个华为账号?
  4. 客户手机是否需要提前安装同样的移动作业平台 APP?

还望老师答疑解惑,非常感谢!

更多关于HarmonyOS 鸿蒙Next【HarmonyOS工具链】HarmonyOS“跨设备迁移”原理解析的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS鸿蒙Next的“跨设备迁移”原理主要基于分布式技术框架实现。这一框架允许不同的鸿蒙设备在逻辑上形成一个超级终端,从而实现数据和应用的无缝迁移。

具体来说,跨设备迁移功能依赖于鸿蒙系统的四大核心技术:分布式软总线、分布式数据管理、分布式任务调度和分布式安全。分布式软总线是设备间通信的基础,它实现了设备间的无差别连接和高效数据传输。分布式数据管理则确保了数据在不同设备间的一致性和同步性,使得用户可以在不同设备上无缝继续之前的工作或娱乐。

分布式任务调度技术使得应用可以根据设备的性能和用户的使用习惯,智能地在不同设备间迁移任务,从而提升用户体验。而分布式安全技术则保障了整个迁移过程中的数据安全,防止数据泄露或被篡改。

通过这些核心技术,鸿蒙系统实现了真正的设备无界,让用户可以随时随地享受到连续、一致的服务体验。例如,用户可以在手机上开始观看一部电影,然后无缝迁移到平板或电视上继续观看,而无需重新加载或中断播放。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部