Android Things是什麼

本文摘自我的簡書Android Things文集

一句話說,Android Things就是讓開發者可以使用Android開發工具開發嵌入式設備。

If you can build an app, you can build a device.

只要你會開發APP,你就能開發智能設備。

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

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

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

Android Things的平台架構如下圖所示,Android Things擴展了core Android Framework,通過Things Support Library提供了附加的API,使得開發者可以集成通常在手機等移動設備中沒有的硬體。

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 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系統的開發板,就像做Android開發你需要有一款Android手機一樣。目前支持Android Things的開發板有如下幾款:

想要了解更多關於Android Things的資料,可以訪問官網。

https://developer.android.google.cn/things/get-started/index.html

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

jianshu.com/nb/21038382

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

Android Things硬體選購指南

淘寶:https://sysolve.taobao.com

微店:https://weidian.com/?userid=954338999

推薦閱讀:

小米5殺後台很嚴重,有什麼辦法嗎?
如何評價 Lumia 830 被刷上 Android?
OS, ROM, UI各是什麼,有什麼區別,為什麼flyme叫OS,小米的應該是ROM吧,為什麼叫MIUI?
驍龍835移動平台有啥新特性?

TAG:Android | 物聯網 | Android開發 |