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
    +关注

    关注

    4

    文章

    254

    浏览量

    48093
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36294

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HarmonyOS首登微信公开课,分享平台适配与体验提升实践经验

    近日,2026微信公开课PRO在广州举行。值得关注的是,HarmonyOS开发专家首次以官方分享嘉宾身份亮相开发者专场,并围绕“平台适配与体验提升”这一主题,深入剖析了微信小程序在平台开发中
    的头像 发表于 02-02 09:22 518次阅读
    <b class='flag-5'>HarmonyOS</b>首登微信公开课,分享<b class='flag-5'>跨</b>平台适配与体验提升实践经验

    “一院多区”网络实现院区数据中心业务无缝迁移

    面对院区协同、数据安全与未来扩展等核心挑战,大连经济技术开发区医院携手锐捷网络,共同 打造医疗数据中心网与新一代园区网络示范样板 ,成功实现了院区间数据中心业务的无缝迁移、无线体验升级和运维效率
    的头像 发表于 10-22 16:51 984次阅读
    “一院多区”网络实现<b class='flag-5'>跨</b>院区数据中心业务无缝<b class='flag-5'>迁移</b>

    华为正式发布HarmonyOS 6,10月22日开启公测

    10月22日,华为正式发布新一代鸿蒙操作系统HarmonyOS 6。HarmonyOS 6系统全面进化,无论是流畅度、智能化程度,还是设备协同等,都能让你感受到无缝、便捷的交互体验。
    的头像 发表于 10-22 16:19 1534次阅读
    华为正式发布<b class='flag-5'>HarmonyOS</b> 6,10月22日开启公测

    物联网平台:设备关联+拖拽式搭建

    提到物联网,很多人会想到“传感器采集数据、设备远程控制”,但很少有人知道:让分散的传感器“说话互通”、让不懂编程的人也能搭建物联网应用,背后都离不开“物联网平台”。物联网项目的“中枢大脑”,通过
    的头像 发表于 08-29 15:35 908次阅读

    Taro on HarmonyOS 技术架构深度解析

    on HarmonyOS 的技术实现方案、核心优化策略,以及开源版本的主要特性。 本文将详细介绍 Taro on HarmonyOS 的技术架构、性能优化实践和开源进展,分享我们在端开发中遇到的问题和解决思路
    的头像 发表于 08-04 16:10 924次阅读
    Taro on <b class='flag-5'>HarmonyOS</b> 技术架构深度解析

    HarmonyOS 5】鸿蒙星闪NearLink详解

    HarmonyOS 提供的短距离通信服务,支持星闪设备间的连接、数据交互。例如,手机可作为中心设备与外围设备(如鼠标、手写笔、智能家电、车钥匙等)通过星闪进行连接。 二、Near
    的头像 发表于 07-11 18:24 2055次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】鸿蒙星闪NearLink详解

    HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解

    框架的技术变革 在移动操作系统的发展历程中,UI 开发模式经历了从 命令式到声明式 的重大变革。 根据华为开发者联盟 2024 年数据报告显示,HarmonyOS 设备激活量已突破 7.3 亿台,其中
    的头像 发表于 07-07 11:57 1195次阅读
    【 <b class='flag-5'>HarmonyOS</b> 5 入门系列 】鸿蒙<b class='flag-5'>HarmonyOS</b>示例项目讲解

    HarmonyOS Next】ArkUI-X休闲益智接水果【进阶】

    本文通过ArkUI-X实现平台接水果游戏,深入探究网络图片在HarmonyOS与iOS设备上的渲染差异,并提供专业级优化方案。基于WebView的混合架构,我们实现了单代码库双端适配的高效开发
    发表于 06-28 22:14

    HarmonyOS next】ArkUI-X休闲益智记忆翻牌【进阶】

    本文通过记忆翻牌游戏实现,揭秘网络图片在HarmonyOS与iOS设备上的渲染差异,并提供专业级优化方案。基于ArkUI-X的Web组件技术,我们实现了一套代码双端运行的混合架构。 一、平台
    发表于 06-28 22:12

    HarmonyOS next】ArkUI-X休闲益智打地鼠【进阶】

    本文通过ArkUI-X的Web组件实现平台打地鼠游戏,重点解析网络图片在HarmonyOS与iOS设备上的渲染差异及优化方案。 一、平台实现方案 借助ArkUI-X的Web组件
    发表于 06-28 22:10

    HarmonyOS next】ArkUI-X休闲益智连连看【进阶】

    一套代码双端运行的平台实践 在移动应用开发中,平台技术始终是开发者追求的圣杯。借助ArkUI-X框架,我们仅用一套ArkTS代码即可实现应用在HarmonyOS和iOS双端的原生级运行。本文以
    发表于 06-28 21:51

    HarmonyOS next】ArkUI-X新闻热搜聚合App【进阶】

    API,展示了多平台榜单数据并支持网页详情查看。项目采用ArkUI框架开发,现通过ArkUI-X实现iOS平台的无缝迁移。 1.2 核心技术栈 HarmonyOS:原生开发平台 ArkUI-X:华为
    发表于 06-28 21:43

    HarmonyOS next】ArkUI-X休闲益智猜字谜【基础】

    的学习曲线(对Web开发者友好) 无缝接入HarmonyOS生态 真正的原生渲染性能 华为设备深度优化 五、开发心得 端秘籍 :使用lpx自适应单位+Flex布局,轻松应对不同屏幕 性能优化 :合理
    发表于 06-26 20:01

    ArkUI-X平台应用改造指南

    ArkUI-X平台应用改造指南 现状与诉求 随着 HarmonyOS Next 5.0 版本正式发布,众多开发者基于 ArkTS 语言为 HarmonyOS Next 系统开发了大量应用,这极大
    发表于 06-16 23:05

    HarmonyOS座舱:贴片电容ESR对多设备协同供电的影响

    本文以东莞市平尚电子科技有限公司(平尚科技)的AEC-Q200车规级贴片电容技术为核心,探讨HarmonyOS智能座舱多设备协同供电场景中ESR对系统稳定性的影响。通过低ESR导电聚合物材料、三维
    的头像 发表于 05-27 14:07 799次阅读
    ​<b class='flag-5'>HarmonyOS</b>座舱:贴片电容ESR对多<b class='flag-5'>设备</b>协同供电的影响