十三個Codelabs案例,一文帶你學HarmonyOS核心能力
HarmonyOS是新一代的智能終端操作系統,為不同設備的智能化、互聯與協同提供了統一的語言,帶來簡潔,流暢,連續,安全可靠的全場景交互體驗。開發者可就社交購物、智慧出行、移動辦公、影音娛樂、智慧教育、運動健康、智能家居等場景進行應用開發。想知道這些場景下究竟能創造出哪些新奇實用的案例,想知道當中都運用了哪些HarmonyOS核心能力?讓我們通過13個Codelabs開發樣例,來為大家一一闡述 。
社交購物
學習UI框架和卡片開發
HarmonyOS支持Java UI和JS UI兩種開發方式,除了Java/JS的組件布局開發,HarmonyOS還支持服務卡片,支持多模輸入等開發。
我們將為大家介紹三個社交購物場景下的Codelabs開發案例,通過這三個案例的學習,大家可以深入了解HarmonyOS UI框架、服務卡片和多模開發的相關知識點。
如圖所示,案例1是使用Java UI框架編寫的金融模板,該模板是使用Java UI框架中常見組件和布局進行開發的。

圖1 Java UI框架金融模板
案例2是使用JS UI框架編寫的購物車模板,該模板是使用HML(HarmonyOS Markup Language)、CSS、JavaScript進行開發的。效果如下圖所示:

圖2 JS UI框架的購物車模板
案例3是購物模板的卡片,包含1X2,2X2,2X4三種不同的服務卡片。
圖3 服務卡片的購物模板
另外,HarmonyOS目前不僅支持傳統的輸入交互方式,例如按鍵、觸控、鍵盤、鼠標等,同時提供多模輸入融合框架,可以支持語音等新型的輸入交互方式。

圖4 多模輸入
通過上述三個案例,開發者可以開發出自己想要的頁面,大體達到了HarmonyOS初級開發者的水平,之后通過進階學習,了解HarmonyOS的新能力、新特性,包括分布式、AI、設備管理等知識。
智慧出行
學習分布式任務調度
在智慧出行場景下,我們利用手機、手表、車機打造了一個分布式地圖導航流轉的案例——案例4。
分布式地圖導航流轉案例可以實現手機的導航信息在手表和車機之間無縫流轉:上車后,在手機點擊“遷移”按鈕,導航流轉到車機上;下車后,在車機上點擊“遷移”按鈕,導航流轉到手表和手機,通過手表的提示信息。
在HarmonyOS中,分布式任務調度平臺對搭載HarmonyOS的多設備構筑的“超級終端”提供統一的組件管理能力,因此要實現這么一款分布式應用,其核心只需要開發者傳入目標設備的deviceId,調用 continueAbility 這個接口就可以實現分布式的跨屏流轉,這當中利用的就是分布式任務調度的相關技術。

圖5 分布式地圖導航流轉核心代碼
移動辦公
學習分布式文件服務、分布式數據服務
剛剛我們利用智慧出行場景給大家介紹了分布式任務調度的相關知識,現在我們利用移動辦公場景給大家介紹分布式的另外兩個核心知識點——分布式文件服務和分布式數據服務。
在案例5中,我們利用三臺設備打造了一個超級會議終端,利用分布式文件服務,實現三臺手機共享同一份PPT文稿數據。利用分布式數據服務,實現多臺設備之間的同步涂鴉。
效果如視頻所示:
剛剛這個案例中應用了分布式文件服務和分布式數據服務。下面我們來逐一介紹一下:
分布式文件服務讓應用程序可以不感知文件所在的存儲設備,在多個設備之間無縫獲取文件。本例中設備和設備之間復雜的網絡通信系統HarmonyOS已經為開發者實現好了,各位開發者只需要調用一行代碼 Context.getDistributedDir() 就可以讀取到分布式文件路徑,將PPT文稿數據存放其中就可以實現跨設備的文件讀取。
分布式文件服務運作示意圖如下:

圖6 分布式文件服務運作示意圖
分布式數據服務支持應用數據相互同步,為用戶提供在多種終端設備上一致的數據訪問體驗。在本例中,兩臺設備上同步顯示涂鴉筆記“1”就是使用的這一分布式技術。我們可以理解涂鴉筆記就是一些點坐標的信息,繪制的過程就是存儲信息的過程,調用的接口是 singleKvStore.putString(key,value),同樣設備和設備之間復雜的數據同步由系統自動完成,開發者只需要調用 singleKvStore.getString(key) 就可以實現多臺設備之間涂鴉筆記的同步顯示。
分布式數據服務運作示意圖如下:

