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

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

3天内不再提示

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

HarmonyOS开发者 来源:HarmonyOS开发者 作者:zhenyu 2021-06-25 17:32 次阅读

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

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

典型应用场景举例:

导航场景

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

办公场景

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

娱乐场景

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

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

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

分布式任务调度

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

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

● 分布式软总线实现了近场设备间统一的分布式通信能力管理,提供不区分链路的设备发现、连接、组网和传输能力。开发者可无需关注设备间组网方式与底层协议,集中精力实现业务逻辑功能。

● 分布式数据管理中的数据同步能力可实现组网内的设备信息共享实时同步,如设备上下线、设备信息列表等,方便多设备信息实时同步。

● 分布式Profile实现多设备Profile的统一查询、订阅能力,拉通多设备之间的管理。

● 分布式安全认证提供应用完整性保护、应用权限管理、设备认证、密钥管理等服务,为业务提供安全保障基础。

分布式任务调度基于以上技术特性基座,构建统一的分布式服务管理机制,完成了分布式组网内设备中的系统服务信息同步及管理,包括服务注册、服务发现、服务同步和服务调度。

在业务发起“跨设备迁移”请求时,分布式调度系统根据调度决策机制选择目标设备,并获取对应设备的系统服务信息,在系统服务成功调度后,向目标设备发起远程启动、远程调用、远程连接和远程迁移,由对应设备的分布式任务调度系统完成本地化的任务执行。

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

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

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

● Ability概述

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-ability-overview-0000000000029852

HarmonyOS的应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。

● FA有UI界面,提供与用户交互的能力

FA仅支持Page Ability,一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。

● Page Ability基本概念

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-page-concept-0000000000033573● PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象

PA支持Service Ability和Data Ability:

Service Ability:用于提供后台运行任务的能力。

Data Ability:用于对外部提供统一的数据访问抽象。

Ability的生命周期主要用于Page实例的状态机管理,系统管理或用户操作等行为均会引起Page实例在其生命周期的不同状态之间进行转换。Ability Class提供的回调机制能够让Page及时感知外界变化,从而正确地应对状态变化。

● Page Ability生命周期

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-page-lifecycle-0000000000029840

“跨设备迁移”的处理依赖Ability的生命周期管理来完成Page的状态切换,同时Page在生命周期回调中处理数据的保存与恢复。

● onStart()

当系统首次创建Page实例时触发。应用须重写该方法,并在此初始化配置为展示AbilitySlice。Page在此后进入INACTIVE状态,用户不可交互。

● onActive()

当Page从INACTIVE状态切换到前台时触发。Page在此之后进入ACTIVE状态,该状态下,应用与用户处于可交互的状态。

● onInactive()

当Page即将进入不可交互状态时会被触发,Page在此之后进入INACTIVE状态,应用与用户不可交互。

● onBackground()

当Page不再对用户可见时触发。Page在此之后进入BACKGROUND状态。

● onForeground()

当Page从BACKGROUND状态重新回到前台时触发。Page在此之后回到INACTIVE状态。

● onStop()当系统将要销毁Page时触发。迁移流程围绕Ability的生命周期,我们来看看业务“跨设备迁移”的具体流程。

业务“跨设备迁移”的本质即通过分布式组网把一个设备的“Ability运行状态”迁移到另外一台设备上。

程序中“跨设备迁移”通过调用Page Ability的迁移接口ContinueAbility,将设备A的业务无缝迁移到指定设备B中。其中,支持迁移的Page以及此Page所包含的所有AbilitySlice必须实现IAbilityContinuation接口。具体接口代码如下:

public interface IAbilityContinuation { //是否可迁移 boolean onStartContinuation();

//保存数据 boolean onSaveData(IntentParams var1);

//恢复数据 boolean onRestoreData(IntentParams var1);

//迁移完成 void onCompleteContinuation(int var1);

default void onRemoteTerminated() { throw new RuntimeException(“Stub!”); }}

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

1设备A上的Page调用continueAbility请求迁移。2HarmonyOS处理迁移任务,并回调设备A上Page的保存数据方法onSaveData,用于保存迁移必须的Page数据。3HarmonyOS将Page数据从设备A迁移到设备B。4HarmonyOS在设备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()开始其生命周期回调。4HarmonyOS回调设备A上Page及其AbilitySlice栈中所有AbilitySlice实例的onCompleteContinuation()方法,通知设备A迁移结果即数据恢复成功与否。

了解完具体流程,下面我们给大家推荐一个HarmonyOS“跨设备迁移”动手实践的Demo。

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

我们为大家带来一个办公场景下“基于分布式的协同邮件编辑”Demo,作为“跨设备迁移”应用的开发实例。该实例通过模拟不同设备间协同的邮件内容编辑来做一个“内容”跨设备迁移的演示。目前该Demo已在HarmonyOS官网Codelabs中上线,感兴趣的同学可以参考其具体流程,动手开发一个“跨设备迁移”邮箱Demo。

● 官网链接:

https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/Distributed-Mail

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

编辑:jq

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

    关注

    3

    文章

    245

    浏览量

    46840
  • HarmonyOS
    +关注

    关注

    79

    文章

    1972

    浏览量

    30123

原文标题:HarmonyOS “跨设备迁移”原理解析

