跟阿斌一塊兒學鴻蒙(4). 分佈式Hello Harmony的N種寫法

目錄

假如,鴻蒙能讓你用電飯煲來遙控電視...
跟阿斌一塊兒學鴻蒙(1). Hello Harmony
跟阿斌一塊兒學鴻蒙(2). Ability vs App?
跟阿斌一塊兒學鴻蒙(3). 遠程虛擬設備的限制和使用方法前端

鴻蒙OS是一個分佈式操做系統,而Ability做爲它調度的基本單元,那麼,一個分佈式Hello Harmony能夠有幾種寫法呢?後端

分佈式Hello Harmony用例

1. 根據Ability類型

1). FA <-> FA

FA = Feature Ability,用於顯示的前臺能力。網絡

能夠理解爲兩個前端應用在協做。架構

FA/FA模式的Hello Harmony,就是我說Hello, 你說Harmony。框架

在鴻蒙OS中,FA與FA的協做,有三種方式:前後端分離

  • 啓動,即一個FA啓動另外一個FA
    這嚴格來講並不算是一個協做,只是與別的操做系統相似,鴻蒙OS也提供了不一樣應用或者進程相互啓動的能力。分佈式

  • 遷移(轉移,流轉,接力),即一個界面從一臺設備,轉移到另外一臺設備上。
    例如,導航,查詢的時候在手機上,開車的時候在汽車車機上,走路的時候在手錶上,甚至耳機上。ide

    例如,視頻播放,從手機轉移到電視。
  • 協同,多臺設備在各自的界面上一塊兒完成同一個工做。
    例如,多人一塊兒修改一個文檔。post

    例如,多人一塊兒聯機玩遊戲。
    
      須要注意的是,在鴻蒙OS的設計中,FA之間的協同,若是不依靠PA的幫助,是很難直接進行的。這就好像是MVC架構中,爲了解耦合,不一樣的View之間一般並不直接進行交互。
    
      咱們固然能夠利用一些非鴻蒙OS獨有的特性,例如網絡,在不一樣FA之間搭建起溝通的橋樑,不過,這就很是不鴻蒙了。

2). FA <-> PA

PA = Particle Ability,不帶顯示的後臺服務能力。ui

前臺界面與後臺服務進行協做。

FA/PA的Hello Harmony,就是你大聲說Hello, 我小聲說Harmony。

這種交互,即便是在如今的APP開發中,也是一種常見的先後端分離的架構設計。

利用鴻蒙OS的多設備鏈接能力,能夠方便實現,在最適合顯示(交互)的設備上運行FA,而在算力更強更富餘的設備上運行PA。

例如,用手機與電視進行遊戲,手機充當遊戲主機(和手柄),而電視充當顯示。

3). PA <-> PA

不一樣後臺服務進行協做。

PA/PA的Hello Harmony,就是你小聲對我說Hello,我也小聲回覆Harmony。

這樣,不一樣的PA能夠專一負責本身的業務,而後經過組合,完成更復雜的任務。

其實,Data Ability 能夠認爲就是專門處理數據存儲的任務的一個PA,而普通Service Ability則是負責處理具體的任務,利用DA,能夠輕鬆爲一個任務增長存儲功能。

2. 根據應用

  • 1). 同應用
  • 2). 不一樣應用

其實,應用的概念在鴻蒙OS中已經被邊緣化了,而Ability纔是如今的C位。

因此,並不存在應用A說Hello,應用B說Harmony這種場景,只有Ability A說Hello,Ability B說Harmony的場景。

基於這個設定,其實,咱們不該關心Ability屬於哪一個應用,由於每一個Ability都是獨立的。

若是你仍是繞不過來,你能夠暫時直接認爲一個Ability就是一個應用。可是,要注意,在鴻蒙OS中,一個Ability極可能無法像傳統的App那樣,獨立完成一個任務。

而在代碼的組織和編寫時,對於共同完成一個任務的不一樣Ability,它們之間不免會有交集,而這,也僅僅限於代碼編寫時,在運行時,每一個Ability都有本身的進程和內存空間。

3. 根據設備

  • 1). 單設備
  • 2). 跨設備

鴻蒙OS天生具備鏈接多設備的能力,而對於開發者來講,須要考慮的是當前環境下有多少已經鏈接的設備,而不是要去鏈接哪臺設備。

具體的說,就是,咱們不須要考慮網絡的問題,而是要考慮,在當前環境中,用哪一個設備來完成任務更合理。

有多設備環境下的分佈式Hello Harmony,

* 能夠每臺設備輪流說Hello Harmony,即你說Hello Harmony,我也說Hello Harmony。
* 也能夠全部設備一塊兒完成一個Hello Harmony,即你說Hello 我說 Harmony。

參考文檔

* Ability 概述
> https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-ability-overview-0000000000029852
* 分佈式任務調度
> https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-distributed-overview-0000001050419345

後續

接下來,我將對不一樣的寫法,一一進行講解,歡迎持續關注。

做者:IT男阿斌
想了解更多內容,請訪問: 51CTO和華爲官方戰略合做共建的鴻蒙技術社區https://harmonyos.51cto.com

【免費直播公開課-HarmonyOS驅動框架調試總結】

相關文章
相關標籤/搜索