硬體互助,資源共享
多種裝置之間能夠實現硬體互助、資源共享,依賴的關鍵技術包括分散式軟匯流排、分散式裝置虛擬化、分散式資料管理、分散式任務排程等。
分散式軟匯流排
分散式軟匯流排是手機、平板、智慧穿戴、智慧屏、車機等分散式裝置的通訊基座,為裝置之間的互聯互通提供了統一的分散式通訊能力,為裝置之間的無感發現和零等待傳輸創造了條件。開發者只需聚焦於業務邏輯的實現,無需關注組網方式與底層協議。分散式軟匯流排示意圖
分散式裝置虛擬化
分散式裝置虛擬化平臺可以實現不同裝置的資源融合、裝置管理、資料處理,多種裝置共同形成一個超級虛擬終端。針對不同型別的任務,為使用者匹配並選擇能力合適的執行硬體,讓業務連續地在不同裝置間流轉,充分發揮不同裝置的能力優勢,如顯示能力、攝像能力、音訊能力、互動能力以及感測器能力等。分散式裝置虛擬化示意圖見圖
分散式資料管理
分散式資料管理基於分散式軟匯流排的能力,實現應用程式資料和使用者資料的分散式管理。使用者資料不再與單一物理裝置繫結,業務邏輯與資料儲存分離,跨裝置的資料處理如同本地資料處理一樣方便快捷,讓開發者能夠輕鬆實現全場景、多裝置下的資料儲存、共享和訪問,
為打造一致、流暢的使用者體驗創造了基礎條件。
典型應用場景舉例:
- 協同辦公場景:將手機上的文件投屏到智慧屏,在智慧屏上對文件執行翻頁、縮放、塗鴉等操作,文件的最新狀態可以在手機上同步顯示。
- 家庭出遊場景:一家人出遊時,媽媽用手機拍了很多照片。透過家庭照片共享,爸爸可以在自己的手機上瀏覽、收藏和儲存這些照片,家中的爺爺奶奶也可以透過智慧屏瀏覽這些照片。
分散式任務排程
分散式任務排程基於分散式軟匯流排、分散式資料管理、分散式 Profile 等技術特性,構建統一的分散式服務管理(發現、同步、註冊、呼叫)機制,支援對跨裝置的應用進行遠端啟動、遠端呼叫、遠端連線以及遷移等操作,能夠根據不同裝置的能力、位置、業務執行狀態、資源使用情況,以及使用者的習慣和意圖,選擇合適的裝置執行分散式任務。
以應用遷移為例,簡要地展示了分散式任務排程能力。
典型應用場景舉例:
- 導航場景:如果使用者駕車出行,上車前,在手機上規劃好導航路線;上車後,導航自動遷移到車機和車載音響;下車後,導航自動遷移回手機。如果使用者騎車出行,在手機上規劃好導航路線,騎行時手錶可以接續導航。
- 外賣場景:在手機上點外賣後,可以將訂單資訊遷移到手錶上,隨時檢視外賣的配送狀態。
一次開發,多端部署
HarmonyOS 提供了使用者程式框架、Ability 框架以及 UI 框架,支援應用開發過程中多終端的業務邏輯和介面邏輯進行復用,能夠實現應用的一次開發、多端部署,提升了跨裝置應用的開發效率。一次開發、其中,UI 框架支援 Java 和 JS 兩種開發語言,並提供了豐富的多型控制元件,可以在手機、平板、智慧穿戴、智慧屏、車機上顯示不同的 UI 效果。採用業界主流設計方式,提供多種響應式佈局方案,支援柵格化佈局,滿足不同螢幕的介面適配能力。
一次開發、多端部署示意圖
統一 OS,彈性部署
HarmonyOS 透過元件化和小型化等設計方法,支援多種終端裝置按需彈性部署,能夠適配不同類別的硬體資源和功能需求。支撐透過編譯鏈關係去自動生成元件化的依賴關係,形成元件樹依賴圖,支撐產品系統的便捷開發,降低硬體裝置的開發門檻。
- 支援各元件的選擇(元件可有可無):根據硬體的形態和需求,可以選擇所需的元件。
- 支援元件內功能集的配置(元件可大可小):根據硬體的資源情況和功能需求,可以選擇配置元件中的功能集。例如,選擇配置圖形框架元件中的部分控制元件。
- 支援元件間依賴的關聯(平臺可大可小):根據編譯鏈關係,可以自動生成元件化的依賴關係。例如,選擇圖形框架元件,將會自動選擇依賴的圖形引擎元件等。