如何看待谷歌推出的新物聯網平台 Android Things?以及前景如何?

Google推出Android Things新物聯網平台:開發者預覽已放出

該公司剛剛推出了全新的 Android Things 平台。該系統能夠連接揚聲器、安防攝像頭、路由器等設備,幫助企業輕鬆地構建並推出全新的硬體產品,因為它支持早為人知的 Android 開發工具。

---------

本題已經收錄知乎圓桌 ? Google I/O 2017,更多「Google I/O」相關話題歡迎關注討論


利益相關,答案不免會有 bias,僅供參考。

2016年12月13日,Android Things 終於 launch 了,這一年算是沒白忙。

Android Things 實際上就是 Brillo 2.0,加入了 Java 從而允許開發者使用熟悉的 Android API,開發者也不再需要編譯整個操作系統,而只需要開發一個 APK 就可以了,極大的降低了開發門檻。(Brillo 發布後有些開發者抱怨編譯太慢,因為很多用的是筆記本,完整編譯可能需要一個多小時,而 Google 給我們配的 workstation 都是至強處理器,比如我的是雙 CPU,一個 CPU 12核,一共24核48線程的,編譯整個操作系統也就五分鐘吧,所以當時並沒有考慮到這些問題)

很多人會覺得加入了 Java,對硬體性能的要求是不是就高了呢,高肯定是會高一點的,但是現在移動領域的硬體發展的這麼快,性能每年都在提升,價格每年都在下降,為了節約那一點點硬體成本,還要增加開發的成本,值得么?

當然了,如果僅僅是引入 Android API,那和普通的 Android 還有什麼不同呢?所以我們還加入了兩套針對物聯網的新的 API,分別是 Peripheral I/O 和 User-Space Drivers。

Peripheral I/O 是方便開發者訪問各種 pin 的,支持各種標準:GPIO、PWM、I2C、SPI、UART。詳見文檔:https://developer.android.com/things/sdk/pio/index.html

User-Space Drivers 可以讓開發者在不改動操作系統的情況下為自己的設備提供驅動,從而讓這些設備可以被 Android Framework 識別,比如各種 sensor 以及輸入設備。詳見文檔:https://developer.android.com/things/sdk/drivers/index.html

還有一點區別就是,Brillo 沒有任何 UI,而 Android Things 可以有,但並不是必須的,這樣就照顧到了各種使用情況。其實 UI 在物聯網中還是挺常見的,比如有一陣特別火的智能鏡子之類的。

其實我覺得 Android Things 最重要的特性還是安全,這是目前很多物聯網產品忽視的問題,但實際上卻是極其重要的。還記得十月份針對 Dyn 發起的 DDoS 攻擊么,黑客就是利用了一些國產的物聯網攝像頭。說來也可以理解,很多小廠商,根本沒有人力物力來處理安全問題,如果使用 Android Things 就不用擔心任何系統安全漏洞,Google 有專門的安全團隊,Android 每個月的安全補丁、漏洞獎勵計劃,這些都可以保證系統的安全。Android Things 還使用了和 Android Nougat 的 A/B System Updates 一樣的自動更新系統,保證你的設備能夠及時打上安全補丁。另外還有一點就是 Verified Boot ,這也是非常重要的一個環節,他保證了你買到的設備只能運行被簽名的系統,也就是說即使黑客可以在物理上接觸到你的設備,也無法隨便刷入動了手腳的系統,甚至是回滾到已知有漏洞的老版本都不可以。

最後,如果你手上有 Intel? Edison、NXP Pico i.MX6UL、Raspberry Pi 3,現在就可以前往 https://developer.android.com/things/preview/download.html 下載 Android Things 體驗開發者預覽版了,如果沒有的話,這裡可以找到購買鏈接:https://developer.android.com/things/hardware/developer-kits.html#where_to_buy

另外歡迎加入官方 G+ Community


用樹莓派3刷了個Android Things,然後跑了下自己的app,沒有任何違和感。

個人比較看好Android Things的前景,降低了物聯網設備的編碼門檻,提供了官方的物聯網api,可以訪問各種感測器。

