作者 | 羅燕珊
本文是“2021 InfoQ 年度技術盤點與展望”特别策劃文章,由 InfoQ 編輯部制作呈現,聚焦 HarmonyOS(鴻蒙作業系統)在 2021 年的重要動态和進展。
“鴻蒙,成了!!”2021 年 10 月 23 日,華為常務董事、消費者業務 CEO、智能汽車解決方案 BU CEO 餘承東在其個人微網誌上宣布道。2021 年是 HarmonyOS 自 2019 年釋出以來的第三年,這一年 HarmonyOS 的輿論熱度已經不比前兩年,但這不是壞消息。相比起身處國與國之間技術博弈的漩渦,“韬光養晦”的時刻對 HarmonyOS 來說更具意義。
本文将帶您一起回顧 2021 年 HarmonyOS 的重要動态和技術進展,并展望其 2022 年的發展。感謝多位專業人士在本文寫作過程中提供了非常有價值的觀點,特别緻謝(排名不分先後):優酷進階無線開發專家劉洋、Cocos 引擎技術總監淩華彬、新浪微部落格戶端技術負責人高一航。
動态回顧
餘承東口中的“鴻蒙成了”,實際上是指“鴻蒙生态已初具規模”。官方公布的最新資料顯示,華為已經有 2.2 億 + 裝置搭載 HarmonyOS,來自生态合作夥伴的裝置有 1 億 + 搭載 HarmonyOS。2020 年 12 月,華為釋出 HarmonyOS 2.0 手機開發者 Beta 版本,接着在半年後的 2021 年 6 月,随着 HarmonyOS 2.0 的順利釋出,到 12 月份,所有規劃中機型的鴻蒙正式版的适配推送已基本完成,其中包括不少華為、榮耀的舊款手機和平闆産品。
原子化服務能力是鴻蒙系統的特色,其免安裝、即用即走的特性對使用者更加友好,對 App 開發者來說可以提高使用者活躍度。是以這一年 HarmonyOS 系統的原子化服務可以說是“野蠻生長”,點開服務中心可以看到“五花八門”的原子化卡片,覆寫各行各業,比如中國國際航空推出了“中國國航”,點選卡片即可一鍵進行預訂機票、檢視行程、辦理值機等操作;廣發證券推出“行情服務”、“開戶服務”、“秒答服務”等等...... 生态中“吃螃蟹”的不僅隻有網際網路公司。
與此同時,HarmonyOS 社群也變得越來越熱鬧。市面上有越來越多的 HarmonyOS 開發類書籍,以及相關的開發者網站和公衆号,開源網站上也出現不少開發者上手 HarmonyOS 的開源項目。HarmonyOS 官網近日還推出了 HarmonyOS 開發者資源中心——DevEco Marketplace,彙總了 HarmonyOS 開發相關的原生庫、三方庫、示例代碼等各類資源。
簡要回顧 2021 年,HarmonyOS 主要有以下幾個重要動态:
2021 年 5 月 18 日,華為宣布将“Work With HUAWEI HiLink”品牌和“Powered by HarmonyOS”品牌融合更新為“HarmonyOS Connect”品牌,即鴻蒙智聯,原 HiLink 開發者平台與 HarmonyOS 認證平台統一更新至鴻蒙智聯生态服務平台。同年 8 月 18 日,鴻蒙智聯裝置認證正式上線。
2021 年 6 月 2 日,華為正式釋出 HarmonyOS 2.0 以及搭載 HarmonyOS 2 的多款新産品。
2021 年 10 月 22 日,華為釋出 HarmonyOS 3 開發者預覽版。預計 2022 年一季度,華為将釋出 HarmonyOS 3 開發者 Beta 版。
2021 年 12 月 23 日,華為釋出鴻蒙汽車 AITO 問界 M5,搭載 HarmonyOS 座艙。
技術演進和發展方向
10 月釋出的 Harmony OS 3.0.0 開發者預覽版,相比起 2020 年釋出的 Harmony OS 2.0 版本,在性能以及開發者體驗上都有了大幅提升。
Harmony OS 3.0.0 開發者預覽版圍繞“彈性部署、超級終端、一次開發多端部署”繼續演進。随着該版本的釋出,HarmonyOS 應用與服務開發工具套件全家桶也全面更新,包含了新一代的聲明式 UI 架構 ArkUI 3.0、多語言跨平台編譯器 ArkCompiler 3.0、跨端開發工具 DevEco Studio3.0,以及基于 TS/JS 語言的 API 7。
方舟開發架構 3.0
“一次開發多端部署”是 Harmony OS 的主打亮點,可實作通過一套工程代碼、一次開發上架,即可按需部署到不同裝置。為了實作這一目标,華為主要從 Harmony 系統能力、ArkUI 3.0 架構能力和開發工具能力三個方面着手。
ArkUI 3.0(方舟開發架構 3.0)新引入了基于 TypeScript(簡稱 TS)擴充的聲明式開發範式。“基于 TS 擴充的聲明式開發範式”是方舟開發架構提供的兩種開發範式之一,采用更接近自然語義的程式設計方式,讓開發者可以直覺地描述 UI 界面,不必關心架構如何實作 UI 繪制和渲染,實作簡單和高效的開發。

