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

    文章

    243

    浏览量

    46447
  • HarmonyOS
    +关注

    关注

    79

    文章

    1768

    浏览量

    29230

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

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

收藏 人收藏

    评论

    相关推荐

    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 跨设备迁移

    A 上的 Page 请求迁移HarmonyOS 处理迁移任务,并回调设备 A 上 Page 的保存数据方法,用于保存迁移必须的数据。
    的头像 发表于 01-31 15:47 850次阅读

    harmonyos和安卓的区别

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

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

    ”下拉框仅筛选出HarmonyOS应用,或点击“支持设备”按设备类型筛选查找。 3.点击待发布的HarmonyOS应用名称,在左侧导航栏选择“应用信息”菜单。 4.如果开发者尚未签署
    发表于 11-24 14:44

    【鸿蒙生态千帆起】HarmonyOS系统级地图与位置服务,赋能广大开发者

    呈现,提供立体地形图层服务,能更直观展示地形信息。 此外,还支持地图样式、标记、覆盖物、瓦片图层等个性化设置。结合HarmonyOS在车机、手机、智能穿戴设备等多终端互联互通上的优势,地图服务亦可完成
    发表于 11-22 10:37

    navicat的数据迁移工具

    数据迁移是当今数据管理的核心任务之一。在数据迁移的过程中,我们经常面临着数据库结构不同和数据量庞大等难题。而Navicat作为一款功能强大的数据库管理工具,其数据迁移工具更是为我们解决了这些
    的头像 发表于 11-21 10:55 426次阅读

    详解半导体中的银迁移现象

    半导体设备中的一种现象—银迁移(SilverMigration)对可靠性(由于银涂层、银焊接和金属银作为电极,绝缘电阻会降低,最终形成短路,导致故障)的影响。当然,这种金属迁移不仅发生在银上,还发生在其他金属元素(铅、铜、锡、金
    的头像 发表于 11-06 13:05 707次阅读
    详解半导体中的银<b class='flag-5'>迁移</b>现象

    OpenHarmony应用模型的构成要素与Stage优势

    迁移和多端协同 Stage模型实现了应用组件与UI解耦: 在迁移场景下,系统在多设备的应用组件之间迁移数据/状态后,UI便可利用ArkU
    发表于 09-26 16:48

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

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

    当华为WATCH 4系列遇上HarmonyOS 4,更精彩的腕上鸿蒙世界

    8月4日下午,在华为HDC 2023暨HarmonyOS 4发布会上,华为常务董事、终端BG CEO余承东宣布,全新HarmonyOS 4正式发布。在会上,华为宣布截至目前鸿蒙生态设备已达
    的头像 发表于 08-07 09:28 1145次阅读

    【直播预告】HarmonyOS极客松赋能直播第四期:HarmonyOS开发经验分享

    Release新版发布 HarmonyOS Connect认证测试 原文标题:【直播预告】HarmonyOS极客松赋能直播第四期:HarmonyOS开发经验分享 文章出处:【微信公众号:Ha
    的头像 发表于 07-03 09:05 331次阅读
    【直播预告】<b class='flag-5'>HarmonyOS</b>极客松赋能直播第四期:<b class='flag-5'>HarmonyOS</b>开发经验分享

    HarmonyOS云开发:舒尔特方格游戏

    为丰富 HarmonyOS 对云端开发的支持、实现 HarmonyOS 生态端云联动,DevEco Studio 推出了云开发功能,开发者在创建工程时选择云开发模板。
    的头像 发表于 06-19 15:05 484次阅读
    <b class='flag-5'>HarmonyOS</b>云开发:舒尔特方格游戏

    HarmonyOS Codelabs最新参考

    HarmonyOS Codelabs最新参考 作者:坚果 团队:坚果派 公众号:“大前端之旅” 润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,擅长HarmonyOS
    的头像 发表于 04-25 15:40 583次阅读
    <b class='flag-5'>HarmonyOS</b> Codelabs最新参考