比直接用Android當物聯網系統靠譜多了。


個人觀點,Google things的最大戰略意義或者說最光明的piont在於推進weave協議。

先說說用Java寫嵌入式軟體的事。

作為嵌入式工程師表示,Android studio上編APP就可以直接在硬體上運行,實在是太贊了,而且這也是趨勢。效率也著實會高出不少,我呢就負責平台介面好了。

BTW,相比Android studio,傳統的IAR,keil這些確實太像石器時代的產物了,每每在他們面前都不好意思打開。

再說回平台的事。現在想一統天下的物聯網平台太多,用了一些,發現底層驅動到平台架構最終都還是得碼農們自己動手的(Linux也得裁啊),這和PC或者移動端一套框架包打天下還是很不一樣的。Android things也不會例外。

何況,嵌入式工程師苦逼慣了,DIY系統就是看家本領,這並不會是最吸引人的地方。Google 這麼多牛人,想必不會明白物聯網時代硬體平台碎片化會更嚴重,很難有一統江湖的OS這個道理。

那麼,Android things最可能解決的,也是物聯網最大的痛點,應該還是在這些「碎片」間的通信協議。這也是為數不多有可能形成事實標準的地方。

必須指出Android things的量級就決定了硬體不會太弱(在樹莓派3上體驗了一下,不快不慢吧),定位還是在網關,路由這些高級硬體上。至於數量最為眾多的感知層弱硬體,估計是很難能用上things了。那麼從感知層到控制節點的通信協議,以及與雲後台的配合就顯得異常重要。

而一旦google things佔據了家庭入口,數量更多的終端要想接入,weave就成了不二的選擇。

所以呢,Google things再重也不要緊,weave一定要輕量。

當然,我也相信大廠一定會用Google things的平台,然後砍掉weave的。呵呵


題主提問問題的時候,Google剛剛發布了Android Things的第一個版本,幾個月過去Google又發布了Android Things的第二個開發者預覽版(DP2)。所以小開打算結合第一、第二個版本,系統全面地闡述一下谷歌推出的Android Things到底是個什麼東西,有什麼意義?

如果對IoT關注不多,可能會對Android Things感到有些陌生。Android Things是一個極簡版的 Android 系統。旨在連接物聯網(IoT)的底層設備。讓 IoT 設備開發更加簡單、快速。開發者可以直接使用Android API,Google服務,還有熟悉的Android Studio、Google CloudPlatform以及Google Play。並且可以通過 OTA 更新、測量和崩潰報告進行可伸縮的管理。

與Android的關係

Android Things的前身是 Brillo -Google 在 2015 年推出的物聯網操作系統。

在2016年底升級並更名為Android Things。從名字上強調了「基於Android」和「屬於Android生態圈」這兩個事實,可以看作這是一次品牌重塑。

當了,弄了一年,不只是改了個名字。我們來看看兩者的架構:

圖:Brillo 架構

圖:AndroidThings 架構

其實Android Things與Brillo最大的區別在於,Brillo只能基於NDK進行開發,Android Things則可以基於Android和Google服務的API進行應用開發。也是就說,能夠用Java開發應用了。

所以不難猜出,這次的升級,Google意在為Android開發者提供熟悉的開發語言和開發工具,讓其融入Android龐大的開發者社區,進而跟上Android的成功步伐。(畢竟大部分的Android開發者都是Java程序員啊)

廉價的硬體需求

我們都知道,現在的Android手機沒個4核,3,4G內存都不好意思拿出來賣,而能否流暢運行還有打個問號。而Android Things的硬體要求的遠遠低於Android,畢竟它是為廉價IoT設備而生的,例如其中一款開發板NXP Pico i.MX6UL,只有500MHz CPU和512MB內存,價格只需要100多人民幣。

畢竟,價格是影響普及度的關鍵。

目前Android Things支持的開發板:

* Intel? Edison

* Intel? Joule?

* NXP Pico i.MX6UL

* Raspberry Pi 3

