成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HarmonyOS “跨設備遷移”原理解析

系統 OpenHarmony
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com

[[405943]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

什么是HarmonyOS“跨設備遷移”?

HarmonyOS“跨設備遷移”是指將承載業務的Page在同一用戶的不同設備間遷移,以便支持用戶業務無縫切換的訴求。“跨設備遷移”實現了業務跨設備流轉功能,打破業務受限單設備的壁壘。

典型應用場景舉例:

圖1 設備A完成郵件編寫并選擇附件,流轉到另一設備

圖2 設備B彈出郵件界面,可繼續完成郵件編寫

HarmonyOS“跨設備遷移”的技術原理

HarmonyOS“跨設備遷移”需要用到一項關鍵技術——“分布式任務調度”。

分布式任務調度

“跨設備遷移”依賴HarmonyOS系統中分布式任務調度的“業務遷移能力”。

圖3 分布式任務調度所處位置

“分布式任務調度”基于分布式軟總線、分布式數據管理、分布式Profile和分布式安全認證這四項技術特性,構建統一的分布式服務管理(發現、同步、注冊、調用)機制,支持對跨設備的應用進行遠程啟動、遠程調用、遠程連接以及遷移等操作。

圖4 分布式任務調度

● 分布式軟總線實現了近場設備間統一的分布式通信能力管理,提供不區分鏈路的設備發現、連接、組網和傳輸能力。開發者可無需關注設備間組網方式與底層協議,集中精力實現業務邏輯功能。

● 分布式數據管理中的數據同步能力可實現組網內的設備信息共享實時同步,如設備上下線、設備信息列表等,方便多設備信息實時同步。

● 分布式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)組成。

圖5 Ability分類

● FA有UI界面,提供與用戶交互的能力

FA僅支持Page Ability,一個Page實例可以包含一組相關頁面,每個頁面用一個AbilitySlice實例表示。

圖6 Page組成

● 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在生命周期回調中處理數據的保存與恢復。具體流程如下圖所示:

圖7 Ability生命周期流程

● 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接口。具體接口代碼如下:

  1. public interface IAbilityContinuation { 
  2.   //是否可遷移 
  3.     boolean onStartContinuation(); 
  4.  
  5.   //保存數據 
  6.     boolean onSaveData(IntentParams var1); 
  7.  
  8.   //恢復數據 
  9.     boolean onRestoreData(IntentParams var1); 
  10.  
  11.   //遷移完成 
  12.     void onCompleteContinuation(int var1); 
  13.  
  14.     default void onRemoteTerminated() { 
  15.         throw new RuntimeException("Stub!"); 
  16.     } 

圖8 業務“跨設備遷移”流程

“跨設備遷移”關鍵步驟:

“跨設備遷移”數據流轉過程:

HarmonyOS“跨設備遷移”動手實例

我們為大家帶來一個辦公場景下“基于分布式的協同郵件編輯”Demo,作為“跨設備遷移”應用的開發實例。該實例通過模擬不同設備間協同的郵件內容編輯來做一個“內容”跨設備遷移的演示。

目前該Demo已在HarmonyOS官網Codelabs中上線,感興趣的同學可以參考其具體流程,動手開發一個“跨設備遷移”郵箱Demo。

● Codelabs鏈接

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

通過這一系列的解析,開發者們是不是對HarmonyOS“跨設備遷移”技術有了更深的了解,未來我們還將為大家帶來更多HarmonyOS相關技術解讀。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-01-06 11:21:56

鴻蒙HarmonyOS應用開發

2023-02-28 09:07:18

ChatGPTAI

2021-08-13 13:53:23

鴻蒙HarmonyOS應用

2019-12-06 10:59:20

JavaScript運行引擎

2021-07-12 09:45:36

NameServer 核心Conusmer

2021-01-12 14:46:34

Kubernetes開發存儲

2021-07-05 07:51:43

JVM底層Python

2021-12-21 09:56:47

鴻蒙HarmonyOS應用

2021-12-01 18:36:35

屬性

2023-08-11 07:44:40

TCP滑動窗口數據

2020-05-21 13:25:43

Spring組件架構

2020-11-05 10:05:25

App

2024-06-27 08:26:10

LooperAndroid內存

2015-08-19 10:36:24

Zigbee技術無線通信

2023-11-16 09:01:37

Hadoop數據庫

2015-08-18 09:40:32

OpenStack Neutron虛擬網絡

2010-07-06 10:07:10

jQueryJSON

2015-07-01 13:34:22

Kubernetes應用部署模型

2021-11-03 09:51:45

鴻蒙HarmonyOS應用

2017-05-25 11:08:20

虛擬化云計算在線遷移
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费啪啪| 亚洲国产一区二区视频 | 91视频在线看 | 精品国产乱码久久久久久1区2区 | 日韩久久久久 | 少妇黄色 | 午夜视频免费在线观看 | 日本一二三区在线观看 | 国产成人jvid在线播放 | 国产一区二区精 | www.黄网| 欧美极品在线视频 | 成人免费在线电影 | 欧美激情国产日韩精品一区18 | 在线午夜 | 国产成人精品一区二区三区在线 | 九九伦理电影 | 亚洲在线中文字幕 | 亚洲成人三级 | 久久精品视频在线观看 | 成人在线黄色 | 一区二区三区福利视频 | 色网站在线 | 国产精品一区二区三区四区五区 | 日韩一级一区 | 久久国产精品72免费观看 | 午夜小视频在线播放 | 国产午夜精品一区二区三区在线观看 | 国产超碰人人爽人人做人人爱 | 天天射中文 | 亚洲成人午夜电影 | 国产精品国产三级国产aⅴ中文 | 国产一级片免费在线观看 | 国产精品免费一区二区三区四区 | 日本不卡一区二区三区在线观看 | 成人国产综合 | 国产精品综合视频 | 国产免费一区 | 成人av一区二区亚洲精 | 久久不卡 | 日韩av电影在线观看 |