HarmonyOS應用框架如何解決多設備交互問題?
在未來萬物互聯的智能世界里,眾多的電子設備將不再是一個孤立的個體。隨身攜帶的智能手機、手腕上的智能手表、辦公室的PC和Pad、家里的智能電視、智能冰箱等,甚至是道路上汽車,都能彼此交互。
不過,要想讓眾多的電子設備互聯互通,還需用新的交互模式。那作為以交互為核心的新時代開發應用框架,HarmonyOS應用框架如何解決多設備交互問題呢?
一、萬物互聯時代的基本交互模型
圖1 人機交互模式圖
1868年,打字機的出現解決了人機交互中文字輸入的問題。1964年,鼠標的出現解決了人機交互中圖形界面交互的問題。2007年,多指手勢的出現解決了觸摸屏的交互問題。
縱觀人機交互歷史,這三個時間點可以說是人機交互史上的分水嶺,它們都為新類型設備的交互提供了新的交互方式。不過,這三種交互方式解決的都是單機交互問題,而萬物互聯時代交互面對的設備更多,交互場景也更為復雜。
二、HarmonyOS 如何解決多設備交互問題?
要了解 HarmonyOS 應用框架如何解決多設備交互問題,首先我們需要了解 HarmonyOS 分布式應用框架,該框架可以分為5層(如圖2所示)。
圖2 分布式應用框架整體架構視圖
- Layer1是底層軟件:包括內核、驅動、軟總線,這一層與開發者距離相對較遠。
- Layer2是基礎能力平臺:包含了很多分布式環境下的基礎服務,例如:分布式任務調度、分布式數據管理、分布式硬件管理以及分布式文件管理等。
- Layer3是應用框架的核心服務:大體可以分為全局包管理和分布式運行管理兩部分。與傳統的操作系統不同,HarmonyOS上的包管理,需要處理整個超級終端上所有設備的包信息,因此稱之為全局包管理。而分布式運行管理中協同和遷移框架是兩大重點。
- Layer4是開發者所使用的編程接口層:通過簡潔的接口為開發者提供調取系統底層的能力。
- Layer5是開發應用的用戶程序層,這一層與開發者聯系密切。
基于人機交互多年的研究分析發現,在多設備的交互場景上,用戶使用設備的場景可以分為兩大類,一類是用戶同時使用多個設備,另一類是相繼使用多個設備(如圖3所示)。
圖3 多設備交互模型圖
1.同時使用(Simultaneous)
當我們同時使用多個設備時,除了并發性之外,交互模型還有兩個重要的特點就是協作性和互補性。協作性是指多個設備彼此交互協調完成一項任務;互補性是指利用設備的本身形態差異,設備之間互相取長補短,完成一項任務。
例如,當我們在家里找不到電視遙控的時候,手機可以變身成遙控器,這就是一種設備能力的互補。
2.相繼使用(Sequential)
而當我們相繼使用多個設備時,連續性和一致性非常重要。連續性是指,從一個設備轉向另外一個設備的時,操作的狀態也應當繼續保留而不被中斷。例如:將手機上播放的視頻轉到 Pad上 后能夠繼續播放。而一致性是指,在使用手表、手機、大屏等不同設備時,它們操作方式和基礎視覺元素應當一致。例如:多指手勢、控件的樣式。當然,一致不代表一樣,每種設備由于其屏幕尺寸和形態不一樣,視覺元素還需要有針對性地進行一些自適應。
為了滿足上述兩種交互模型,HarmonyOS構建的分布式應用框架中提供了多端協同與跨端遷移兩種基礎功能來解決多設備交互問題。
接下來我們將重點為大家介紹Layer3中實現多設備交互模型的兩個框架,分別是多端協同框架和跨端遷移框架。
1.多端協同框架
多端協同是一種實現用戶應用程序流轉的技術方案,指多端上的不同FA/PA同時運行、或者交替運行實現完整的業務;或者多端上的相同FA/PA同時運行實現完整的業務。多個設備作為一個整體為用戶提供比單設備更加高效、沉浸的體驗。
說明:FA:Feature Ability,有UI界面, PA:Particle Ability,無UI界面。
例如手機側應用做游戲手柄,智慧屏側應用做游戲顯示,為用戶組成一個全新的游戲體驗;或者平板側應用做答題板,智慧屏側應用做直播,為用戶組成一個全新的上網課體驗。
圖4 多端協同
當我們的業務需要跨越多個設備時,有兩個基本的能力需要保證。一個是能夠建立跨設備的連接通路,并且實時感知連接狀態的變化;另一個是能夠在連接通道上傳遞狀態和數據,以進行業務的協同。
而多端協同框架是為用戶同時使用多個設備的場景而準備的。開發者借助多端協同框架,便可以完成不同設備之間業務邏輯的協同,以及設備之間硬件能力互補的功能。
2.跨端遷移框架
跨端遷移是一種實現用戶應用程序流轉的技術方案,是將設備1端運行的FA遷移到設備2端上,通過IAbilityContinuation實現業務遷移。完成遷移后, 設備2端的FA繼續任務,而設備1端應用退出。
當用戶將任務從一臺設備拖動到另外一臺設備上時,應用程序會收到來自系統的調用,此時應用程序可以將自己需要保存的狀態告知系統,系統會借助于分布式任務管理將數據傳遞到目標端,然后拆包數據并恢復應用狀態。在這種情況下,用戶感受到的就是將任務從一個設備遷移到了另外一個設備。
例如,想把手機觀看的視頻切換到體驗屏幕更大、音效更好的Pad上繼續觀看時,通過HarmonyOS 2全新的服務中心,可以直接在手機上的任務中心,一步將應用拖動到Pad上繼續觀看。
要完成這一點,就要借助跨端遷移框架(如圖5所示)。
圖5 跨端遷移
遷移和協同需要開發者的支持,但這類新的特性往往并不能在短時間內獲得完全地普及, 當應用沒有適配遷移框架時,系統要如何完成跨段遷移任務?
①跨端遷移與窗口管理
為了保證用戶體驗的一致性,當應用沒有適配遷移框架的時候,系統會通過分布式窗口管理的能力完成跨端遷移任務。如圖6所示,當用戶跨設備拖動任務時,HarmonyOS系統會將任務窗口遷移到一個Virtual Window(虛擬窗口)上渲染,然后將渲染的結果通過軟總線傳遞到ProxyWindow(遠端的代理窗口)上,由此達到跨設備顯示的效果。
圖6 分布式窗口管理圖
②分布式硬件平臺與自動跟隨
在應用的運行過程中,很多時候都會利用一些硬件設備。例如:Camera、麥克風或傳感器。當我們將一個應用從一個設備遷移到另一個設備之后,不只是把用戶界面和應用狀態轉移過去,還需要管理相應設備的硬件。
為了使應用遷移的流程更加具有一致性,我們在硬件層面系統中做了兩件事情(如圖7所示):
圖7 分布式硬件平臺與自動跟隨
第一件事是“硬件資源池化”。即:HarmonyOS系統會將超級終端上所有設備的硬件進行全局的編號和虛擬化,這使得任何一個設備上的軟件都可以使用所有超級終端設備內的硬件。
第二件事是“自動跟隨”。應用程序使用的其實是一個虛擬的句柄,它并非與某個特性硬件相綁定,當我們在將某個軟件實體從一個設備遷移到另外一個設備時,系統中的遷移決策模塊會自動將硬件也一起切換到目標設備上,使得整個用戶體驗一致。
經過上述介紹,相信大家已經對HarmonyOS應用框架如何解決多設備交互問題有了深入的理解。
作為面向萬物互聯新時代的智能終端操作系統,HarmonyOS期待與廣大開發者攜手同行,共筑HarmonyOS生態,為用戶創造全新的體驗和無限的可能。