流轉(zhuǎn)概述
介紹
隨著全場(chǎng)景多設(shè)備生活方式的不斷深入,用戶擁有的設(shè)備越來(lái)越多,每個(gè)設(shè)備都能在適合的場(chǎng)景下提供良好的體驗(yàn),例如:手表可以提供及時(shí)的信息查看能力,電視可以帶來(lái)沉浸的觀影體驗(yàn)。但是,每個(gè)設(shè)備也有使用場(chǎng)景的局限,例如:在電視上輸入文本相對(duì)手機(jī)來(lái)說(shuō)是非常糟糕的體驗(yàn)。當(dāng)多個(gè)設(shè)備通過(guò)分布式操作系統(tǒng)能夠相互感知、進(jìn)而整合成一個(gè)超級(jí)終端時(shí),設(shè)備與設(shè)備之間就可以取長(zhǎng)補(bǔ)短、相互幫助,為用戶提供更加自然流暢的分布式體驗(yàn)。
基本概念
- 流轉(zhuǎn):在HarmonyOS中泛指多設(shè)備分布式操作。流轉(zhuǎn)能力打破設(shè)備界限,多設(shè)備聯(lián)動(dòng),使用戶應(yīng)用程序可分可合、可流轉(zhuǎn),實(shí)現(xiàn)如郵件跨設(shè)備編輯、多設(shè)備協(xié)同健身、多屏游戲等分布式業(yè)務(wù)。流轉(zhuǎn)為開發(fā)者提供更廣的使用場(chǎng)景和更新的產(chǎn)品視角,強(qiáng)化產(chǎn)品優(yōu)勢(shì),實(shí)現(xiàn)體驗(yàn)升級(jí)。流轉(zhuǎn)按照體驗(yàn)可分為跨端遷移和多端協(xié)同。
- 跨端遷移:一種實(shí)現(xiàn)用戶應(yīng)用程序流轉(zhuǎn)的技術(shù)方案,指在A端運(yùn)行的FA遷移到B端上,完成遷移后, B端FA繼續(xù)任務(wù),而A端應(yīng)用退出。在用戶使用設(shè)備的過(guò)程中,當(dāng)使用情境發(fā)生變化時(shí)(例如:從室內(nèi)走到戶外或者周圍有更合適的設(shè)備等),之前使用的設(shè)備可能已經(jīng)不適合繼續(xù)當(dāng)前的任務(wù),此時(shí),用戶可以選擇新的設(shè)備來(lái)繼續(xù)當(dāng)前的任務(wù)。常見的跨端遷移場(chǎng)景實(shí)例:
- 視頻來(lái)電時(shí)從手機(jī)遷移到智慧屏,視頻聊天體驗(yàn)更佳,手機(jī)視頻應(yīng)用退出。
- 手機(jī)上閱讀應(yīng)用瀏覽文章,遷移到平板上繼續(xù)查看,手機(jī)閱讀應(yīng)用退出。
- 多端協(xié)同:一種實(shí)現(xiàn)用戶應(yīng)用程序流轉(zhuǎn)的技術(shù)方案,指多端上的不同F(xiàn)A/PA同時(shí)運(yùn)行、或者交替運(yùn)行實(shí)現(xiàn)完整的業(yè)務(wù);或者,多端上的相同F(xiàn)A/PA同時(shí)運(yùn)行實(shí)現(xiàn)完整的業(yè)務(wù)。多個(gè)設(shè)備作為一個(gè)整體為用戶提供比單設(shè)備更加高效、沉浸的體驗(yàn)。例如:用戶通過(guò)智慧屏的應(yīng)用A拍照后,A可調(diào)用手機(jī)的應(yīng)用B進(jìn)行人像美顏,最終將美顏后的照片保存在智慧屏的應(yīng)用A。常見的多端協(xié)同場(chǎng)景實(shí)例還有:
- 手機(jī)側(cè)應(yīng)用A做游戲手柄,智慧屏側(cè)應(yīng)用B做游戲顯示,為用戶組成一個(gè)全新的游戲體驗(yàn)。
- 平板側(cè)應(yīng)用A做答題板,智慧屏側(cè)應(yīng)用B做直播,為用戶組成一個(gè)全新的上網(wǎng)課體驗(yàn)。
流轉(zhuǎn)架構(gòu)
HarmonyOS流轉(zhuǎn)提供了一組API庫(kù),可讓用戶應(yīng)用程序更輕松、快捷地完成流轉(zhuǎn)體驗(yàn)。HarmonyOS流轉(zhuǎn)架構(gòu)有如下優(yōu)勢(shì):
- 統(tǒng)一流轉(zhuǎn)管理UI,支持設(shè)備發(fā)現(xiàn)、選擇以及任務(wù)管理。
- 支持遠(yuǎn)程服務(wù)調(diào)用等能力,可輕松設(shè)計(jì)業(yè)務(wù)。
- 支持多個(gè)應(yīng)用同時(shí)進(jìn)行流轉(zhuǎn)。
- 支持不同形態(tài)設(shè)備,如手機(jī)、平板、TV、手表等。
流轉(zhuǎn)架構(gòu)如下圖所示。
-
流轉(zhuǎn)任務(wù)管理服務(wù):在流轉(zhuǎn)發(fā)起端,接受用戶應(yīng)用程序注冊(cè),提供流轉(zhuǎn)入口、狀態(tài)顯示、退出流轉(zhuǎn)等管理能力。
說(shuō)明
- 當(dāng)前僅手機(jī)、平板設(shè)備支持流轉(zhuǎn)任務(wù)管理服務(wù)。
- 如果流轉(zhuǎn)發(fā)起端不支持流轉(zhuǎn)任務(wù)管理服務(wù),則流轉(zhuǎn)業(yè)務(wù)實(shí)現(xiàn)方式有區(qū)別。
- 分布式任務(wù)調(diào)度:提供遠(yuǎn)程服務(wù)啟動(dòng)、遠(yuǎn)程服務(wù)連接、遠(yuǎn)程遷移等能力,并通過(guò)不同能力組合,支撐用戶應(yīng)用程序完成跨端遷移或多端協(xié)同的業(yè)務(wù)體驗(yàn)。
- 分布式安全:提供E2E的加密通道,為用戶應(yīng)用程序提供安全的跨端傳輸機(jī)制,保證“正確的人,通過(guò)正確的設(shè)備,正確地使用數(shù)據(jù)”。
- 分布式軟總線:使用基于手機(jī)、平板、智能穿戴、智慧屏等分布式設(shè)備的統(tǒng)一通信基座,為設(shè)備之間的互聯(lián)互通提供統(tǒng)一的分布式通信能力。
跨端遷移流程
以設(shè)備A的應(yīng)用和設(shè)備B的應(yīng)用進(jìn)行跨端遷移為例,業(yè)務(wù)流程如下:
- 流轉(zhuǎn)準(zhǔn)備:設(shè)備A上的應(yīng)用向流轉(zhuǎn)任務(wù)管理服務(wù)注冊(cè)一個(gè)流轉(zhuǎn)回調(diào)
- Alt1-系統(tǒng)推薦流轉(zhuǎn):系統(tǒng)感知周邊有可用設(shè)備后,主動(dòng)為用戶提供可選擇流轉(zhuǎn)的設(shè)備信息,并在用戶完成設(shè)備選擇后回調(diào)通知應(yīng)用開始流轉(zhuǎn),將用戶選擇的設(shè)備B的設(shè)備信息提供給應(yīng)用。
- Alt2-用戶手動(dòng)流轉(zhuǎn):系統(tǒng)在用戶手動(dòng)點(diǎn)擊流轉(zhuǎn)圖標(biāo)后,被動(dòng)為用戶提供可選擇交互的設(shè)備信息,并在用戶完成設(shè)備選擇后回調(diào)通知應(yīng)用開始流轉(zhuǎn),將用戶選擇的設(shè)備B的設(shè)備信息提供給應(yīng)用。
- 流轉(zhuǎn)完成:設(shè)備A上的應(yīng)用通過(guò)調(diào)用分布式任務(wù)調(diào)度的能力,如continueAbility等,向設(shè)備B的應(yīng)用發(fā)起跨端遷移。流轉(zhuǎn)中將流轉(zhuǎn)狀態(tài)上報(bào)到流轉(zhuǎn)任務(wù)管理服務(wù)。
說(shuō)明
跨端遷移后,設(shè)備A上的應(yīng)用需要自行退出。
?多端協(xié)同流程
以設(shè)備A的應(yīng)用和設(shè)備B的應(yīng)用進(jìn)行多端協(xié)同為例,業(yè)務(wù)流程如下:
- 流轉(zhuǎn)準(zhǔn)備:設(shè)備A上的應(yīng)用向流轉(zhuǎn)任務(wù)管理服務(wù)注冊(cè)一個(gè)流轉(zhuǎn)回調(diào):
- Alt1-系統(tǒng)推薦流轉(zhuǎn):系統(tǒng)感知周邊有可用設(shè)備后,主動(dòng)為用戶提供可選擇流轉(zhuǎn)的設(shè)備信息,并在用戶完成設(shè)備選擇后回調(diào)通知應(yīng)用開始流轉(zhuǎn),將用戶選擇的設(shè)備B的設(shè)備信息提供給應(yīng)用。
- Alt2-用戶手動(dòng)流轉(zhuǎn):系統(tǒng)在用戶手動(dòng)點(diǎn)擊流轉(zhuǎn)圖標(biāo)后,被動(dòng)為用戶提供可選擇交互的設(shè)備信息,并在用戶完成設(shè)備選擇后回調(diào)通知應(yīng)用開始流轉(zhuǎn),將用戶選擇的設(shè)備B的設(shè)備信息提供給應(yīng)用。
- 流轉(zhuǎn)進(jìn)行:設(shè)備A上的應(yīng)用通過(guò)調(diào)用分布式任務(wù)調(diào)度的能力,如startAbility, connectAbility等,向設(shè)備B的應(yīng)用發(fā)起多端協(xié)同。流轉(zhuǎn)中將流轉(zhuǎn)狀態(tài)上報(bào)到流轉(zhuǎn)任務(wù)管理服務(wù)。
- 流轉(zhuǎn)結(jié)束:用戶通過(guò)設(shè)備A的流轉(zhuǎn)任務(wù)管理界面結(jié)束流轉(zhuǎn)。用戶點(diǎn)擊結(jié)束任務(wù)后,流轉(zhuǎn)任務(wù)管理服務(wù)回調(diào)通知應(yīng)用取消流轉(zhuǎn)。設(shè)備A上的應(yīng)用通過(guò)調(diào)用分布式任務(wù)調(diào)度的能力,如stopAbility, disconnectAbility等,終止和設(shè)備B的多端協(xié)同。流轉(zhuǎn)結(jié)束后將流轉(zhuǎn)狀態(tài)上報(bào)到流轉(zhuǎn)任務(wù)管理服務(wù),并向流轉(zhuǎn)任務(wù)管理服務(wù)注銷流轉(zhuǎn)回調(diào)。
說(shuō)明
設(shè)備A和B進(jìn)行多端協(xié)同后,設(shè)備A和設(shè)備C重復(fù)如上流程,可實(shí)現(xiàn)設(shè)備A、B、C進(jìn)行多端協(xié)同,此時(shí)設(shè)備A是中心控制點(diǎn)。
兼容性設(shè)計(jì)
不管跨端遷移還是多端協(xié)同,流轉(zhuǎn)都是由兩個(gè)設(shè)備上的用戶應(yīng)用程序共同完成的,兩個(gè)設(shè)備上的用戶應(yīng)用程序需要做如下兼容設(shè)計(jì):
- 跨端應(yīng)用版本兼容
建議用戶應(yīng)用程序設(shè)計(jì)版本號(hào)和最小兼容版本號(hào)。只有當(dāng)設(shè)備A的用戶應(yīng)用程序版本號(hào)>=設(shè)備B的用戶應(yīng)用程序最小兼容版本號(hào),且設(shè)備B的用戶應(yīng)用程序版本號(hào)>=設(shè)備A的用戶應(yīng)用程序最小兼容版本號(hào)時(shí),才允許進(jìn)行流轉(zhuǎn)。
對(duì)于跨端遷移或多端協(xié)同場(chǎng)景,如果是同一個(gè)應(yīng)用在A端和B端進(jìn)行通信,此時(shí)流轉(zhuǎn)任務(wù)管理服務(wù)提供了版本兼容性檢查機(jī)制,可以將滿足條件的設(shè)備篩選出來(lái)。
說(shuō)明
流轉(zhuǎn)任務(wù)管理服務(wù)提供的版本兼容性檢查機(jī)制要求兩個(gè)設(shè)備是同一個(gè)用戶應(yīng)用程序。
要求用戶應(yīng)用程序在填寫config.json時(shí),填寫minCompatibleVersionCode字段(最小兼容版本號(hào))和code字段(當(dāng)前版本號(hào))。minCompatibleVersionCode標(biāo)識(shí)app pack能夠兼容的最低歷史版本號(hào)。該標(biāo)簽值為32位整形數(shù)值,非負(fù)整數(shù)。如果應(yīng)用/服務(wù)未配置minCompatibleVersionCode,則系統(tǒng)將minCompatibleVersionCode默認(rèn)填寫為當(dāng)前版本號(hào)。
對(duì)于多端協(xié)同,如果是不同應(yīng)用之間的A、B端協(xié)同,則需要不同應(yīng)用自己實(shí)現(xiàn)版本兼容性檢查機(jī)制。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-553395.html
- 跨端元服務(wù)安裝
跨端被拉起的程序建議設(shè)計(jì)為元服務(wù)。即當(dāng)設(shè)備A的用戶應(yīng)用程序向設(shè)備B的元服務(wù)發(fā)起多端協(xié)同,如果設(shè)備B上沒(méi)有安裝對(duì)應(yīng)服務(wù),HarmonyOS會(huì)自動(dòng)下載相關(guān)元服務(wù),和A端的用戶應(yīng)用程序一起進(jìn)行多端協(xié)同。如跨端被拉起的程序設(shè)計(jì)為傳統(tǒng)方式的需要安裝的應(yīng)用,則當(dāng)設(shè)備A的用戶應(yīng)用程序向設(shè)備B的元服務(wù)發(fā)起多端協(xié)同,如果設(shè)備B上沒(méi)有安裝相關(guān)應(yīng)用,會(huì)提示流轉(zhuǎn)失敗。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-553395.html
到了這里,關(guān)于HarmonyOS學(xué)習(xí)路之開發(fā)篇—流轉(zhuǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!