鸿蒙开发套件全面升级,助力鸿蒙生态蓬勃发展
????????
目錄
1. 全場景分布式系統
2. HarmonyOS的超能力:ArkTS API萬箭齊發
3.解鎖“鴻蒙開發套件”的新技能
(1) 智能代碼編輯器
(2)Hvigor編譯構建
(3)熱重載:向看直播一樣查看運行結果
(4)跨語言調試,打通多種語言之間的蟲洞
(5)場景化性能調優工具:DevEco Insight
(6)云端一體化開發
4. 新形態UI
5. 輕量化并發
6. ArkUI全新開發模型:Stage模式
7. HMS Core集成
?????????2022年華為開發者大會(HDC.Together)于11月4日在東莞松山湖揭開帷幕,帶來了鴻蒙生態的最新成果,展示了鴻蒙生態的全新格局。在大會主題演講中,華為帶來了多種令人震撼的技術成果,如分布式能力、原子化服務、AI、AR、地圖、游戲、音視頻、隱私安全、HarmonyOS座艙等。同時鴻蒙開發套件推出了升級的ArkTS、ArkUI、ArkCompiler等技術,通過這些技術的加持,讓HarmonyOS App從開發、到布局,再到性能,都得到了質的飛躍。從而全面加速推進HarmonyOS應用生態。
????????下面就向各位展示一下鴻蒙開發套件以及其他炫酷的技術:
1. 全場景分布式系統
????????自從HarmonyOS在2020年9月份發布以來,就確認了HarmonyOS發展的總策略,要成為全場景的分布式系統。所謂全場景主要體現在無處不在。現在各種類型的電子設備已經填滿了我們生活和工作的每一個角落,鬧鐘、手機、平板電腦、微波爐、電磁爐、熱水器、耳機、電視、電腦、電動汽車、手表、智能手環、吸塵器、電冰箱、洗衣機,這些都是我們生活中常見的電子設備,如果要讓它們單獨運作再容易不過了,不過HarmonyOS的目的是讓這些設備組成一個整體,就是組成人體的每一個器官,在需要的時候,會有合適的器官完成特定的工作,以形成一個超級終端,對,這就是HarmonyOS的最終目的。HarmonyOS會隱藏在背后完成所有的工作,包括處理特定的任務,協調各種電子設備,數據同步等,而用戶并不會感知HarmonyOS的存在,真正做到無影無形,無處不在。
????????HarmonyOS要想達到這個目的,擁有強大的開發套件以及靈活的特性是必備技能。而一次開發,多端部署,可分可合、自由流轉,統一生態,原生智能正是HarmonyOS的最高指導原則。為了實現這些原則,HarmonyOS逐漸支持了多種技術(如ArkUI、ArkTS、ArkCompiler、原子化服務等),并提出了Stage等開發模式。下面將為大家逐一解鎖這些新技能。
2. HarmonyOS的超能力:ArkTS API萬箭齊發
????????不管是任何類型的編程語言或是具有開發能力的平臺,都需要提供大量可供用戶操控的接口,也稱為API。ArkTS隨著幾年的發展,已經提供了海量的API可供用戶使用,到目前為止,HarmonyOS 3.1中的ArkTS API已經有超過10000個,能力覆蓋了方方面面。例如,用于設計UI的聲明式布局API、Web相關的API、多媒體相關的API、網絡相關的API等,總之,ArkTS目前支持的API足夠開發出非常強大的HarmonyOS App。
3.解鎖“鴻蒙開發套件”的新技能
????????有一套好的開發工具,會讓你的開發效率倍增,出錯率顯著下降,最關鍵的一點可以讓你心情更好,防止脫發。
????????華為最新先推出的DevEco Studio 3.1堪稱是目前為止最強大的HarmonyOS App開發套件。新版的DevEco Studio支持大量的新特性,以便讓我們在開發HarmonyOS App時感覺更爽,例如,通過強大的智能代碼編輯器可以更快速,更準確定位錯誤,增量編譯可以讓我們在編譯的過程中不再閑得無聊。
(1) 智能代碼編輯器
????????人類進入智能代碼編輯器時代是從微軟的Visual Studio開始的,不過當時的編輯器相當簡陋,或者說是原始。隨著時代的發展,代碼編輯器開始變得智能,甚至成為開發工具的標配。
????????最初的智能代碼編輯器只是可以列出類或對象的成員,以及參數等。不過隨著API數量的大量增加,語法變得越來越復雜,代碼編輯器就需要可以幫助開發人員快速編寫代碼,這一點從DevEco Studio代碼智能補齊功能就可以看出,輸入某些特定的語法結構(如循環、條件、lambda表達式等),編輯器會為我們生成這些語法結構的默認形式,即使我們忘記了具體的語法也無關緊要,只需要在默認語法形式的基礎上照貓畫虎即可,這項功能大大增加了開發工具的可用性。
????????如果代碼比較多,每次需要對全部代碼進行校驗,會大量消耗CPU的資源,可能還會出現卡頓的現象,DevEco Studio為了解決這個問題,提供了代碼增量校驗的特性,在大多數時候,只針對新增加或修改的代碼進行校驗,這樣可以大大提升IDE的性能。
(2)Hvigor編譯構建
????????對于一個大型的項目,編譯簡直就是噩夢。我曾經有一個非常大的項目,編譯一次竟然要20多分鐘,所以提高編譯速度是開發工具必須要改進的方向之一。
????????DevEco Studio利用Hvigor構建工具可以明顯地提升編譯HarmonyOS App工程的效率。Hvigor可以通過多種技術提升編譯性能,例如,通過多線程并行編譯,可以在多核、多CPU的環境下大幅度提升編譯效率。還可以通過增量編譯技術,只編譯增加或修改的部分,這樣也可以在一定程度上提升整體的編譯效率。
(3)熱重載:向看直播一樣查看運行結果
????????“寫代碼 -> 編譯 ->運行 ->查看結果”,這是大多數開發工具的日常。不過DevEco Studio可不需要這么麻煩,“保存 -> 展示”是DevEco Studio最炫酷的特性之一。寫完代碼,不再需要漫長的編譯和運行過程,只要將代碼保存,就可以立刻看到代碼運行的效果,簡直酷斃了。這個特性被稱為:熱更新。
????????不僅如此,如果當時正處于運行狀態,這時修改代碼,仍然會熱重載,而且設置的斷點并不需要重新設置。也就是說,DevEco Studio支持編輯狀態和運行狀態的熱重載。
(4)跨語言調試,打通多種語言之間的蟲洞
????????在很多場景下,一個App會由多種編程語言共同實現,這就會帶來一個棘手的問題:跨語言調試。通常的做法是只在調用者語言中調試,而被調用語言或者通過輸出日志調試,或者通過函數向調用者返回值的方式調試。不管是哪種調試方式,都非常不方便,尤其是定位跨語言的錯誤,更是費勁。
????????為了解決這個問題,最新版的DevEco Studio允許ArkTS和C++混合開發,并且支持跨語言調試,也就是說,在ArkTS中設置斷點,一直可以跟蹤到C++代碼中,這樣非常方便定位錯誤。
(5)場景化性能調優工具:DevEco Insight
????????DevEco Insight可以根據典型性能問題提煉場景化調優模板,結合實時性能監控智能推薦分析模板。還可以關聯分析多維度性能數據,性能問題可以定位到具體的代碼行。
(6)云端一體化開發
????????DevEco Studio為了解決開發Serverless不方便的問題,支持直接在DevEco Studio中建立云函數文件,也就是端云融合,統一技術棧。當編寫完云函數后,可以一鍵發布到服務的,以便端側調用。
4. 新形態UI
HarmonyOS 3有2個重要理念:
(1)超級設備(ONE SUPER DEVICE,協同高效體驗)
(2)靈活可定制(如通過萬能卡片定制各種各樣的服務)
????????超級設備會帶給我們非常炫酷的理念,其中的超級桌面允許在智能座艙、智慧屏中打開手機上的應用,并且所有的UI都可以自動適配。還支持在不同設備之間拖拽文本、圖標篇,以及超級文件中轉站,并且支持語音操控。這一切無不體現著創新形態,創新體驗,創新設計。
????????由于HarmonyOS需要在不同設備上運行,這些設備的屏幕尺寸千差萬別,要想適應盡可能多的屏幕尺寸,華為推出了自適應UI引擎。?
????????自適應UI引擎可以根據屏幕尺寸的大小,自動調整布局。例如,手機屏幕較小,所以水平方向只會顯示2個圖像,在平板電腦上,水平方向可能會顯示4個圖像。這些都是UI引擎自動調整的。而且UI引擎還可以根據不同的設備,將UI組件映射到不同的設備上(跨平臺渲染和多端部署能力)。例如,手表、手機、智能電視的屏幕尺寸和組件樣式有很大差異,UI引擎在渲染組件時會根據具體的設備,將組件渲染成設備特有的樣式。
5. 輕量化并發
????????并發一直是提升運行效率的重要手段,不過并發也會帶來一些麻煩。例如,多線程共享數據,有可能會造成臟數據,雖然可以利用線程鎖(線程同步技術)解決臟數據的問題,但線程鎖如果使用不當,還會造成死鎖,而且多線程引發的bug并不好調試。
????????為了解決以上問題,HarmonyOS推出了輕量級并發技術,通過LiteActor,可以將每一個線程都放到Actor中,然后由主線程循環執行。由于LiteActor目前不支持線程鎖,以及共享可寫數據,所以并不會引發傳統線程的各種問題。當然,在未來的HarmonyOS中,LiteActor也會通過某些手段支持共享可寫數據,就讓我們拭目以待吧。
6. ArkUI全新開發模型:Stage模式
????????Stage模型主要是為了解決FA模型無法解決的開發場景問題,方便開發者更加方便地開發出分布式環境下的復雜應用。
? ???? Stage模型的設計思想如下圖所示:
Stage模型的設計基于如下3個出發點:
(1)應用的能力與系統總體功能和功耗的平衡。在系統運行過程中,前臺應用的資源占用會被優先保障,與此同時由于應用能力不同而產生的功耗,也需要符合系統整體功耗的要求。Stage模型通過Ability與UI分離、嚴格的后臺管控、基于場景的服務機制及單進程模型來達成這種應用能力與整體系統功耗的平衡。
(2)原生支持組件級的遷移與協同。OpenHarmony是原生支持分布式的操作系統,應用框架需要從架構設計上使得組件更易于實現遷移和協同。Stage模型通過Ability與UI分離及UI展示與服務能力合一等模型特性,實現這一設計目標。
(3)支持多設備和多窗口形態的特點。為了支持多種設備形態和更易于實現多種不同的窗口形態,需要組件管理服務和窗口管理服務在架構層面上是解耦的,從而方便裁剪,更有利于定制不同的窗口形態。Stage模型通過重新定義了Ability生命周期定義和設計組件管理服務和窗口管理服務的單向依賴解決這一問題。
7. HMS Core集成
鴻蒙開發套件本身的能力有限,但可以通過HMS Core增強HarmonyOS App的能力。
????????HMS Core包含眾多服務,這些服務有的需要網絡連接(如賬號與應用內支付服務、AI等),有的可以本地操作(如手寫服務等)。用戶可以通過簡單的配置和幾行代碼,將HMS Core的相關功能集成到HarmonyOS App中。
????????經過前面的體驗和分析,HarmonyOS 3從用戶體驗到開發體驗,都得到了明顯的增強。在大會上也出現了很多第三方廠商利用華為技術開發的產品,如Bilibili、潤和、支付寶等。希望HarmonyOS的生態越來越強大。
-----------------------
《Python從菜鳥到高手》第2版隆重上市
總結
以上是生活随笔為你收集整理的鸿蒙开发套件全面升级,助力鸿蒙生态蓬勃发展的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搭建Tomcat集群详解
- 下一篇: 初学 Java 设计模式(十一):实战外