2024年8月11日,一場聚焦 HarmonyOS 應用開發實踐的開發者系列沙龍在上海舉行。本次活動沙龍由華為與CSDN聯合舉辦,匯聚了華為開發者專家徐建國、HarmonyOS高級開發者認證喬汝嘉,上海市高等教育學會數字經濟發展與研究專業委員會副主任費志明先生等技術專家。活動內容涵蓋 HarmonyOS 的架構設計、開發工具、元服務、生態建設等多個方面,內容緊貼開發實戰,為開發者們提供了寶貴的學習機會和交流平臺。
華為HDE與堅果派的聯合創始人徐建國:ArkWeb實踐與三方庫適配
開場,華為開發者專家/堅果派聯合創始人徐建國帶來了《ArkWeb實踐與三方庫適配》的主題演講,深入探討了ArkWeb在實際應用中的實踐經驗,以及如何有效地實現與第三方庫的適配。
徐建國首先詳細介紹了ArkWeb的核心架構和技術特點。作為用于提升Web應用性能的框架,ArkWeb通過引入創新的異步處理機制和輕量級設計,解決傳統Web框架在高并發場景下的瓶頸問題。具體來說,ArkWeb采用了一種異步非阻塞的IO模型,使其能夠高效處理大量并發請求,顯著縮短了頁面加載時間,提升了用戶體驗。此外,ArkWeb的模塊化設計使得開發者可以根據實際需求,靈活選用不同的組件,從而最大限度地減少不必要的資源消耗。
在講解ArkWeb的技術架構后,他進一步探討了在實際應用中面臨的挑戰,尤其是在與第三方庫的適配方面。由于現代Web開發中,前端框架如React、Vue、Angular等第三方庫已廣泛應用,而這些庫往往依賴于不同的技術棧和處理方式,這給ArkWeb的集成帶來了不小的挑戰。為此,團隊采取了一系列優化策略。例如,在與React和Vue的集成中,ArkWeb團隊開發了一套動態加載與預編譯技術,使得這些前端框架能夠無縫運行于ArkWeb之上,既確保了系統的兼容性,又提升了整體運行效率。此外,徐建國還分享了一些在實際項目中積累的經驗,例如處理不同庫之間的依賴沖突,如何優化數據流以減少冗余處理等。
演講的最后,徐建國展望了ArkWeb未來的發展方向。他表示,隨著Web應用場景的不斷拓展,ArkWeb將在性能優化、跨平臺支持以及與更多第三方庫的兼容性方面持續發力。特別是在5G、物聯網等新興技術驅動下,ArkWeb將進一步提升其在低延遲、高并發環境中的表現,滿足更加多樣化的開發需求。
HarmonyOS高級開發者認證/技術總監喬汝嘉:HarmonyOS應用測試實踐
隨后,HarmonyOS高級開發者認證/技術總監喬汝嘉帶來了《HarmonyOS應用測試實踐》的主題演講,主要分享了 HarmonyOS 應用測試的實戰經驗,并深入探討了代碼測試和 UI 測試的技巧。
喬汝嘉首先介紹了 HarmonyOS 代碼測試的兩種方式:Instrument Test 和 Local Test。Instrument Test 依賴手機或模擬器運行環境,適合運行 UI 自動化測試;Local Test 則不依賴手機或模擬器,適合運行單元測試。通過 DevEco Studio,開發者可以方便創建測試類,編寫測試用例,進行代碼覆蓋率統計,從而有效地發現代碼中的問題。
演講重點探討了 UI 測試的實踐技巧。例如通過獲取 AbilityDelegator 和 bundleName,創建 want 并啟動 want,從而找到最上層的 Ability;通過創建 Driver,用 Driver 查找元素、模擬點擊、斷言元素存在等操作,對應用界面進行自動化測試。此外,使用命令行工具進行 UI 測試,以錄制用戶操作和注入 UI 模擬操作等方式,也可以更靈活地進行 UI 測試。
喬汝嘉在演講中還介紹了覆蓋率測試和測試類型篩選等高級測試技巧。通過覆蓋率測試,可以了解代碼的實際執行情況,從而發現潛在的代碼缺陷;通過測試類型篩選,可以有針對性地執行特定類型的測試用例,提高測試效率。最后,喬汝嘉總結了 HarmonyOS 應用測試的關鍵要點,并鼓勵開發者積極探索和實踐,不斷提升應用測試水平。
上海市高等教育學會數字經濟發展與研究專業委員會副主任費志明:元服務-縮短用戶與場景之間的距離
最后一位壓軸嘉賓是上海市高等教育學會數字經濟發展與研究專業委員會副主任費志明,他帶來《元服務-縮短用戶與場景之間的距離》的主題演講,以開發者實際開發場景舉例,深入淺出地介紹了 HarmonyOS 中元服務的概念、特點和價值,并結合金融領域應用場景,為開發者展示了元服務帶來的獨特優勢。
費志明首先闡述了元服務的定義和特點。 元服務并非取代原生應用,而是與其并存,共同構成 HarmonyOS 生態。元服務具有輕量化、跨端、服務直達等特點,能夠為用戶提供便捷、高效的服務體驗。
而對于開發者而言,元服務提供了套件化能力、靈活性和解耦設計,降低了開發成本,并增強了交互性。套件化能力使得開發者可以輕松獲取各類功能和智能化能力,例如支付、語音識別等,無需從頭開發,節省時間和精力。靈活性和解耦設計則使得開發者可以根據實際需求,靈活選用不同的組件,并進行模塊化開發,從而最大限度地減少不必要的資源消耗,提高開發效率。此外,元服務還支持更強的交互性,例如手勢操作、語音交互等,為用戶提供更加豐富的交互體驗。而HarmonyOS 應用程序包支持多模塊開發,生成的應用程序包 (.app) 可以包含多個 HAP 或 HSP。元服務為了實現快速啟動效果,對 HAP 和 HSP 文件大小做了限制,同時優化了元服務啟動機制。這種多模塊開發方式稱為“分包”,為開發者提供了更大的靈活性和效率。
最后費志明展望了元服務的未來發展,他表示,隨著HarmonyOS生態的不斷完善,元服務將在更多場景中發揮作用,為用戶帶來更加便捷、智能的服務體驗。未來,元服務將重點發展以下幾個方面:
現場提問Q&A
三位嘉賓的精彩演講結束后,本次沙龍還特別設置了《專家面對面》環節。在這一環節中,現場開發者們積極提問,圍繞 HarmonyOS 的開發實踐、技術細節、生態建設等方面提出了許多問題,專家們則耐心解答,并結合自身經驗和案例,為開發者們提供了寶貴的建議和指導。
Q:元服務在多端的兼容性問題?多端如何進行數據功能同步?
A:其實現在的話元服務和App這兩個體系應用目前來說還不是直接互通的,想要實現互通建議走云端的方式。鴻蒙原生提供了比較多的是多端一次開發、多端部署的能力,但是Taro支持到什么程度,還是也看它的一個文化的進展。
Q: HarmonyOS在未來如何利用 AI 大模型來增強用戶體驗?例如,通過智能助手、自然語言、圖像識別等功能,如何在有限的設備硬件資源上高效地運行這些模型?此外,與安卓和iOS相比,AI加速 API 的開放程度可能較低,這給開發者帶來了限制,華為將如何從一定程度上繞過這些現實限制?
A:關于 AI 大模型的應用可能有以下幾個方向:
關于 AI 加速 API 的開放,目前 HarmonyOS 的 AI 加速 API 開放程度可能不如安卓和 iOS,這給開發者帶來了一定的限制。在 621 事件中,HarmonyOS 已經展示了一些基于 AI 大模型的初步應用,例如智能推薦、個性化服務等。這些案例表明,HarmonyOS 在 AI 應用方面具有巨大的潛力。 華為正在積極提升 AI 加速 API 的開放程度,以更好地滿足開發者的需求。開發者可以關注 HarmonyOS 的最新動態,以獲取最新的 API 信息和技術支持。
Q:很多應用場景在一般 App 上可能用不到,未來 HarmonyOS 在多設備開發方面的方向,以及相關的技術性問題。例如,現在手機折疊屏和平板的適配相對繁瑣,是否可以推薦一種更簡單快捷的方式,因為現在的方式可能需要編寫大量代碼。
A:關于多設備開發還可以使用路由跳轉: 目前,HarmonyOS 官方已經開放了新的路由跳轉方式,取代了之前常用的 root.replace 方式。新的方式更易于實現多設備適配,建議開發者參考官方文檔進行學習和使用。
多設備適配能力方面, HarmonyOS 提供了拉伸、延伸、均分等多種多設備適配能力,這些能力可以方便開發者實現應用的跨設備流轉和界面適配。開發者可以參考 HarmonyOS 官網提供的多設備適配案例,學習如何高效地進行適配。
Q:費老師之前提到,我們可以先開發一個元服務,再根據場景需要開發一個原子化服務。但這里面涉及到代碼復用的問題,如何才能盡可能復用代碼?例如,元服務和原生 APP 里面的一些功能代碼是完全一樣的,但如想復用這個代碼。另外,如果兩端都有了之后,要進行快速迭代,兩邊都要發布,如何能做到這一點?有什么好的實踐方式?
A:首先回答API 兼容性問題。在 HarmonyOS SDK 文檔中,開發者可以找到標明“元服務也可用”的 API,這些 API 在元服務和原生 APP 中都可以使用,方便開發者進行代碼復用。以個人開發的“一月付”應用為例,我最初使用 API 9 開發了元服務,后來在 API 12 中將其代碼 100% 復用,并將其改造成了原子化服務形式。
另外可以嘗試模塊化設計,對于像美團這樣功能模塊較多的應用,可以將不同的模塊拆分成不同的元服務進行開發,例如將打車功能拆分為一個元服務,將購物功能拆分為另一個元服務。這樣既可以實現代碼復用,又可以靈活地進行功能組合,最終打包成原子化服務或原生 App。
通過本次活動,技術專家與開發者分享討論了 HarmonyOS 應用開發中多個技術方向的實戰經驗和開發問題。沙龍不僅為開發者們搭建了一個學習和交流的平臺,還為他們提供了一個與業界專家面對面交流、答疑解惑的機會,希望幫助開發者高效完成開發。我們期待,在 HarmonyOS 生態持續發展的背景下,開發者們能夠抓住機遇,勇于創新,為用戶帶來更多優質的應用和服務。相信隨著 HarmonyOS 應用開發的不斷深入,開發者們將實現更多的突破和成就。