




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八章HarmonyOS分布式應用開發武漢大學計算機學院趙小剛核心概念流轉架構分布式任務調度跨端遷移功能開發多端協同功能開發核心概念跨端遷移:一種實現用戶應用程序流轉的技術方案,指在A端運行的FA遷移到B端上,完成遷移后,B端FA繼續任務,而A端應用退出。多端協同:一種實現用戶應用程序流轉的技術方案,指多端上的不同FA/PA同時運行、或者交替運行實現完整的業務;或者,多端上的相同FA/PA同時運行實現完整的業務。多個設備作為一個整體為用戶提供比單設備更加高效、沉浸的體驗。流轉架構特性在HarmonyOS中,流轉泛指多設備分布式操作。流轉能力打破設備界限,多設備聯動,使用戶應用程序可分可合、可流轉,流轉架構對搭載HarmonyOS的多設備構筑的“超級虛擬終端”提供統一的組件管理能力,為應用屏蔽硬件差異;支持遠程啟動、遠程調用、業務無縫遷移等分布式任務。流轉架構在底層實現Ability(分布式操作的基本組件)跨設備的啟動/關閉、連接及斷開連接以及遷移等能力,實現跨設備的組件管理。Ability的調度啟動和關閉:向開發者提供管理遠程Ability的能力,即支持啟動Page模板的Ability,以及啟動、關閉Service和Data模板的Ability。連接和斷開連接:向開發者提供跨設備控制服務(Service和Data模板的Ability)的能力,開發者可以通過與遠程服務連接及斷開連接實現獲取或注銷跨設備管理服務的對象,達到和本地一致的服務調度。遷移能力:向開發者提供跨設備業務的無縫遷移能力,開發者可以通過調用Page模板Ability的遷移接口,將本地業務無縫遷移到指定設備中,打通設備間壁壘。流轉應用場景導航場景:如果用戶駕車出行,上車前,在手機上規劃好導航路線;上車后,導航自動遷移到車機和車載音箱;下車后,導航自動遷移回手機。如果用戶騎車出行,在手機上規劃好導航路線,騎行時手表可以接續導航。外賣場景:在手機上點外賣后,可以將訂單信息遷移到手表上,隨時查看外賣的配送狀態。核心概念流轉架構分布式任務調度跨端遷移功能開發多端協同功能開發流轉架構HarmonyOS流轉提供了一組API庫,可讓用戶應用程序更輕松、快捷地完成流轉體驗。HarmonyOS流轉架構有如下優勢:統一流轉管理UI,支持設備發現、選擇以及任務管理。支持遠程服務調用等能力,可輕松設計業務。支持多個應用同時進行流轉。支持不同形態設備,如手機、平板、TV、手表等。流轉架構
核心模塊流轉任務管理服務:在流轉發起端,接受用戶應用程序注冊,提供流轉入口、狀態顯示、退出流轉等管理能力。分布式任務調度:提供遠程服務啟動、遠程服務連接、遠程遷移等能力,并通過不同能力組合,支撐用戶應用程序完成跨端遷移或多端協同的業務體驗。分布式安全:提供端到端的加密通道,為用戶應用程序提供安全的跨端傳輸機制,保證“正確的人,通過正確的設備,正確地使用數據”。分布式軟總線:使用基于手機、平板、智能穿戴、智慧屏等分布式設備的統一通信基座,為設備之間的互聯互通提供統一的分布式通信能力。跨端遷移關鍵流程流轉準備:設備A上的應用向流轉任務管理服務注冊一個流轉回調;流轉開始:設備A上的應用通過調用分布式任務調度的能力,實現應用遷移:系統回調設備A上FA的onStartContinuation()方法,以確認當前FA是否可以開始遷移,onStartContinuation方法返回true,表示當前FA可以開始遷移。如果可以開始遷移,則系統回調設備A上FA的onSaveData()方法,以便保存遷移后恢復狀態必須的數據,數據保存在函數的savedData參數中。如果保存數據成功,則系統在設備B上啟動同一個FA,然后回調onRestoreData()方法,傳遞設備A上FA保存的數據,應用可在此方法恢復業務狀態;此后設備B上此FA從onInit()開始其生命周期回調。系統回調設備A上FA的onCompleteContinuation()方法,通知應用遷移成功。遷移操作完成,參數code返回結果??缍诉w移關鍵流程多端協同關鍵流程流轉進行:設備A上的應用通過調用分布式任務調度的能力,如startAbility,connectAbility等,向設備B的應用發起多端協同。協同開始設備A調用startAbility啟動設備B的FA和PA;設備A調用connectAbility連接設備B的PA:在設備A上通過本地應用提供的連接按鈕,連接設備B上指定的PA。連接后,通過其他功能相關按鈕實現控制對端PA的能力。通過連接關系,開發者可以實現跨設備的同步服務調度,實現如大型計算任務互助等價值場景。協同結束設備A調用disconnectAbility斷開與設備B的PA的連接:將之前已連接的PA斷開連接。設備A調用stopAbility關閉設備B的PA:關閉設備B上指定的PA。多端協同關鍵流程約束與限制開發者需要在Intent中設置支持分布式的標記(例如:Intent.FLAG_ABILITYSLICE_MULTI_DEVICE表示該應用支持分布式調度),否則將無法獲得分布式能力。開發者通過在config.json中的reqPermissions字段里添加多設備協同訪問的權限申請:三方應用使用{"name":"ohos.permission.DISTRIBUTED_DATASYNC"}。核心概念流轉架構分布式任務調度跨端遷移功能開發多端協同功能開發分布式任務調度的六種能力開發者在應用中集成分布式調度能力,通過調用指定能力的分布式接口,實現跨設備能力調度。根據Ability模板及意圖的不同,分布式任務調度向開發者提供以下六種能力:啟動遠程FA、啟動遠程PA、關閉遠程PA、連接遠程PA、斷開連接遠程PA和FA跨設備遷移。連接遠程PAconnectAbility(Intentintent,IAbilityConnectionconn)接口提供連接指定設備上PA的能力,Intent中指定待連接PA的設備deviceId、bundleName和abilityName。當連接成功后,通過在conn定義的onAbilityConnectDone回調中獲取對端PA的服務代理,兩者的連接關系則由conn維護。具體的參數定義如下表所示:啟動遠程FA/PAstartAbility(Intentintent)接口提供啟動指定設備上FA和PA的能力,Intent中指定待啟動FA/PA的設備deviceId、bundleName和abilityName。具體參數定義如下:分布式調度平臺還會提供與上述功能相對應的斷開遠程PA的連接和關閉遠程PA的接口,相關的參數與連接、啟動的接口類似。斷開遠程PA連接:disconnectAbility?(IAbilityConnectionconn)。關閉遠程PA:stopAbility?(Intentintent)。遷移FAcontinueAbility()接口提供將本地FA遷移到指定設備上的能力。需要實現IAbilityContinuation及其方法,才可以實現FA遷移。IAbilityContinuation的方法有:onStartContinuation()
Page請求遷移后,系統首先回調此方法,開發者可以在此回調中決策當前是否可以執行遷移,比如,彈框讓用戶確認是否開始遷移。onSaveData()如果onStartContinuation()返回true,則系統回調此方法,開發者在此回調中保存必須傳遞到另外設備上以便恢復Page狀態的數據。接口IAbilityContinuation的方法onRestoreData()源側設備上Page完成保存數據后,系統在目標側設備上回調此方法,開發者在此回調中接受用于恢復Page狀態的數據。注意,在目標側設備上的Page會重新啟動其生命周期,無論其啟動模式如何配置。且系統回調此方法的時機在onStart()之前。onCompleteContinuation()
目標側設備上恢復數據一旦完成,系統就會在源側設備上回調Page的此方法,以便通知應用遷移流程已結束。開發者可以在此檢查遷移結果是否成功,并在此處理遷移結束的動作,例如,應用可以在遷移完成后終止自身生命周期。核心概念流轉架構分布式任務調度跨端遷移功能開發多端協同功能開發跨端遷移功能開發跨設備遷移(下文簡稱“遷移”)支持將Page在同一用戶的不同設備間遷移,以便支持用戶無縫切換的訴求。以Page從設備A遷移到設備B為例,遷移動作主要步驟如下:設備A上的Page請求遷移。HarmonyOS處理遷移任務,并回調設備A上Page的保存數據方法,用于保存遷移必須的數據。HarmonyOS在設備B上啟動同一個Page,并回調其恢復數據方法。以下詳細代碼說明如何開發具有遷移功能的Page。遷移示例代碼tryContinueAbility:asyncfunction(){letresult=awaitFeatureAbility.continueAbility();("result:"+JSON.stringify(result));},onStartContinuation(){("onStartContinuation");returntrue;},onCompleteContinuation(code){("CompleteContinuation:code="+code);},onSaveData(saveData){vardata=this.continueAbilityData;Object.assign(saveData,data)},onRestoreData(restoreData){this.continueAbilityData=restoreData;},遷移運行效果核心概念流轉架構分布式任務調度跨端遷移功能開發多端協同功能開發多端協同功能開發電視機遙控器啟動遙控器點擊TV端主界面搜索框,會出現選擇手機遙控器的彈框。用戶選擇需要的手機遙控設備,點擊后會立刻拉起手機遙控輸入界面。publicvoidopenRemoteAbility(StringdeviceId,StringbundleName,StringabilityName){Intentintent=newIntent();intent.setParam("localDeviceId",localDeviceId);Operationoperation=newIntent.OperationBuilder().withDeviceId(deviceId).withBundleName(bundleName).withAbilityName(abilityName).withFlags(Intent.FLAG_ABILITYSLICE_MULTI_DEVICE).build();intent.setOperation(operation);abilitySlice.startAbility(intent);連接遠程智慧屏遙控界面FA在啟動過程中,通過initConnManager()方法,與TV端RemoteService建立連接。IntentconnectPaIntent=newIntent();Operationoperation=newIntent.OperationBuilder()bundlename....build();connectPaIntent.setOperation(operation);conn=newIAbilityConnection(){@OverridepublicvoidonAbilityConnectDone(ElementNameelementName,IRemoteObjectremote,intresultCode){proxy=newMyRemoteProxy(remote);}@OverridepublicvoidonAbilityDisconnectDone(ElementNameelementName,intresultCode){proxy=null;}};context.connectAbility(connectPaIntent,conn);}}遙控器與智慧屏交互服務端的RemoteService為ServiceAbility,專門處理發送到服務端的客戶請求。RemoteService處理請求是通過RemoteObject的子類MyRemote實現的。publicclassMyRemoteextendsRemoteObjectimplementsIRemoteBroker{
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 ISO 9538:2025 EN Aerospace series - Hydraulic tubing joints and fittings - Planar flexure test
- 【正版授權】 ISO 22734-1:2025 EN Hydrogen generators using water electrolysis - Part 1: Safety
- 【正版授權】 ISO 13669:2025 EN Fasteners - Grooved pins - General requirements
- 【正版授權】 ISO 16063-1:1998/Amd 2:2025 EN Methods for the calibration of vibration and shock transducers - Part 1: Basic concepts - Amendment 2
- 2020-2025年監理工程師之監理概論過關檢測試卷A卷附答案
- 戲曲樂器直播教學課件
- 北京市教學課件獲獎
- 分數乘乘數課件教學設計
- Brand KPIs for milk:Grahams in the United Kingdom-英文培訓課件2025
- 2025年云南省建筑安全員考試題庫及答案(試題)
- 2025年施工員-土建方向-崗位技能(施工員)考試題庫
- 河南省安陽市林州市2024-2025學年八年級下學期期末歷史試卷 (含答案)
- 胸痛單元建設課件介紹
- 超市消防安全管理制度制度
- 酒店服務流程與空間布局優化
- DB11∕T 2380-2024 城市軌道交通工程蓋挖法施工技術規程
- (2025)醫療護理員理論考試試題含答案
- 2025年貴州省中考英語真題含答案
- 2025年廣西中考語文試題卷(含答案)
- 建設工程法律培訓
- 2025年南京市中考數學真題試卷
評論
0/150
提交評論