沒錯,最後那個就是很多攻城師都會買一個回家做擺設的 - 樹莓派 :)。

為物聯網設備帶來機器學習能力

在2016年的AlphaGo vs 李世石的圍棋大戰讓人工智慧,深度學習等概念走進大眾視野。

Android Things DP2增加的最有趣的特性,則是對TensorFlow的支持。只需要在build.gradle文件中增加一行聲明,則可以使用預先為ARM和x86架構構建好的TensorFlow庫。TensorFlow是Google的開源的機器學習庫,於本月發布了1.0版本。(但其實TensorFlow跟AlphaGo沒什麼關係)

Google還提供了一個使用樹莓派+攝像頭識別狗狗品種的demo。

有了機器學習能力,物聯網不再是收集感測器的幾個固定信號,進而能夠採集更多的信息。

應用領域

Android Things幾乎能應用在所有物聯網領域,例如智慧城市,智能交通,車聯網,物流倉儲,農業生產,工業4.0,停車場等。

唯一障礙可能就是成本了,我們大概不會為一個裝了Android Things的吐司麵包機買單。但是仍可以通過感測器讓吐司機,家裡花瓶的水量,甚至天氣均「online」。

業界意義

物聯網已不是新鮮事,我們的生活中,不知不覺已經開始用上了這類產品。

在景點遊玩結束時,我會先通過手機往被在停車場曝晒中小車發送一條「通風」指令,這樣我就不用駕駛「桑拿房」回家了。

又例如通過智能家居連接設備,我可以在設定在我回家前半小時,讓家裡的空調預先打開,電熱水器開始燒水,到家就可以享受了。

根據Gartner的發布數據,2016年物聯網設備已達到64億,到2020年則會到200億,市場份額會達到3000億美元。可見IoT領域在未來5年會迎來爆髮式增長。

然而目前IoT領域未能形成完整的生態,有兩個原因:

1. IoT硬體和協議的隔離

2. IoT端到雲的斷層

第一個障礙是目前IoT廠商,硬體,協議間嚴重隔離,均為孤島。例如每個汽車廠商均有自己的車聯網平台,智能家居廠商的產品只能用自家或合作夥伴的App連接。

IoT不僅僅是收集數據,通過網路發送指令。更強調互聯,管理,智能化。

老牌雲服務廠商如Amazon,微軟,又如國內的BAT,小米等企業,均已布局了物聯網雲平台,各自圈地,又互不兼容。

如果Android Things能夠跟複製Android的成功之路,勢必會形成一家獨大的局面。一個「壟斷」的開源IoT系統操作對開發者的號召力是不可估量的,這個局面一旦形成,會反過來倒逼IoT廠商進行對接及兼容,從而促進這個領域的發展。

結語

IoT(Internet Of Things)的終極形態是IoE(Internet of Everything),除了人類製造的機器外,所有的東西都能獲得感知,將多元化的信息匯聚到互聯網,通過大數據,機器智能的分析,能夠將一切安排得井井有條。更省心的家,更節能的工業,更高效的社會,和更多的想像力,我們的生活將會迎來更美好的時代。

而結合了機器學習能力的開源IoT操作系統Android Things,則是一個好的開始。


作為一個從dp1就開始關注並開發的人,從實際經驗上來看,Android Things看著很美好,但是不知道在座的開發工程師有幾個是從嵌入式畢業或者對硬體比較了解的,各種硬體協議和電工電路知識還是需要有一些了解的,比如i2c怎麼找SA的地址,對應的寄存器怎麼寫,雖然官方給你封裝了API,但是那都是大多數情況,再比如你都調試完了最後這個產品要上線又免不了定製硬體,那麼這裡面的硬體的調試和優化,對於一個做Android 開發的工程師還是有些難度的,所以說這個東西看著很美,但是實際上還是需要有很多的技術積累在裡面,不要相信在上面跑個demo就說好的人,可能他連上拉下拉電阻做什麼的都不知道,更別說什麼是MOSFET,光耦,所以你發現你只能一些調用的代碼,硬體的搭建調試還是很困難,PS:目前我已經完成了 PCA9685的驅動,並且每天關注官方的G+社區一天也就一個提問,這東西真的能火么?

