一、Android Things
一句話說,Android Things就是讓開發者可以使用Android開發工具開發嵌入式設備。If you can build an app, you can build a device.只要你會開發APP,你就能開發智能設備。Android Things的推出,掃清了將Android Phone/Tablet系統用在智能設備中的各種弊端。(通常需要嵌入很多NDK開發的接口,很多功能需要root后通過Linux命令實現),提供了更統一的接口。Android開發者也可以使用自己熟悉的開發工具,做智能硬件的開發。
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,下載最新鏡像燒錄就可以玩了。