HarmonyOS發布會和OpenHarmony 2.0快評
背景
OpenHarmony與2021年6月2號開源,第一時間下載了代碼,做了一些分析。晚上Harmony OS 2.0發布,看了直播,感覺很激動。
今天一大早起來寫一些感受。主要是匯總了OpenHarmony2.0和HarmonyOS發布會一些我比較感興趣的東西。
OpenHarmony 2.0的初步情況
此次開源的版本就叫OpenHarmony 2.0。以后也不再區分L2,L3,L4這樣的。該版本可在所有大小設備上使用。
此次開源沒有java程序的支持,也就是不支持Android。沒有android的東西,也不支持java應用。
下圖是代碼文件夾
第一時間對代碼量進行了統計。我算的比較粗,用得統計軟件也是我十年前寫《深入理解Android》幾本書時用的了(有朋友知道好使的代碼統計軟件不妨推薦下)
不含kernel、third_party(包括device/hisilicon/third_party也挪出去),所有我認識的源碼文件共包含有效代碼行數1912976,接近200w行。
而歸屬third_party+device/hisilicon/third_party的代碼行數為7607742(不考慮Html/html)
所以, 1912976 /9520718=20%。鴻蒙自己開發的代碼占全部源代碼的20%。不要小看這個,按之前的網上說法,AOSP里谷歌寫的代碼才占了15%。
當然,以上代碼總量沒計算Linux Kernel,那玩意光自己就有近1300多萬行代碼。后續我還會對OpenHarmony代碼做些介紹,敬請期待。
Codelab里的分布式場景介紹
華為開發者官網里開源了二十多個Demo,我們第一時間整理了其中和分布式有關的Demo如下:
所有Demo入口地址在:https://developer.huawei.com/consumer/cn/codelabsPortal/index。
以上總結可供老板,做決策的領導,想方案的產品經理看。😜
HarmonyOS 2.0發布會中一些有意思的信息
接下來說Harmony OS 2.0發布會。頭天晚上看完后,第二天又看了回看,把一些細節給摸清楚了。
超級終端,分布式等
- 全棧解耦:一套代碼,滿足各種硬件要求。這一條在這部分提得很少,后面講鴻蒙桌面的時候提得多
- 設備互聯:基于軟總線技術。場景有:多機位模式:一個手機可以看多個攝像頭
協同辦公:手機,平板,PC協同
- 統一控制中心:所有設備的控制,狀態顯示都集中在手機上,就好像是他們是一臺設備一樣。
- 做了一個統一的UI/UE入口——卡片:方便用戶使用。其使用場景有“可以選擇音樂輸出到任何連接上的耳機,音箱"
- 多設備構成超級終端:用戶操作體驗增強:卡片里展示超級終端,可被連接的設備懸浮顯示。拖拽即可完成手機與其他設備的連接。
- 另外,幾個設備協同是有排斥關系的。如下面右圖。藍色是室外音箱,對角的是室內音箱。當室內音箱被協同后,室外音箱會被排除出去。這一點只是想說明,華為考慮得比較周到,它把設備協同中出現的設備之間沖突情況也考慮進來。另外,手表,pad,手機都可以運行這個控制中心。
- 多設備協同的一個有意思的場景是”手機播放音樂,音箱和手機協同后,聲音從音箱出。“
- 還有一個場景是看視頻:手機和電視機協同后,手機的視頻轉到電視播放。手機和耳機協同后,電視機聲音從耳機播放。這里應該還是有場景的判斷。手機是控制,電視機是播放源。雖然是在手機上對耳機進行了協同,但實際上是把讓電視機的聲音轉到耳機去輸出(至少效果是這樣,技術實現不清楚是通過手機中轉的音頻數據還是耳機和電視進行了藍牙配對以及傳輸)。
這里,王博士提到了兩個關鍵技術,值得重視:
- 應用場景為多設備間的音畫同步軟時鐘同步
- 無線傳輸時的抗干擾算法
接著,介紹了一個手機和PAD,以及手機和PC的協同,馬上看一下:
- 手機和pad協同:pad和手機協同后,pad可方便訪問手機上的照片
- 手機和PC協同:手機變成PC上的一個盤符。PC需要安裝一個插件。類似MTP那樣的,只不過改成無線傳輸了
- Harmony Connect:暢聯。多設備間的通話,語音,視頻。
- 智能家電:碰一碰配網,碰一碰展示設備的智能功能
鴻蒙桌面
解決一次開發多端部署的問題。現在看解決辦法和快應用比較像,呈現形式為卡片,不需要安裝(意思是不需要用戶去應用市場下載和安裝,是不是類似微信小程序,快應用?技術上不是特別確定,但感覺小程序,卡片這種模式越來越流行了)。
鴻蒙桌面這里提到了兩個關鍵技術:
- 分布式編程框架:就是原來提到的分布式軟總線,分布式任務調度,分布式數據管理等
- 原子化服務:不好描述是什么。但展現形式是卡片
有一個應用場景是跨設備流轉:手機和pad搭配成超級終端后
- 手機能看到pad上的任務。比如下面這樣:
- 手機上的任務能拖到pad上去執行。示例是把wps從手機拖到pad。pad上就啟動并展示了wps。其展示內容和之前在手機上編輯的一樣。初步技術判斷:需要app支持,就是把手機上該app的執行的信息。先同步到大屏上對應的app里。期待更多應用適配鴻蒙!
其他一些嚇人的技術
這里就不截圖了,比如全棧優化、動態空間管理, 全新自研圖形棧,多設備協同驗證。這些都是很有價值的關鍵點。值得大家關注。以后代碼要是開源,我們再第一時間分析。
哈哈,先寫到這。后續再貢獻代碼分析,場景介紹等內容。