20170410更新自己做的一個簡單的控制PWM電腦風扇轉速的圖


Android Things does not require a display.

不要求必須要有屏幕。

The Android Things platform is also streamlined for single application use. System apps are not present, and your app is launched automatically on startup to immerse your users in the app experience.

整個系統只安裝運行一個應用,開機自動全屏啟動這一個app。

使用場景上來看:

在有屏幕的情況下非常類似於 Android 系統提供的 lock task mode

As an IT administrator, you can configure Android 6.0 Marshmallow and later devices as corporate-owned, single-use (COSU) devices. These are Android devices used for a single purpose, such as digital signage, ticket printing, point of sale, or inventory management.

用在新聞櫥窗,印表機,微波爐這樣的設備上。

在沒屏幕的情況下,可以用在類似 Philips Hue 多彩燈泡,Google Home 這樣的設備上。

鏈接:

Set up Single-Purpose Devices | Android Developers

Overview | Android Things - Android Developers


3000 億美元不夠,這是一個萬億美元的市場。再也不用在aosp上編譯整個android系統,再調驅動,調kernel了。看好android things,看好google


這個要Google服務……國內沒有Google服務誒,教用戶怎麼翻牆么?


個人覺得需要分開來看整個google的物聯網平台。其物聯網平台可以分成以下幾個部分. 這幾部分是相互獨立,又互為補充。其前景個不相同,尤其是在國內使用情況。

Android Things OS

簡化版版本的android,為IOT領域的硬體提供些定製的API,如果PIO, USER driver。但是基本框架還是跟android一樣,java 虛擬機,各種java 的service(window manager, activity manager)和native serice(surfaceflinger,

audiofingler). 運行各種APK. 所以也決定了對硬體的最低需求:256MB DDR(推薦是512MB), 2GB Storage, 400MHZ ARM32之類。這相對於市面上各種IOT的設備來說還是比較高的。大部分都是上市的設備都是8bit/16bit MCU之類的CPU.

Android things OS的前景主要還在於:

1. 提供相對全面的開發和調試環境

2. 豐富的framework來處理網路,多媒體,安全的需求

3. 易於開發各種應用程序APK,無論是帶界面還是不帶界面的。以及極其豐富的開發應用程序的資源和人力

那什麼類型的產品或者公司適合使用android things OS呢?

1. 產品硬體能夠運行linux,最低256MB ddr size,有相關網路連接的需求。不一定是IOT相關的設備,同時又需要應用程序訪問非標準android 。

2. 對android平台提供的相關開發調試工具心生嚮往的。筆者曾經看過某知名電子書把android相關的fastboot和adb porting到他們的電子書平台(基於linux的)。國內也有很多公司在做著android相關版本的高度定製化。

3. 對安全非常重視的。 安全, 安全,安全是整個谷歌物聯網平台一再強調的。所以安全是貫穿於android things OS的方方面面的。但是大多數中小公司都沒有足夠的技術以及時間來定義和實施相關的安全需求

4. 豐富的複雜的應用程序開發需求

Android Things 硬體SOM(system on module)

經過谷歌認證的可以運行Android Things OS 的硬體模塊 SOM, 通常SOM上集成了 CPU, DDR, EMMC, PMIC, WIFIBT模塊,和對外用於擴展的若干USB,

I2C, I2S, SPI, UART, PWM介面. 目前SOM 都是居於NXP i.MX6UL 和i.MX7D。Intel由於基本退出IOT領域,早期的Intel的SOM後續不再支持了。Raspberry PI 是屬於開發版本硬體,不能用於真實的產品。後續可能會增加基於高通,MTK的SOM。目前i.MX 6UL和i.MX7D的SOM 的BOM 大概在10~15美金。

軟體方面, 谷歌為SOM提供google Cast 和google Assistant 相關的SDK. 同時嚴格定義和實現安全相關的features。力求打造最安全的IOT硬體和軟體方案。BOM上所有的軟體image通過google 雲升級/OTA.

