HarmonyOS應用框架如何解決多裝置互動問題?

科技前鋒發表於2021-08-10

隨著全場景多裝置生活方式的不斷深入,使用者擁有的裝置越來越多,除了我們每天帶在身上的手機、手腕上的智慧手錶、口袋裡面的無線耳機、揹包裡面的PC和Pad、另外家裡還有智慧電視、智慧冰箱等裝置,這些年,汽車也在逐步地變成一臺跑在道路上的電子裝置,如果這些裝置都是彼此孤立的,那體驗一定是很差的。

因此,要想讓萬物互聯,就需要新的互動模式,而新的互動模式在開發時,需要應用框架加持,HarmonyOS應用框架就解決了新時代的互動問題。接下來我們以使用者互動為起點,來介紹HarmonyOS應用框架是如何解決多裝置互動問題的。


一、萬物互聯時代的基本互動模型

如圖1所示,縱觀人機互動歷史,有以下幾個關鍵時間點:

  • 1868年,打字機的出現解決了人機互動中文字輸入的問題
  • 1964年,滑鼠的出現解決了人機互動中圖形介面互動的問題
  • 2007年,多指手勢的出現解決了觸控式螢幕的互動問題
HarmonyOS應用框架如何解決多裝置互動問題?

圖1 人機互動模式圖

這三個歷史時間點可以說是人機互動史上的分水嶺,它們提供了新的互動方式解決了新型別裝置的互動問題。但是,這三種互動方式解決的都是單機互動的問題,而萬物互聯時代面臨的是多裝置互動的複雜問題。

基於人機互動多年的研究分析,我們發現,在多裝置的互動場景上,使用者使用裝置的場景可以分為兩大類,一類是 使用者同時使用多個裝置 ,另一類是 相繼使用多個裝置 (如圖2所示)。

HarmonyOS應用框架如何解決多裝置互動問題?

圖2 多裝置互動模型圖

1.同時使用(Simultaneous)

當我們在同時使用多個裝置時,除了併發性之外,互動模型還有兩個重要的特點就是:協作性和互補性。協作性是指多個裝置彼此互動協調完成一項任務。互補性是指利用裝置的本身形態差異,裝置之間互相取長補短,完成一項任務。

例如,當我們在家裡找不到電視遙控的時候,手機可以變身成遙控器,這就是一種裝置能力的互補。

2.相繼使用(Sequential)

而當我們相繼使用多個裝置時,連續性和一致性就非常重要了。連續性是指,當我從一個裝置轉向另外一個裝置的時候,我剛剛操作的狀態應當是繼續保留沒有被中斷的。例如:將手機上播放的影片轉到PAD上後能夠繼續播放。而一致性是指,當我們在使用手錶、手機、大屏等不同裝置時,它們操作方式和基礎視覺元素應當是一致的。例如:多指手勢、控制元件的樣式。當然,一致不代表一樣,每種裝置由於其螢幕尺寸和形態不一樣,視覺元素還需要有針對性地進行一些自適應。

為了滿足上述兩種互動模型,HarmonyOS構建的分散式應用框架中提供了兩種基礎功能,分別是: 多端協同跨端遷移

接下來我們將介紹HarmonyOS的上述兩個能力是如何解決多裝置互動問題的。


二、HarmonyOS如何解決多裝置互動問題?

首先我們來介紹HarmonyOS分散式應用框架,該框架可以分為5層(如圖3所示)。

HarmonyOS應用框架如何解決多裝置互動問題?

圖3 分散式應用框架整體架構檢視

Layer1底層軟體,包括核心、驅動和還有軟匯流排,這一層與開發者距離相對較遠。

Layer2基礎能力平臺,它包含了很多分散式環境下的基礎服務,例如:分散式任務排程、分散式資料管理、分散式硬體管理以及分散式檔案管理等。

Layer3是應用框架的 核心服務,大體可以分為兩塊:一塊是全域性包管理,一塊是分散式執行管理。與傳統的作業系統不同,HarmonyOS上的包管理,需要處理整個超級終端上所有裝置的包資訊,因此我們稱之為全域性包管理。而對於分散式執行管理,將在下文重點介紹,其中包含了協同和遷移框架。

Layer4是開發者所使用的 程式設計介面層。儘管系統底層的實現非常複雜,但是我們在第四層為開發者提供了簡潔的介面。

Layer5是開發應用的 使用者程式層,這一層與開發者聯絡密切。

接下來我們將重點為大家介紹Layer3中實現多裝置互動模型的兩個框架,分別是 多端協同框架跨端遷移框架

1.多端協同框架

多端協同框架就是為使用者同時使用多個裝置的場景而準備的。例如:手機側應用做遊戲手柄,智慧屏側應用做遊戲顯示,為使用者組成一個全新的遊戲體驗;又如:平板側應用做答題板,智慧屏側應用做直播,為使用者組成一個全新的上網課體驗。

要實現這樣的業務,就要藉助多端協同框架(如圖4所示)。

HarmonyOS應用框架如何解決多裝置互動問題?

圖4 多端協同

