鴻蒙HarmonyOS應(yīng)用開發(fā)落地實踐,Harmony Go 技術(shù)沙龍落地北京
原創(chuàng)【51CTO.com原創(chuàng)稿件】12月26日,華為消費者BG軟件部開源中心與51CTO Harmony OS技術(shù)社區(qū)攜手,共同主辦了主題為“Harmony OS 應(yīng)用開發(fā)落地實踐”的 Harmony Go 技術(shù)沙龍。
作為HarmonyOS 2.0 手機開發(fā)者 Beta 版發(fā)布后的首場技術(shù)沙龍,本次活動邀請了旗點科技創(chuàng)始人連志安、美的HarmonyOS FA開發(fā)負(fù)責(zé)人梁振華、Harmony OS課程開發(fā)者孫洋、寶寶巴士資深架構(gòu)師楊清山、安徽微游互娛CTO張志斌幾位不同領(lǐng)域的業(yè)內(nèi)專家,圍繞Harmony OS應(yīng)用開發(fā),為開發(fā)者答疑解惑。
基于HarmonyOS,打造智能安防系統(tǒng)
HarmonyOS是面向萬物互聯(lián)而誕生的系統(tǒng),它不僅可以運行在手機上,也可以運行在較小型設(shè)備上,比如智能手環(huán)、安防報警器等?;贖armonyOS多端適用的特性,旗點科技創(chuàng)始人連志安老師帶來一個與狄泰軟件學(xué)院創(chuàng)始人唐佐林老師共同開發(fā)的安防場景應(yīng)用項目,并做了詳細(xì)的技術(shù)解讀。
旗點科技創(chuàng)始人連志安老師
這個基于HarmonyOS的安防項目具有完整性、統(tǒng)一性、可擴展性和開源的特點,后續(xù)還可以在此基礎(chǔ)上開發(fā)增加一些其他場景,擴展出一些新的功能。
整個安防項目系統(tǒng)的架構(gòu)設(shè)計包括無線傳感器、無線模塊、HarmonyOS設(shè)備、HarmonyOS應(yīng)用、局域網(wǎng)和云服務(wù)。無線傳感器負(fù)責(zé)收集數(shù)據(jù),然后通過無線模塊將數(shù)據(jù)傳遞到HarmonyOS設(shè)備;HarmonyOS設(shè)備可以通過局域網(wǎng)或者云服務(wù)與HarmonyOS應(yīng)用進(jìn)行通信。這樣便形成一條從傳感器到HarmonyOS應(yīng)用的通信鏈路。
???
在此鏈路下,系統(tǒng)狀態(tài)主要分工作狀態(tài)和警報狀態(tài)兩種。工作狀態(tài)下整個系統(tǒng)會進(jìn)入一個高等級的戒備,當(dāng)主人不在家時,門窗傳感器被觸發(fā),系統(tǒng)便會發(fā)出報警,并通過手機應(yīng)用做提醒,這是布防狀態(tài)。但是如果主人在家時,系統(tǒng)便會進(jìn)入一種低等級的撤防狀態(tài),即使傳感器被觸發(fā),系統(tǒng)也不會給發(fā)出報警。
整個安防系統(tǒng)中HarmonyOS 應(yīng)用和HarmonyOS設(shè)備的交互主要分為四大流程:
? 首先是設(shè)備發(fā)現(xiàn)流程:讓HarmonyOS應(yīng)用去發(fā)現(xiàn)HarmonyOS設(shè)備;
? 其次是設(shè)備上報流程:HarmonyOS設(shè)備能夠把數(shù)據(jù)上傳到HarmonyOS應(yīng)用上;
? 第三是設(shè)備控制流程:HarmonyOS應(yīng)用能夠控制系統(tǒng)中的設(shè)備;
? 最后是應(yīng)答流程:應(yīng)用和設(shè)備間發(fā)送的數(shù)據(jù)和指令可以相互應(yīng)答,保證通信完整。
為了滿足系統(tǒng)的應(yīng)用場景,系統(tǒng)中用TLV協(xié)議作為通信協(xié)議。它的數(shù)據(jù)格式主要分為三大部分,第一部分是協(xié)議標(biāo)題,大概有12個字節(jié),往下是數(shù)據(jù)長度,占了4個字節(jié),接下來是數(shù)據(jù)內(nèi)容。數(shù)據(jù)內(nèi)容采用了JSON的數(shù)據(jù)格式。
設(shè)備發(fā)現(xiàn)流程主要是分為兩種情況,在HarmonyOS應(yīng)用沒有設(shè)備信息時,它會在局域網(wǎng)對外發(fā)送一個廣播,然后HarmonyOS設(shè)備收到廣播后,會把設(shè)備ID和一些相關(guān)信息返回給應(yīng)用,最后應(yīng)用去發(fā)動一個連接的請求,設(shè)備這邊響應(yīng)請求。如果HarmonyOS應(yīng)用有設(shè)備信息時,它就可以直接發(fā)送請求,設(shè)備做相應(yīng)的應(yīng)答即可。
設(shè)備上報流程也很簡單,設(shè)備上報一個JSON字段的數(shù)據(jù)解析給到應(yīng)用,應(yīng)用做相應(yīng)的應(yīng)答即可。通過應(yīng)用還可以控制系統(tǒng)中的設(shè)備,例如控制燈的打開和關(guān)閉。
在整個安防系統(tǒng)中,設(shè)備開發(fā)有三個比較重要的點。一個是無線技術(shù),保證HarmonyOS設(shè)備可以和無線傳感器進(jìn)行通信;第二個是傳感器,例如煙感、紅外等;第三是網(wǎng)絡(luò)通信能力,讓設(shè)備和應(yīng)用進(jìn)行通信。
設(shè)備開發(fā)流程分為設(shè)備啟動并初始化,初始化后創(chuàng)建串口線程和網(wǎng)絡(luò)線程。串口線程的作用是和無線模塊進(jìn)行通信,判斷傳感器的類型,然后把傳感器信息上報給應(yīng)用。網(wǎng)絡(luò)線程主要是接收應(yīng)用發(fā)來的數(shù)據(jù),讀取網(wǎng)絡(luò)數(shù)據(jù),然后解析數(shù)據(jù)格式,執(zhí)行相應(yīng)的指令。
???
應(yīng)用開發(fā)流程主要分為UI界面和后臺服務(wù)兩個路線。UI界面包括日志存儲、系統(tǒng)的狀態(tài)和設(shè)置功能。后臺服務(wù)包括網(wǎng)絡(luò)通信和后臺通知功能。
方便快捷,一碰開啟智慧生活
HarmonyOS是面向未來的分布式系統(tǒng),同一套系統(tǒng)能力即可適配多種終端形式。例如手機、智慧屏、車機、手表等。在未來的智慧生活中,用戶與物聯(lián)網(wǎng)設(shè)備間的交互也會更加的簡潔高效。本次沙龍上,美的HarmonyOS FA開發(fā)負(fù)責(zé)人梁振華分享了基于Harmony OS開發(fā)物聯(lián)網(wǎng)產(chǎn)品的經(jīng)驗。
美的HarmonyOS FA開發(fā)負(fù)責(zé)人梁振華老師
目前Harmony應(yīng)用分為FA和PA,使用裝有HarmonyOS模組的美的設(shè)備時,通過 HarmonyOS的NFC貼入口,即可下載HarmonyOS FA,然后打開進(jìn)行設(shè)備的控制和配網(wǎng)。
???
配網(wǎng)模式有NAN模式配網(wǎng)和AP模式配網(wǎng)。為了讓用戶快速配網(wǎng),美的和華為合作,開發(fā)了NAN秒配網(wǎng)控制的新模式,手機和設(shè)備一碰,即可實現(xiàn)配網(wǎng),并且通過配網(wǎng)通道,正在配網(wǎng)的過程中就已經(jīng)能夠?qū)υO(shè)備進(jìn)行控制。而AP模式配網(wǎng)需要通過WiFi進(jìn)行點對點的控制,配上網(wǎng)之后才能進(jìn)行控制。
分布式助力,實現(xiàn)多設(shè)備聯(lián)動
分布式軟總線是HarmonyOS的一大特性,基于這一特點,Harmony OS課程開發(fā)者孫洋為開發(fā)者分享了多設(shè)備聯(lián)動的開發(fā)案例。
Harmony OS課程開發(fā)者孫洋老師
???
在這個案例中,分布式軟總線主要體現(xiàn)有三方面,第一方面是硬件虛擬化,第二方面是分布式調(diào)度,第三方面是音樂播放器demo。硬件虛擬化是概念性的東西,實現(xiàn)起來需要一定的技術(shù)手段。而利用分布式調(diào)度這個技術(shù),便可以把各個設(shè)備連接在一起,形成一個虛擬的超級終端。
???
分布式軟總線不僅把物理上隔離的各個設(shè)備連接在一起,而且還保證了傳輸速度,打破PCB板上的硬件能力約束。本案例中的兩部手機可看作設(shè)備A和設(shè)備B,開發(fā)者在應(yīng)用層進(jìn)行開發(fā),調(diào)用底層分布式硬件的虛擬化接口,便可實現(xiàn)設(shè)備A控制設(shè)備B的能力。
跨屏互動,增加親子交流
HarmonyOS的分布式特性,不僅會讓智能家居操作簡單,還可讓教育場景中融入親子互動。寶寶巴士資深架構(gòu)師楊清山從親子互動的角度切入,為開發(fā)者分享了基于HarmonyOS分布式能力的跨屏互動案例。
寶寶巴士資深架構(gòu)師楊清山老師
本案例中利用HarmonyOS分布式特性,將多個設(shè)備連接起來,這里采用的組網(wǎng)方式是二維碼進(jìn)行組網(wǎng),首先在大屏上生成二維碼,然后手機掃描連接。技術(shù)上只需引入一個包,然后初始化數(shù)據(jù)模型,即可創(chuàng)建類似的服務(wù)端和客戶端操作。
???
10分鐘開發(fā)一個分歧終端機
在家居、教育后,HarmonyOS的分布式特性還可運用在娛樂上,這次微游互娛CTO張志斌分享的分布式分歧終端機游戲案例便是基于HarmonyOS的分布式特性上開發(fā)。分布式分歧終端機主要包含游戲的輸入、游戲的數(shù)據(jù)和游戲的狀態(tài)功能模塊。游戲的狀態(tài)包括加入和退出、獲取玩家的輸入、顯示游戲的數(shù)據(jù)和狀態(tài)。
???
微游互娛CTO張志斌老師
???
HarmonyOS中提供了一個RemoteObject的接口和對象,通過這個對象對傳輸?shù)恼埱蟠a和輸入?yún)?shù)封裝,來保證兩個模塊間的通信。以此來解決數(shù)據(jù)傳輸過程存在的問題。在HarmonyOS中,當(dāng)你創(chuàng)建調(diào)用connect Ability時,想要連接的設(shè)備就會先建立起調(diào)取的動作, 然后再去創(chuàng)建這個連接,達(dá)到自動調(diào)取和連接的一個步驟。
這是分布式技術(shù)一個比較有趣的設(shè)定,其實HarmonyOS已經(jīng)把連接做到系統(tǒng)層面了,我們開發(fā)調(diào)取時,只需考慮應(yīng)用層面的問題。應(yīng)用層面需要考慮的是系統(tǒng)當(dāng)前環(huán)境下面有多少設(shè)備,需要進(jìn)行怎樣的交互。
所以基于分布式軟總線,我們可以去添加連接多個設(shè)備,只要它能夠連進(jìn)去,這便不需要我們再額外進(jìn)行任何開發(fā)的工作量。
沙龍現(xiàn)場特別設(shè)置了有獎問答和調(diào)研等多個互動活動,一方面收集開發(fā)者的意見建議,另一方面也引導(dǎo)大家學(xué)習(xí)現(xiàn)場各位老師分享的精華內(nèi)容。此外,開發(fā)者們還可以隨時登陸51CTO HarmonyOS技術(shù)社區(qū)學(xué)習(xí)老師們更多精彩的課程。
本次沙龍是Harmony Go全國技術(shù)沙龍巡展第二站,也是2020年社區(qū)線下活動的收官之作,2021年,Harmony Go將走進(jìn)上海、南京、廣州等多座城市,繼續(xù)與開發(fā)者面對面交流HarmonyOS開發(fā)經(jīng)驗,輸送有深度、有干貨的HarmonyOS技術(shù)新知。
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】