什麼樣的產品和公司適合使用Android Things的SOM?

1. IOT相關的硬體產品形態。目前主要的產品形態還是集中在智能音箱相關的語音類產品

2. 通過SOM節省硬體設計,驅動開發投入

3. 對安全高度重視,又缺乏足夠的經驗和人力

4. 專註於應用層面的應用程序和電路設計實現

5. 利用google提供的Cast, Assistant, OTA, Cloud IOT相關服務的產品。因此產品只能投放在無牆的網路環境區域

Cloud IOT

簡而言之就是提供一個雲平台用來安全(又是強調安全)地管理,配置大範圍的設備及收集IOT設備數據。其主要包括兩部分: device manager和protocol bridge。Android Things SOM的管理也是基於Cloud IOT

具體可以參考下面的解釋。

Cloud IoT is a fully managed service on Google Cloud Platform to securely connect and manage a few or millions of Internet of Things (IoT) and connected devices. Cloud IoT service makes it easy for users to ingest data from large number of connected devices and build rich applications by integrating with the data analytics services of Google Cloud Platform.

The Cloud IoT service currently has two product offerings: the Device Manager and the Protocol

Bridge.

Cloud Device Manager

The Device Manager offers the capability to on-board, monitor, and manage both existing and new IoT devices on Google Cloud Platform. It establishes the identity of a device, provides the ability to add and track metadata of each device, and the mechanism to authenticate a device during connection. The Device Manager also maintains a logical configuration of each device which can be used to remotely control the device from Google Cloud Platform.

Cloud Protocol Bridge

The Protocol Bridge is a set of managed protocol endpoints for devices to securely connect to Google Cloud Platform over standard protocols used in the IoT industry, such as MQTT, HTTP, and gRPC.

Weave

基本上已經是被邊緣化了,和被cloud iot 替代。內部也是由Nest來維護。目前的Android Things 已經不集成 Weave


看到至少512MB內存,我笑了


hao


是不是意味著一個洞不僅可以帶走手機還能帶走印表機了。。。。


只想說,發展前景相當不錯。

Android things相當於嵌入式嵌入式系統開發,相比於使用C語言,Java開發更簡單。至於效率提升?現在硬體性能過剩,還在乎那點嗎?當然,極少數行業還是需要使用C語言。

Android開發者有福利了。

至於聯網系統升級,這點應該是不用擔心的。谷歌不入華的是搜索業務,並不是所以業務。16年底的北京上海開發者大會自己體會。

整體來說,利大於弊。企業開發成本降低,Android開發者前景變廣。好好努力,提升自己技術能力。

就醬。


要Google服務啊!!這個在國內就等變種了,否則怎麼玩?


Android Things makes developing connected embedded devices easy by providing the same Android development tools, best-in-class Android framework, and Google APIs that make developers successful on mobile.

Apps for embedded devices bring developers closer to hardware peripherals and drivers than phones and tablets. In addition, embedded devices typically present a single app experience to users. This document goes over the major additions, omissions, and differences between core Android development and Android Things.

Android Things extends the core Android framework with additional APIs provided by the Things Support Library. These APIs allow apps to integrate with new types of hardware not found on mobile devices.

The Android Things platform is also streamlined for single application use. System apps are not present, and your app is launched automatically on startup to immerse your users in the app experience.

詳情請見:Overview | Android Things


但凡依賴Google服務的,在國內都是渣渣…… 據不完全了解,國內根本就沒幾個真正了解過這玩意的。而且按照Google一向發布了就不推進的尿性(參照Android One),可以遇見基本無下文……


推薦閱讀:

物聯網行業什麼時候能發展起來?
無線感測器網路的應用和發展?
智能家居系統未來發展可能如何?你有什麼期盼?
物聯網和互聯網的區別和聯繫?
物聯網會不會成為一個笑話?何時見分曉?

TAG:物聯網 | 谷歌中國 | 智能家居 | Android |