文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    突破网段通讯问题:不同网段PLC设备如何通讯?

    突破网段通讯问题:不同网段PLC设备如何通讯? PLC在不同网段如何通讯呢? 通常以太网或其他工业网络协议(如PROFINET、Modbus TCP等)进行通信。当PLC位于不同的网段时,它们
    的头像 发表于 12-10 11:55 172次阅读
    突破<b class='flag-5'>跨</b>网段通讯问题:不同网段PLC<b class='flag-5'>设备</b>如何通讯?

    揭秘动态化端框架在鸿蒙系统下的高性能解决方案

    作者:京东科技 胡大海 前言 动态化端框架 (后文统称“ 动态化” ) 是一个由京东金融大前端团队全自主研发的,一份代码,可以在 HarmonyOS、 iOS、Android、Web四端运行的
    的头像 发表于 10-08 13:46 766次阅读
    揭秘动态化<b class='flag-5'>跨</b>端框架在鸿蒙系统下的高性能解决方案

    网段IP耦合器实现工业设备快速接入物联网平台

    在现代工业自动化领域,随着设备数量的不断增加和网络结构的日益复杂,网段通信成为了一个亟需解决的问题。设备间的通信往往受限于其IP地址所在的网段,同网段的设备可以相互访问;而分布在不同
    的头像 发表于 09-27 10:52 258次阅读
    <b class='flag-5'>跨</b>网段IP耦合器实现工业<b class='flag-5'>设备</b>快速接入物联网平台

    华为HarmonyOS NEXT 10月8日开启公测

    华为宣布,万众瞩目的HarmonyOS NEXT操作系统将于10月8日正式开启公测,标志着这一创新力作即将与广大用户见面。HarmonyOS NEXT作为华为自研操作系统的最新成果,不仅全面升级了系统内核,实现了
    的头像 发表于 09-24 15:41 785次阅读
    华为<b class='flag-5'>HarmonyOS</b> NEXT 10月8日开启公测

    谷歌推出革新性的设备共享功能

    7月30日,科技界迎来重大消息,谷歌正式揭晓了其设备体验领域的里程碑式进展,隆重推出了革新性的设备共享功能,为用户开启了前所未有的设备
    的头像 发表于 07-30 16:41 547次阅读

    HarmonyOS NEXT Developer Beta1最新术语表

    。 ArkUI 方舟开发框架,是为HarmonyOS平台开发极简、高性能、设备应用设计研发的UI开发框架,支撑开发者高效地构建设备应用U
    发表于 06-27 16:16

    国产系统重要突破!深开鸿KaihongOS率先连接HarmonyOS Next,实现生态互联

    合作伙伴和OpenHarmony核心共建单位,其国产操作系统KaihongOS已经成功与HarmonyOSNext实现了生态的互联互通。作为基于OpenHarmon
    的头像 发表于 06-25 11:24 521次阅读
    国产系统重要突破!深开鸿KaihongOS率先连接<b class='flag-5'>HarmonyOS</b> Next,实现<b class='flag-5'>跨</b>生态互联

    鸿蒙开发:应用组件设备交互(流转)【迁移

    迁移的核心任务是将应用的当前状态(包括页面控件、状态变量等)无缝迁移到另一设备,从而在新设备上无缝接续应用体验。这意味着用户在一台
    的头像 发表于 06-11 17:10 1225次阅读
    鸿蒙开发:应用组件<b class='flag-5'>跨</b><b class='flag-5'>设备</b>交互(流转)【<b class='flag-5'>跨</b>端<b class='flag-5'>迁移</b>】

    鸿蒙ArkTS声明式开发:平台支持列表【分布式迁移标识】 通用属性

    组件的分布式迁移标识,指明了该组件在分布式迁移场景下可以将特定状态恢复到对端设备
    的头像 发表于 06-07 21:15 387次阅读

    2024款鸿蒙OS 最新HarmonyOS Next_HarmonyOS4.0系列教程分享

    鸿蒙的出现,标志着中国科技的崛起。HarmonyOS就是我们说的华为鸿蒙系统,截止到2023年8月4日已有超过7亿台设备搭载了鸿蒙OS系统。据多家媒体报道,2024年国内有21所985大学都开设
    发表于 02-28 10:29

    HarmonyOS开发技术全面分析

    、调用)机制,支持对设 备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布
    发表于 02-21 16:31

    鸿蒙OS 设备迁移

    设备迁移(下文简称“迁移”)支持将 Page 在同一用户的不同设备迁移,以便支持用户无缝切换
    的头像 发表于 01-31 15:47 1129次阅读

    PLC网段通信如何解决(如何通过以太网实现网段通信)

    网段通信是指不在同一网段的IP地址的设备之间的通信。比如我们通过互联网给远在海外的PLC设备进行远程调试,又比如我们在办公室利用局域网监控车间某个设备的PLC,这些场合都需要用到
    的头像 发表于 01-29 17:34 1334次阅读
    PLC<b class='flag-5'>跨</b>网段通信如何解决(如何通过以太网实现<b class='flag-5'>跨</b>网段通信)

    鸿蒙OS 分布式任务调度

    形式、数据结构、服务描述语言,屏蔽硬件差异;支持远程启动、远程调用、业务无缝迁移等分布式任务。 分布式任务调度平台在底层实现 Ability(分布式任务调度的基本组件)设备的启动/关闭、连接及断开连接以及
    的头像 发表于 01-29 16:50 482次阅读

    harmonyos和安卓的区别

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