目前,HarmonyOS 提供兩種 UI 架構、三種開發範式。
新的 ArkUI 3.0 架構,除了引入新一代聲明式 UI 開發範式,還設計了統一的前後端扁平化渲染機制,進一步提升 UI 渲染的性能并降低記憶體消耗,并深度結合 ArkCompiler 3.0 的方舟編譯器和方舟運作時,提升語言的執行性能和跨語言通信能力。在工具方面,針對新一代的聲明式 UI 開發範式建構了新的編譯工具鍊和預覽引擎,提供所見即所得的實時預覽機制。
另外,在 ArkUI 3.0 架構中,類 Web 範式會繼續保留,即類 Web 範式和新一代的聲明式 UI 範式都可以支援,可以各自獨立使用,但不能混用。
UI 程式設計架構在應用開發中起了至關重要的作用。目前,擁有新開發範式的 ArkUI 3.0 走出了堅實的第一步,并已開始支撐更多的關鍵應用。接下來,除了基礎設施的持續完善,HarmonyOS 将會重點支援生态擴充,主要包括進階 UI 能力的提升,比如三方地圖、遊戲的融合以及 Web 能力增強等。
方舟編譯器 3.0
HarmonyOS 3.0.0 提供 ArkCompiler 3.0(方舟編譯器 3.0),用于應用的編譯建構。ArkCompiler 是為支援多種程式設計語言、多種晶片平台的聯合編譯、運作而設計的統一程式設計平台,其目标是提供一個語言可插拔、元件可配置的多語言編譯器運作時。
語言可插拔:設計架構上支援多種語言接入,ArkCompiler 有能力提供具有高效執行性能且具有跨語言優勢的多語言運作時,也可以在小裝置上提供高效輕量的單一語言運作時。
元件可配置:ArkCompiler 具有豐富的編譯器運作時元件系統。通過定制化配置編譯運作時的語言群組件,以支援手機、PC、平闆、電視、汽車和智能穿戴等多種裝置上不同的性能和記憶體需求。
目前,ArkCompiler 3.0 主要支援的語言是 JavaScript、TypeScript 和 Java。未來,ArkCompiler 在持續優化基礎體驗的同時,更會進一步結合 HarmonyOS 萬物互聯的需求,在跨端遷移、多端協同等創新場景,從編譯器和運作時等方面提供底層的解決方案和優化機制,提升分布式應用的開發和運作體驗。
DevEco Studio 3.0
HUAWEI DevEco Studio 是開發 HarmonyOS 應用和原子化服務的一站式內建開發環境(IDE)。2021 年的最後一天,官方釋出了 DevEco Studio 3.0 Beta2 版本。
在 HarmonyOS 3.0.0 開發者預覽版釋出的時候,開發者 IDE 工具已經可以更新到 3.0 Beta1 版本。其關鍵特性包括:支援 ArkUI 3.0 架構、低代碼開發功能提升(新增支援 Tablet 裝置開發、面向不同尺寸界面設計效果可自動适配的原子布局能力,以及多裝置開發切換功能)、新增 Scoring Tool 評測工具(開發者可以通過 DevEco Studio 連接配接本地裝置或遠端真機,自主周遊 HarmonyOS 應用或原子化服務的功能,快速進行自測試)等。
3.0 Beta1 版本已經支援用方舟編譯器編譯由 eTS 語言開發的應用,本次更新新增相應的工程調試功能,進一步支撐使用方舟編譯器的 eTS 工程開發。
目前存在的問題
畢竟是作業系統界的後來者,發展初期 HarmonyOS 的開發體驗還不夠完善,比如存在由于開發環境疊代較快導緻出現 bug 的問題,其他問題還有 IDE 體驗不夠好、部分文檔寫得不夠詳細、所提供的 demo 還不夠完善等等。
同時也有人疑惑,HarmonyOS 同時存在 JS 架構、Java 架構,究竟華為未來會主推哪一種開發架構,目前似乎還沒有明确的結論。
長遠地看,目前 HarmonyOS 可以相容 Android 應用,那未來是否一直會支援下去?而開發者開發純鴻蒙 App 的必要性究竟有多大?對于很多 App 來說,開發純鴻蒙 App 并不現實,畢竟大量的移動中間件還未适配鴻蒙。
另外,由于衆所周知的問題,華為目前在推出新機上遇到非常大的困難,随着未來舊機器逐漸退役,HarmonyOS 的保有量是否能維持在一個高位?未來又是否會有别的手機廠商采用 HarmonyOS?華為是 HarmonyOS 的開發者和維護者,也是手機市場的重要玩家,華為是否能保持平台的中立性,對可能的其他 HarmonyOS 采用者一視同仁?
以上這些問題是目前 HarmonyOS 在發展途中遇到的常見和比較棘手的問題。技術問題終究可以被解決,而關于長期發展的問題,或許還得靠開源(OpenHarmony)才能破解。
寫在最後
展望 2022 年,我們期待 HarmonyOS 生态得到進一步完善和豐富,有更多的非華為終端裝置開始使用 HarmonyOS,以及跟 HarmonyOS 關聯,也期待能有更多的純鴻蒙 App 推向市場,這需要華為持續提供更多的服務和開放更多的能力。另外,方舟開發架構、方舟編譯器的發展也很值得關注。按照官方說法,TS/JS 語言将在 HarmonyOS 應用開發中越來越重要。
最後,筆者還想提下 2021 年 HarmonyOS 的一個動态,那就是和歐拉開源作業系統的“互通”。
在 2021 年 9 月舉辦的華為全連接配接大會上,華為宣布歐拉和鴻蒙已經實作了核心技術共享,未來計劃将鴻蒙的分布式軟總線能力移植到歐拉,讓搭載歐拉作業系統的裝置可以自動識别和連接配接鴻蒙終端。後續進一步在安全 OS、裝置驅動架構、以及新程式設計語言等方面實作共享。當時還提到,2022 年華為将釋出名為“倉颉”的應用程式設計語言,鴻蒙和歐拉會基于同樣的程式設計語言開發,如此一來,就能更好地完成應用的遷移和實作生态互通的目标。
其實不管是 HarmonyOS、方舟編譯器或是未來的倉颉語言,均展現了華為在基礎軟體做全方位布局的決心,我們同樣可以期待 2022 年華為在根技術方面的更多突破。
參考資料來源:
HarmonyOS開發者微信公衆号
技術論壇華為鴻蒙應用開發官網(https://developer.harmonyos.com/)