Android Things專題 1.前世今生

wfing123發表於2017-03-27

文| 谷歌開發者技術專家, 物聯網方向 (IOT GDE) 王玉成(York Wang)

2016 年 12 月,Google 釋出了 Developer Preview 版的 Android Things,該平臺為利用 Android 這一世界上最受支援的作業系統的強大功能構建物聯網產品鋪平了廣闊的道路。但它並不是一個全新的作業系統,而是通過同樣是 Google 開發的物聯網作業系統 Brillo 改進優化的一個作業系統。

今天,就跟大家說說 Android Things 的前世與今生,以及它與Brillo的淵源,到底它解決了什麼問題?

想知道為什麼人們需要 Android Things,就要首先搞清楚什麼是物聯網:
以前我們在聊到物聯網的話題時,只知道物聯網使我們的生活更智慧、更方便、更高效。可以方便地控制智慧裝置。

即使最簡單的控制裝置,也會要求物聯網具有三個最基本層次,每個層次的功能有所不同,春節剛過,我們就以春節回家為例,來說說物聯網的這幾個層次和它的功能能力。

全面感知:感知層需要解決資料來源頭的問題。怎麼去搜集各種原始資料?物聯網的物,即萬物,資料蒐集有多樣性。我們需要靠各種感測器去感知不同的資訊。就比如春節回老家前,我們需要給家裡的不同的長輩準備不同的禮物,比如爸爸可能需要一瓶好酒,奶奶可能需要一雙好的保暖鞋,爺爺可能需要一個好的柺杖……每個人的需要可能是不同的。

可靠傳遞:傳輸層解決資料的傳輸通路的問題。資料通路依靠各種協議,這些繁雜的協議,如何去實現自由的協議轉換呢?春節回老家過年,先坐火車,再做公交,再坐大巴,有可能坐牛車……當你換乘交通工具時,完成的是協議的轉換,而你所帶的禮物,就是需要安全傳送的資料資訊。當你把禮物帶回老家,物聯網的資料才完好無損的到達目的地。

智慧處理:應用層解決資料如何處理。經過長途跋涉,過年終於回老家了。這些禮物,需要你進行分類,然後再走親訪友,給不同的人送不同的東西。物聯網的資料處理,也就是這樣,把蒐集到的各種原始的資料,轉換成我們需要的資訊。

物聯網的資料傳輸這麼簡單?那為什麼還要弄這麼複雜的作業系統?別急,我們還是拿春運來解釋。
先自我羨慕一把,春運來回,我都成功搶到了火車硬臥票。如果你和我一樣給爺爺帶是急需的藥品,春節回家又不一定能買到票,你可以提前一個月快遞,畢竟藥品先到更重要。當然,也有人把幾個月都沒洗的衣服,一起帶回去讓家人洗,暫且這也算給家人的新年禮物吧。在物聯網的資料分析中,藥品是屬於那一類必須快速傳遞的資訊,髒衣服是屬於不怎麼急的資訊。這時候,簡單的、單一的傳輸路徑,就出了問題了。有的智慧裝置,是支援多種傳輸模式的,比如串列埠傳遞控制資訊,3G上網路卡傳遞必須實時接收的資訊。如果春節你的家人都很忙,你也不會帶一大堆髒衣吧。物聯網的感測器裝置,也有基本的決策功能,資料在節點上積累很多時,哪些先發,哪些後發?專業術語叫同步和非同步,都是根據整個系統的不同而定的。
問:上面內容都看了,還是沒有理解物聯網倒底是幹啥的?
答:再經歷一次春運吧。

物聯網的最小模型,就和春運帶禮物是一樣的。但是,在實際的工程應用中,會複雜很多。在春運中,碰到的各種難題,對應著物聯網系統的各種問題。但是任何工程問題,都是在最小系統上,再針對易用性,安全性,穩定性……做一些複雜的功能開發,最終形成一個穩健的系統。可以這麼說,如果把春運的各個環節的問題都解決了,你就可以做物聯網的方案商了。

Google利用物聯網作業系統來解決資料的收集和可靠傳遞,利用Google Cloud來解決資料智慧處理。那麼,Google的物聯網作業系統又經歷了哪些變化呢?

前世:Brillo
Brillo是在 2015Google I/O 大會上宣佈的一個產品。也是 Google 的第一款個物聯網作業系統。帶來了一個簡單的 bsp 移植的模型,方便硬體廠商快速匯入 Brillo 系統到他們自己的晶片/開發板上。並研發了 Weave 通訊協議,解決物聯網系統中多樣化的通訊協議的問題。Brillo適用於物聯網閘道器類似的產品,以前Google Device推出過一款基於Brillo的路由器。

今生: Android Things

Android Things是2016年12月份推出的物聯網作業系統。做為Brillo的優化,主要做了以下改變:
Brillo只能用C/C++做開發,但是Android Things,可以用java進行開發,而且做了Android系統的所有測試。也就是說,Android的開發人員,能夠很快的轉換到Android Things的應用開發上來。
Android Things應用研發週期,跟Android的研發週期相同,可以直接用Android Studio來開發,用adb進行連線...
Android Things的SDK是Android SDK的子集。
完美支援OTA
已經有四款開發板作為原型開發。
可以輕易的通過Google Cloud使用Firebase,極大的加快了資料的處理速度。
整合的Weave協議,可以方便的搞定各種無線協議的連線。

這些改變使得Android Things不僅僅是一個物聯網作業系統,而且是一個可以快速做智慧硬體開發的平臺。 說這些條條框框還是不太好理解,後續會對每一點做詳細的解釋。

BTW:
這段主要說到brillo的產生的原因,以及在系統設計初衷,應用開發的特點。實際上還只是Android Things的皮毛。Android Things專題後續會包括功能,軟硬體開發環境,以及一個完整的示例,讓大家得心應手的用Android Things開發出自己的應用。

物聯網領域有多大,Android Things的天地就有多大,你可以盡情的發揮。
希望大家有什麼問題和建議,及時通過留言方式反饋給我,在專題的後續中,我會盡量的滿足大家的要求。

相關文章