雖說此前我們談HarmonyOS 2.0系統的文章都反覆提到,這是個面向「全場景」的作業系統,而不單是手機。毋庸置疑的是,HarmonyOS究竟何時登陸手機,恐怕是最多人關心的話題。WApednc
昨天華為在北京召開了一場HarmonyOS 2.0手機開發者Beta活動,用華為消費者BG軟體部副總裁楊海松的一句話來回答,手機何時能用上HarmonyOS的問題最合適,那就是:「面向開發者的beta,不就是面向消費者鴻蒙系統手機的前奏嗎?」WApednc
昨天電子工程專輯已經發布了有關HarmonyOS 2.0手機應用開發者Beta版的新聞,本文就嘗試勾勒一下這個所謂的手機開發者Beta版,對於北向開發者而言,究竟意味著什麼,有哪些改進。WApednc
WApednc
在閱讀本文前,建議閱讀我們此前對HarmonyOS 2.0系統的更多詳細報導,包括九月份華為在HDC 2020開發者大會上發布的HarmonyOS 2.0系統究竟是個什麼樣的系統,這將更有助於各位理解覆蓋「全場景」,以及「分布式技術」究竟是怎麼回事。文章連結附在本文文末。WApednc
本文篇幅較長,共分成4部分:WApednc
讀者可選擇自己感興趣的部分閱讀。WApednc
這裡再略花點筆墨做些前情提要,畢竟長期的手機作業系統式思維,在iOS和Android統領市場這麼多年,還是需要市場的反覆教育,才能夠讓一般人轉變思維的。WApednc
WApednc
在活動下午場的技術分享上,華為消費者業務OS平臺首席架構師[w(1] 分享了來自IoT-Analytics的一組數據,到2020年每個人持有的IoT設備數量(包括手機、PC、平板以及其他IoT設備)大約是6.57部。這個數字預計到2025年會推升至9.27部。WApednc
但事實上,直到目前為止,每個人手頭的這些設備其實都無法做到真正的有效協同——它們絕大部分是孤立工作的。而HarmonyOS本質上就是將這些原本孤立的設備,通過「分布式軟總線」串聯起來,並藉由「分布式數據管理」「分布式任務調度」等能力,將所有IoT設備抽象成一個整體。WApednc
數據在這個整體的硬體上自由流轉——用戶不需要在意某個文件,究竟是在手機上、PC上、大屏電視上,還是哪個硬體上;各種任務負載,在各種設備抽象的「超級終端」上,由最適合的物理硬體去完成,甚至協同完成。前述架構師總結HarmonyOS是「重新定位人-設備-場景的關係」。WApednc
WApednc
其一是「新硬體」,即將原本孤立的終端打造為一個超級終端,「通過軟體定義了新的硬體形式,硬體設備物理上存在的形態不重要了。」對於上層應用而言,所有設備都是抽象、單一的硬體。當以手機為中心時,智能攝像頭可以是手機的攝像頭,4K電視成為手機的虛擬屏幕,車載GPS也成為手機的定位能力,運動手錶則成為手機的外置生物特徵傳感器。WApednc
其二是「新交互」,基於所有設備的連接,開發的業務「展現出新的交互模式」,「人可以選擇最方便的交互模式,用最人性化的交互模式來交互。改變既有硬體不同特點的交互模式,最終構成複合型交互模式。」比如說手機上接收到一份工作文檔,由於鍵盤、滑鼠才是編輯文檔最高效的交互方式;又由於分布式技術的存在,不需要像傳統系統那樣,把手機上的文檔傳輸給PC,就能直接在PC上用鍵盤和滑鼠直接編輯文檔,也不需要回傳至手機,手機就能打開或發出該文檔。WApednc
其三「新服務」,一個服務存在於多個終端上,既可以在一個終端上,也可以是多個終端的場景組合,構成更好的用戶體驗。比如京東購物可以同時在手機、冰箱、大屏電視上進行,手機冰箱碰一碰就完成按需的流轉;再比如手機、大屏電視同時運行視頻app,電視負責播放節目,而手機則用於顯示額外信息,例如可查詢目前正播放電視劇中某個演員的資料,甚至綜藝節目中,在電視上單獨呈現某個明星專門的鏡頭。WApednc
WApednc
簡單地說,對用戶而言,是用一個鴻蒙作業系統,來解決IoT的所有問題。對應用開發者而言,這些改變又意味著什麼呢?WApednc
首先,在技術上,用華為消費者業務軟體部總裁王成錄博士的話來說,「寫一次代碼,應用就能運行在所有設備上,生態在所有設備上共享。」如此一來,開發者就能佔領更多的硬體設備入口。前文提到京東的例子,就讓京東app「從手機單一平臺解放出來,應用入口擴展到更多帶屏設備,甚至是音箱設備,這些設備都成為京東的潛在入口」;「讓上億家居設備成為京東購物的入口」。WApednc
其次,從用戶體驗的角度來說,開發的應用可脫離單設備的限制,硬體資源可組合利用,又能分別運行,應用體驗得到提升。「喜馬拉雅在車機上,以及所有有揚聲器和麥克風的設備上運行,」不僅有更多入口,而且也有更合適、方便的入口促成app使用體驗的提升。」WApednc
WApednc
王成錄博士援引了一組數據,從2018年開始,手機出貨量、移動App數量,以及消費者在手機上消耗的時間就不怎麼增長了。「手機生態來到一個臨界點,」「沒有持續的增長,產業就會進入到下滑階段。」IoT顯然能抑制這種下滑,而HarmonyOS則讓應用,從單一的手機上,擴展到更多的IoT設備上。所以用大白話來說HarmonyOS為開發者帶來了什麼:WApednc
1.更多機會,更賺錢;2.開發過程更簡單。WApednc
「華為在和南向硬體廠商合作,更多的硬體廠家加入到鴻蒙生態體系中來,你的應用有機會運行在這些設備上,佔領更多的入口,成為大家努力創新的更好的突破口和出發點。」這其實也是HarmonyOS生態能否吸引開發者的一部分。WApednc
此前我們發布有關鴻蒙系統的文章,大多還是在講概念。未來我們會有更多的機會去深入到HarmonyOS系統內部,從開發者,以及系統底層的角度來探討HarmonyOS系統本身。這次,我們嘗試從北向開發者的角度來談談,HarmonyOS 2.0手機應用Beta版本究竟能帶來些什麼。WApednc
WApednc
從大方向來看,系統服務層面抽象封裝了包括分布式軟總線、分布式數據管理等在內的各種具體實現。這些對於開發者而言都是隱藏的。開發者因此只需要關注業務邏輯即可,很多複雜的分布式技術,是交由下層框架去解決的。WApednc
面向開發者的是分布式框架。這次發布的兩個重點是分布式應用框架,與分布式UI框架。此外DevEco IDE也有了更新。WApednc
這些框架令開發者不需要為不同的設備,做app的重複開發,是實現一次開發多端部署的基礎。WApednc
這裡HarmonyOS引入了一個「元能力」(Ability)的概念,元能力是「實現應用跨端部署的基礎單元」,應用由元能力「靈活組裝,可大可小,可分可合,可流轉」。用王成錄博士的話來說,「元能力相當於鴻蒙應用裡建築材料的最小單元,可以單獨運行在小設備上,又可以根據能力的不同,不同的FA(Feature Ability)在不同的設備上運行。」「這個能力,是我們能夠做到一次業務代碼的書寫,就讓應用跑在不同設備上的重要基礎。」WApednc
從華為開發者文檔來看,這裡的「Ability」是HarmonyOS引入的一種應用可提供功能的抽象,Ability類是HarmonyOS應用的基礎組件,是不同設備間系統最小遷移單元,Ability可彼此間聯合或者單獨部署。WApednc
WApednc
華為將其稱作程序的「原子化」。前述架構師也提到FA(Feature Ability,元程序,有UI界面)和PA(Particle Ability,元服務,無UI界面)是超級終端的基礎應用結構——超級終端前文已經提過了,這是個抽象多設備後的整體。不同的FA和PA,完成單一功能用戶程序,基於這樣的用戶程序可在多設備間調度、流轉、可分可合。這兩種類型的Ability,為開發者提供不同的模板,實現不同的業務功能。WApednc
FA、PA由系統統一調度,並可被其他第三方程序調用集成。FA/PA這種元能力的存在,對於HarmonyOS和開發者而言,實現了接口功能的規範化,「調用能力傻瓜化」。FA/PA的關鍵特徵,前述架構師列出的是「支持不同設備的Profile,不常駐;業務邏輯與數據、顯示兩兩分離;支持可重入和遠端執行」。WApednc
WApednc
上面這張圖對比了,若要實現app在不同設備上的互通,傳統Android開發需要從底層到上層的各部分適配,各層都需要做修改。而HarmonyOS將UI往下的基礎服務做了全部的封裝,這對開發者而言就輕鬆了很多。WApednc
WApednc
王成錄博士舉了京東開發直播購物跨端功能的例子,即手機上的京東轉到電視大屏,手機可以用來執行其他操作——這在活動現場也有專門的演示。據說開發這樣一個特性,只需要一天時間。「基於編程框架,一個人一天就能做這樣一個很好的應用體驗。」王成錄表示,「對開發者而言,四條語句,調幾個函數,就能完成這樣的功能了。」WApednc
分布式UI框架,是用於解決在應用開發過程中,針對不同形狀、尺寸、解析度屏幕顯示,以及交互適配困難的問題的。很多應用開發,UI的工作量經常佔到一半以上。不同顯示尺寸的適配問題要佔用開發者大量的時間和經歷。這次的Beta版,面向開發者提供了分布式UI框架,「各種自適應,封裝成一個個可調用的模塊,適配不同尺寸、解析度的屏幕。」WApednc
從針對分布式應用開發的實例演示來看,這一版系統提供了7類自適應布局能力:包括拉伸、縮放、隱藏、拆行、均分、佔比、延伸等。「所有界面元素都做了架構上的解耦,解耦到最小粒度,這樣就能根據硬體尺寸來做調整。」WApednc
WApednc
除了顯示以外,在交互方面,新版系統引入了一種「歸一設計」。隱藏不同輸入方式的差異,組件針對不同輸入進行差異化反饋,一致化交互事件接口。比如針對一張圖片,觸控螢幕是雙指捏合實現縮放,PC則通過Ctrl+滑鼠滾輪,還有觸控板雙指捏合,手錶上則可能是通過錶冠旋轉。所以HarmonyOS現在做了「交互事件歸一」,開發者只需要關注交互本身。WApednc
分布式UI框架實現的,一句話也就是「一次開發,適配不同顯示介面」,以及節省UI開發的時間。WApednc
DevEco Studio是華為官方所推的IDE。這次IDE的更新主要有四點。第一是提供了9套「手機應用模板」,比如新聞、購物類app,開發者可以直接套用,部分減少了app開發工作量。WApednc
第二,IDE中加入了多端界面預覽、實時反饋。這次似乎主要是多加了對手機界面的預覽。實現效果如下圖。WApednc
WApednc
第三,分布式調試。這一點是很值得一提的。因為當開發是跨終端的,而且開發過程對開發者還隱藏了大量實現細節,做了高層次的抽象,那麼IDE中調試功能的開發會成為難點——或者說調試本身也需要做到高層調試。這一點相信華為在其中也投入了大量工作,這次更新中提到的是「一個斷點,調跨端代碼」,即調試過程只需要在一個設備上打斷點。WApednc
即便該設備同時連多設備,在所謂的「分布式」概念下,令其處於調試狀態下,則相當於一個設備的一個進程要「穿越」到另外一個設備的另一個進程中。即便是這樣,「一個斷點就夠了」。[w(2] WApednc
第四,模擬仿真無限接近真機。就是在不需要真機的情況下,在雲端進行模擬,並實時看到開發應用模擬運行的效果。華為部署的雲模擬器是基於ARM架構伺服器的,「逼近真機」。這項特性在此前DevEco Studio的介紹中就看到過,這次可能是做了進一步的完善。WApednc
包括「支持20+種器件及傳感器逼真模擬:連續導航,連續計步,以及行動網路(接收簡訊/來電)等場景」。WApednc
WApednc
以上這些就是相較今年9月HarmonyOS 2.0剛剛問世時,其手機開發者Beta版的一些主要改進項目了。從這些面向開發者的改進,實則就不難發現HarmonyOS處在功能完善階段:尤其是據更早提出這個系統的目標,包括分布式技術這個看起來需要相當投入的目標——尤其為了上層應用開發的便利,還要對眾多開發者隱藏分布式技術的實現細節。WApednc
針對這一點,我們嘗試再來簡單看看分布式軟總線這項技術。華為2012實驗室計算機網絡與協議實驗室主任提到[w(3] ,之所以稱其為「軟總線」,是因為「計算機裡頭,總線操作對軟體是不可見的。我們希望HarmonyOS的通信能力對應用而言,就像總線一樣,不需要開發者去關心物理通道實現」。WApednc
分布式軟總線的概念,此前我已經在好幾篇文章中提過了,它是分布式技術的基礎之一。即「超級終端」的形成,是需要這根「線」把所有物理設備串聯起來,才能實現分布式數據管理、分布式任務調度的。此前我們知道了,分布式軟總線具備「自發現、自連接」「高帶寬」「低時延」「高可靠」以及「融合組網」等特點。WApednc
WApednc
對於分布式軟總線本身的實現,我們還是知之甚少的。分布式軟總線在實現上,至少需要解決網絡技術基礎問題、配置與安全認證問題、性能調優問題等。這次鄭凱提到了分布式軟總線的「極簡通信協議」技術,將OSI網絡模型中的3-7層(網絡層、傳輸層、會話層、表示層、應用層)精簡為一層,就叫「近場極簡通信協議棧」。WApednc
「因為OSI是針對廣域網,東西很全,但我們要實現業務直達,做精簡抽象」…「多層協議流程打通,剪除很多不必要的環節」,以及「避免層間調用和工程開銷」。鄭凱說。WApednc
另外還要做到「多元化協議與算法,智能感知和決策」——「我們需要讓協議、軟總線,因時因地在繁複龐大的知識庫裡,找到最優路徑,這就要求協議棧模塊化,成為智能感知、智能決策、具體執行這樣一個完整的系統。」不知道到目前為止,華為是否已經在HarmonyOS上實現了以上這個大工程。WApednc
除了傳輸,華為還需要解決這條「軟總線」在網絡發現、連接,以及組網方面的問題。比如發現與連接,HarmonyOS期望做到「智能自發現」的「多通路並發優選」;認證階段,則採用華為帳號一站式認證,非首次連接則做了認證過程的簡化;連接過程,則有「多路連接通道按需連接」這樣的設定。WApednc
而在組網相關的部分——因為「分布式軟總線」宣傳的一個重點,就是藍牙、WiFi的「異構融合組網」。雖然實現細節仍然很不清楚,不過鄭凱這次大致提到了「多協議IP化、動態轉換,組件異構融合自組網」;「自協商:網絡自構建,協議自協商」;「廣覆蓋:多協議組網,聯通資源孤島」;「共標準:統一互通標準,促進生態融合」;「強互補:多協議、多介質物理特性互補」。以及涉及整個已組建網絡的「多跳自組網」,要做到快速收斂一張「無環網」,並且還有設計冗餘鏈路、多路徑傳輸。WApednc
其實開發者不需要關注這些實現細節和過程。在開發demo中,很容易了解到網絡的發現過程,是由軟總線自動完成;組網過程,開發者也不需要關心組網協議,軟總線跨物理介質互通;軟總線還隱藏了複雜文件傳輸實現,開發者不需要關注I/O、協議、平臺遷移、性能基線等。WApednc
WApednc
上面這張圖是手機與大屏傳文件的第三步,傳輸過程。開發者調用文件傳輸接口,發送文件,定義文件meta信息的一行代碼,軟總線底層隱藏邏輯包含的內容也可從圖中一目了然。WApednc
就華為這一側來看,僅是分布式軟總線上述的這些設計目標,似乎就涉及到極為龐大的工程量。這可能與華為此前在網絡通訊技術上的積累有很大的關係。WApednc
分布式軟總線的這個例子其實很能反映HarmonyOS最終目標的工程量有多浩大。如果從更高層級來看這套系統,這裡還可以再舉個例子。HarmonyOS採用多內核設計,針對不同設備、應用場景,可以選擇不同的系統內核。這其實也是HarmonyOS可覆蓋下至幾百KB RAM,上至GB級別RAM設備的重要原因。WApednc
WApednc
上面這張圖可見,內核層可選Linux Kernel,或者是LiteOS——LiteOS是一個輕量化的更適用於小型IoT設備的內核,而且它還支持MMU,內核/app空間隔離,以及支持POSIX接口,所以許多開源軟體可以在LiteOS上直接使用。為了實現多內核的設計,其上需要有一個KAL抽象層,隱藏內核實施細節,面向上層提供基礎內核能力,包括進程、線程管理,內存管理,文件系統,網絡管理等。WApednc
這也是HarmonyOS真正做到「全場景」覆蓋的最底層基礎。不過其實現難度似乎也相當之大。這些都只是HarmonyOS的組成部分,這張圖上其實也能看到上層的各種分布式能力。WApednc
其實在活動下午場HarmonyOS 2.0架構、關鍵技術解讀中,還涉及HarmonyOS應用程式框架、應用開發平臺,以及的更多講解。鑑於篇幅的關係,這裡就不再展開了。但總體可總結的是,和分布式軟總線的那些關鍵技術一樣,為開發者提供的便利,也就意味著是華為需要海量投入去完成的——這個過程恐怕不是短時間內可達到的。WApednc
實際上9月份HDC2020華為開發者大會上,HarmonyOS 2.0問世至今也不過區區3個月時間,似乎華為對生態構建的成績匯報是以月為單位的,這也表明華為在HarmonyOS生態構建上還是有信心。以下是楊海松在採訪中提供的一些數字和信息:WApednc
WApednc
「生態建立最艱難的過程,就是從零到一的過程,最難的時刻就是現在。」楊海松說。其實上面這些成績看起來還是相當不錯,即便目標的完成大概也會很有壓力。作為生態構建的一環,華為也開啟了HarmonyOS開發者創新大賽,昨天應該就已經正式上線了,到明年5月15日截止,提供150萬元獎金,另會有20名導師負責指導。WApednc
最後值得一提的是,楊海松在採訪中提到,這次活動是面向開發者的;而面向手機消費用戶時,有一些相關HarmonyOS生態的重磅信息尚無法公開。所以未來2C的發布會上,我們預計還會看到一波更有趣的內容更新,那就是更貼近消費用戶的系統特性了。WApednc
推薦閱讀:WApednc
鴻蒙2.0具體有哪些改進?明年華為手機都能用上WApednc
三星、黑莓、微軟都失敗了,華為鴻蒙還能成嗎?WApednc
第三大生態的建立:華為憑什麼吸引開發者加入HMS生態?WApednc
現場更多HarmonyOS應用演示圖集:WApednc
WApednc
責編:Yvonne GengWApednc