天天看點

Android Things是什麼

<b>If you can build an app, you can build a device. </b> <b>隻要你會開發APP,你就能開發智能裝置。</b>

自2016年12月Google推出Android Things的Develop Preview 1,至今短短的一年多時間,已經版本疊代到2017年12月釋出的Develop Preview 6.1版,Android的版本更新非常活躍,每6-8周就會有新的Release放出,是個充滿活力的技術方向。

事實上,Android應用于裝置已經不是一個新鮮的命題,我們自2014年已經開始了将Android應用于智能工業控制、智能消費終端中。目前市面上常見的廣告機、智能門禁,以及很多餐廳、便利店的收銀裝置,都是基于Android系統開發的。如圖1所示,Android已在智能裝置中被廣泛使用。

圖1 使用Android系統的廣告機、販賣機、收銀機、智能門禁

Android Things的推出,掃清了将Android Phone/Tablet系統用在智能裝置中的各種弊端(通常需要嵌入很多NDK開發的接口,很多功能需要root後通過Linux指令實作),提供了更統一的接口。Android開發者也可以使用自己熟悉的開發工具,做智能硬體的開發。

Android Things的平台架構如圖2所示,Android Things擴充了core Android Framework,通過Things Support Library提供了附加的API,使得開發者可以內建通常在手機等移動裝置中沒有的硬體。

圖2 Android Things平台架構

 單一自啟動APP,通常裝置會隻運作單一的程式,即開發者的APP會自動啟動,系統APP不會呈現出來。

 顯示是可選的,裝置可以沒有螢幕,通過按鈕、觸摸、LED燈、語音或其他形式與使用者互動。

 提供了通過I/O驅動外設的接口,讓開發者可以與傳感器和執行器進行通訊互動,支援GPIO、PWM、I2C、SPI和UART。

 使用者驅動API,使用者驅動繼承Android Framework Services,允許APP将硬體事件注入到Framework中,使得其他APP可以使用标準的Android API通路。

 物聯網雲,通過Google物聯網雲平台,開發者可以友善且安全的連接配接、管理數百萬計遍布全球的裝置,并從中擷取資料。Google物聯網雲平台和一些其他的Google服務,提供了包括資料采集、處理分析和可視化物聯網資料的完整解決方案。

 更統一的開發架構和接口

傳統的單片機開發智能硬體的方式,開發工具、開發接口多而雜,不同的單片機廠商甚至型号,都有特定的開發工具,學習成本高,不統一,程式的可移植性差、可管理性差。Android Things提供更完善的開發架構,更友善好用的開發工具(而且是免費的)。

 更适合Android開發者進行智能裝置的創新

智能硬體通常都要實作與伺服器互動、與手機互動,這些領域都是Android開發者熟悉的領域,通過Android Things開發智能裝置,可以将Android開發者在移動開發方面的經驗更深入的展現在智能裝置開發中。傳統的硬體、單片機開發者,對移動開發不熟悉,自然會在智能裝置創新中落後于對移動開發了如指掌的Android開發者。

 更先進的基礎架構

Android Things相較于傳統的裝置平台,就如同Android手機與Nokia功能機的差別。尤其在有觸摸屏人機互動的裝置中,Android的優勢明顯,Android對UI線程的優先和保障機制,使得傳統裝置人機界面操作卡頓的問題可以很好解決。Android基于Java的面向對象開發,也使得程式更容易封裝和管理。衆多的Android開源資源,也可以友善的應用到Android Things中來。我們開發的Android工業裝置智能操作終端,在應用中給使用者提供了更好的操作體驗,受到了使用者的廣泛好評。

 更安全的物聯網雲

傳統的物聯網方案,由于裝置端、服務端往往由不同的開發團隊完成,裝置端開發往往還停留在比較古老的開發階段,對一些新的安全物聯網協定了解較少,使得很多物聯網裝置,還在采用TCP協定明碼傳輸資料,很容易被截獲和篡改。而有資訊安全概念和經驗的服務端開發者,由于不了解硬體開發也無能為力。新聞報道過的一些智能攝像頭被入侵的案例,很多與這方面有關。而Android Things徹底改變了這種狀況,手機APP與服務端通訊安全方面的經驗,Android開發者可以直接應用在裝置開發中。很多新的物聯網協定,如MQTT,都有Android的用戶端實作可以友善使用。

 更豐富的雲服務資源

使用Android Things,有豐富的雲服務資源可以使用,可以基于TensorFlow實作人工智能(如圖像識别),可以通過Google Assistant獲得智能服務。國内通路Google服務目前還有一些問題,不過想一些辦法解決。同時,阿裡、騰訊也都有一些智能服務(如圖像識别、人臉識别等)通過雲提供,使用Android Things也可以友善內建。

 更低的入門門檻

傳統的智能硬體開發,通常需要購買昂貴的開發套件,而Android Things隻需要幾百塊錢買個開發套件接上顯示器或電視機就可以玩起來。如果你手上有樹莓派3,下載下傳最新鏡像燒錄就可以玩了。

 成本

對于低成本的智能小裝置,Android Things可能不适合,一個能流暢運作Android Things的硬體環境,成本也要200+。

 硬體控制實時性

通過Android層對硬體進行控制,實時性肯定不及運作在單片機中的主程式程序,是以直接用Android Things做一些對傳感器高實時的掃描輪詢,或是對電機進行伺服控制,這不是Android Things的優勢。

 已有熟悉的硬體開發平台

如果開發者已經有自己熟悉的硬體開發平台,有單片機開發經驗,但對Android開發并不熟悉,使用Android Things就有些得不償失。

想要了解更多關于Android Things的資料,可以通路官網。

<a href="https://link.jianshu.com?t=https%3A%2F%2Fdeveloper.android.google.cn%2Fthings%2Fget-started%2Findex.html" target="_blank">https://developer.android.google.cn/things/get-started/index.html</a>

我的Android Things文集中的其他文章,也将幫助你動手進行Android Things的開發實踐。

<a href="https://www.jianshu.com/nb/21038382" target="_blank">https://www.jianshu.com/nb/21038382</a>

Android Things的入門和學習過程,是一個動手實踐的過程,如需購買硬體和開發配件套裝,可以從這裡了解:

<a href="https://www.jianshu.com/p/84c9cbb232db" target="_blank">Android Things硬體選購指南</a>

繼續閱讀