多端協同是一種實現使用者應用程式流轉的技術方案,指多端上的不同FA/PA同時執行、或者交替執行實現完整的業務;或者多端上的相同FA/PA同時執行實現完整的業務。多個裝置作為一個整體為使用者提供比單裝置更加高效、沉浸的體驗。

說明:FA:Feature Ability,有UI介面, PA:Particle Ability,無UI介面。

當我們的業務需要跨越多個裝置時,有兩個基本的能力需要保證:

一是能夠建立跨裝置的連線通路,並且實時感知連線狀態的變化。這一點透過IAbilityConnection來完成,它依賴分散式管理服務和軟匯流排來進行底層連線的管理。

二是能夠在連線通道上傳遞狀態和資料,以進行業務的協同。這一點可以透過HarmonyOS的IDL實現。這些傳遞的資料既包含了系統需要傳遞的資料,也包含了應用程式進行需要傳遞的資料。

有了這兩個能力,開發者便可以完成不同裝置之間業務邏輯的協同,以及裝置之間硬體能力互補的功能。

2.跨端遷移框架

跨端遷移是用來為使用者相繼使用多個裝置而準備的,它是我們常用的一個場景。例如,當你透過手機觀看影片時,覺得體驗不夠好,你想切換到螢幕更大、音效更好的PAD上繼續觀看,在HarmonyOS之外的系統上,你只能先解鎖PAD,找到那個應用,然後再找到播放歷史,如果運氣好,你的播放進度已經被同步過去了,但很可能,由於網路同步的延遲,你還得先找到剛剛觀看的位置,然後再繼續觀看。

而關注HarmonyOS系統的朋友們一定會知道,在今年HarmonyOS 2釋出會上,我們釋出了全新的服務中心。在這個服務中心當中,你可以跨裝置的管理整個超級終端上的任務列表,這使得你可以直接在手機上的任務中心,一步將任務拖動到PAD上就可以了。

要完成這一點,就要藉助跨端遷移框架(如圖5所示)

HarmonyOS應用框架如何解決多裝置互動問題?

圖5 跨端遷移

跨端遷移是一種實現使用者應用程式流轉的技術方案,是將裝置1端執行的FA遷移到裝置2端上,透過IAbilityContinuation實現業務遷移。完成遷移後, 裝置2端的FA繼續任務,而裝置1端應用退出。當使用者將任務從一臺裝置拖動到另外一臺裝置上時,應用程式會收到來自系統的呼叫,此時應用程式可以將自己需要儲存的狀態告知系統,系統會藉助於分散式任務管理將資料傳遞到目標端,然後拆包資料並恢復應用狀態。在這種情況下,使用者感受到的就是將任務從一個裝置遷移到了另外一個裝置。

遷移和協同需要開發者的支援,但這類新的特性往往並不能在短時間內獲得完全地普及, 當應用沒有適配遷移框架時,系統要如何完成跨段遷移任務?

①跨端遷移與視窗管理

為了保證使用者體驗的一致性,當應用沒有適配遷移框架的時候,系統會透過分散式視窗管理的能力完成跨端遷移任務。如圖6所示,當使用者跨裝置拖動任務時,HarmonyOS系統會將任務視窗遷移到一個Virtual Window(虛擬視窗)上渲染,然後將渲染的結果透過軟匯流排傳遞到ProxyWindow(遠端的代理視窗)上,由此達到跨裝置顯示的效果。

HarmonyOS應用框架如何解決多裝置互動問題?

圖6 分散式視窗管理圖

②分散式硬體平臺與自動跟隨

我們知道,應用在執行過程中,很多時候都會利用一些硬體裝置。例如:Camera、麥克風或感測器。而當我們將一個應用從一個裝置遷移到另外一個裝置之後,不只是把使用者介面和應用狀態轉移過去就可以了,如果轉移之後聲音還留在原來的裝置上播放,那就比較奇怪了。因此,在HarmonyOS中,這些硬體是如何管理的呢?

為了使得應用遷移的流程更加具有一致性,我們在硬體層面系統中做了兩件事情(如圖7所示):

HarmonyOS應用框架如何解決多裝置互動問題?

圖7 分散式硬體平臺與自動跟隨

第一件事是“ 硬體資源池化 ”。即:HarmonyOS系統會將超級終端上所有裝置的硬體進行全域性的編號和虛擬化,這使得任何一個裝置上的軟體都可以使用所有超級終端裝置內的硬體。

第二件事是“ 自動跟隨 ”。應用程式使用的其實是一個虛擬的控制程式碼,它並非與某個特性硬體相繫結,當我們在將某個軟體實體從一個裝置遷移到另外一個裝置時,系統中的遷移決策模組會自動將硬體也一起切換到目標裝置上,使得整個使用者體驗是一致的。

經過上述介紹,我相信大家已經理解HarmonyOS應用框架是如何解決多裝置互動問題的。

作為新一代的智慧終端作業系統,HarmonyOS非常歡迎廣大開發者加入我們,成為整個鴻蒙生態的一員,讓我們一起,為全球幾十億使用者共築全新的商業生態以及無限可能。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997629/viewspace-2786281/,如需轉載,請註明出處,否則將追究法律責任。

相關文章