圖7 分布式數據服務運作示意圖
影音娛樂
學習分布式技術選型
我們通過智慧出行和移動辦公兩個典型場景給大家完整的介紹了分布式的三個核心技術(分布式任務調度、分布式文件服務和分布式數據服務),但開發者經常遇到的問題是不知道應該選擇哪一個分布式技術對應到我們的應用中,也就是技術選型。下面我們利用影音娛樂場景來幫助大家進一步的理解如何進行技術選型。
案例6是一個分布式視頻播放器,其實現的功能是通過左側手機,可以把正在播放的視頻流轉到右側手機上,左側手機還能控制右側手機的音量、播放進度等。以上都是利用的分布式任務調度實現的。
圖8 分布式視頻播放器
案例7是一個分布式照相機,其實現的功能是右側手機拍攝的照片可以立即流轉到左側手機進行顯示,這利用的是分布式文件服務。
圖9 分布式照相機
案例8是一個分布式遙控器,其實現的功能是小屏輸入的文字可以同步在大屏上顯示,手機承擔大屏搜索中的文字輸入功能,這是利用的分布式數據服務實現的。
圖10 分布式遙控器
智慧教育
學習AI能力
HarmonyOS擁有強大的AI能力,支持開箱即用。開發者可以靈活、便捷地選擇AI能力,讓應用變得更加智能。我們利用智慧教育這一場景來學習。
案例9是在AI能力加持下的智慧教育系統,其用到了AI語音識別、通用文字識別、AI語音播報三項技術。
首先,該系統具備可見可說的能力,即老師可以通過和系統對話來尋找并打開對應的課件,這是利用AI語音識別的相關能力。當老師通過語音控制課件切換時,可以在 onIntermediateResults 回調中實時獲取到識別結果,將識別結果與關鍵字進行匹配,匹配成功則展示對應課件。
其次,該系統利用通用文字識別,將課件上的古詩文字(原始課件是一張文字圖片)識別出來,為后續語音播報提供語料。
最后,是AI語音播報,老師點擊“閱讀古詩”后,調用語音播報引擎的 speakText 接口對文字進行朗讀。該系統在AI能力的加持下,使課堂更加智能,教學更加方便。
運動健康
學習傳感器的使用
HarmonyOS傳感器是應用訪問底層硬件傳感器的一種設備抽象概念,開發者根據傳感器提供的Sensor API,可以查詢設備上的傳感器,簡化應用開發。
案例10利用手機和手表做了一個分布式運動健康的應用,這當中就使用了傳感器中的Sensor API,在手機端展示通過手表上的傳感器獲取到的數據(心率、步數等),用戶可以實時查看自己的身體情況,當心率出現異常的時候還可以對用戶進行提醒,效果如下圖所示。
圖11 分布式運動健康應用
智能家居
學習設備控制
我們都知道HarmonyOS是一個萬物互聯時代的操作系統,是設備和設備之間交流的一種語言,在這一使命下,HarmonyOS最重要的一個典型應用場景就是智能家居。完整的開發一個智能家居,我們需要兩個步驟,第一步開發手機端,第二步開發設備端。
下面我們將就一個臺燈的案例為大家展開介紹智能家居的完整開發流程。
首先是手機端的開發,案例11是一個智能家居模板。開發者只需下載HUAWEI DevEco Studio,選擇IDE中已經集成的智能家居模板(Device Control FeatureAbility),即可把臺燈這個項目運行起來。
當然智能家居模板中還包括了牙刷和豆漿機,開發者可以根據業務需求,做一些簡單配置即可運行。

圖12 智能家居模板
其次是設備端的開發, 要完成設備端的開發需要獲取HarmonyOS認證模組,HarmonyOS技術支持團隊會為設備廠商提供全套賦能套件,幫助你快速完成設備端的開發。案例12是一個無感配網的流程,可以實現手機和開發板的配網,這樣手機下發的指令就可以在開發板上顯示。
圖13 無感配網
學會手機端和設備端的開發后,設備廠商就可以開發出自己的設備了,案例13是一個臺燈案例,通過手機可以實現對臺燈的操控,如調節開關、亮度等。
圖14 手機實現對臺燈的操控
通過以上七大場景的13個Codelabs案例,我們幫助大家快速了解HarmonyOS的UI框架、卡片開發、分布式、AI、傳感器和設備控制等核心技術,這些案例已經陸續上線HarmonyOS Codelabs,歡迎大家學習。
● HarmonyOS Codelabs
https://developer.huawei.com/consumer/cn/codelabsPortal/index
讀完了13個Codelabs案例,是不是躍躍欲試想進行HarmonyOS開發?想要現場聆聽更多HarmonyOS技術解讀,想要了解更多HarmonyOS最新技術,那就千萬不要錯過2021年7月31日在杭州舉辦的HarmonyOS開發者日活動啦~
15+場精彩演講,20+位技術專家,300+位開發者同臺交流,這是一場有趣好玩的科技盛會,7月31日,杭州,我們期待您的到來~