1. 程式人生 > >Android Things 物聯網應用開發初體驗

Android Things 物聯網應用開發初體驗

Android Things 是 Google 最近推出的全新物聯網作業系統,前身是去年釋出的物聯網平臺 Brillo,除了繼承 Brillo 的功能,還加入了 Android Studio、Android SDK、Google Play 服務以及 Google 雲平臺等 Android 開發者熟悉的工具和服務。任何 Android 開發者現在都可以利用 Android API 和 Google 服務輕鬆構建智慧聯網裝置了,這就是 Google 說的:

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

Android Things 架構

目前,Android Things 已經能夠支援 Intel Edison、NXP Pico、Raspberry Pi 3 等硬體平臺,好像高通的 Snapdragon 也已經在趕來的路上了。

Android Things 支援的硬體

還有,Android Things 天生支援物聯網通訊協議 Weave,可讓所有型別的裝置能夠連上雲端並與其他服務如 Google Assistant 互動,現在已經有一些 IoT 裝置像 Nest、Hue、SmartThings、WeMo、LiFX 等前來支援 Weave。這些現在看來都不是什麼新的概念,就因為覺得不是什麼新的概念,估計這種概念也就已經深入人心、習以為常了。

Weave 圖解

混跡開源硬體圈,剛好玩過 Intel Edison 和 Raspberry Pi 3,有點套路了,現在就拿他們來體驗一下 Android Things。

Android Things @ Intel Edison

燒錄開發者預覽版映象

配置你的 Android 開發環境,老司機應該都輕車熟路了。需要下載安裝並更新最新版 Android Studio,在天朝這個區域網快速完成此事著實不易:

安裝 Android Studio 更新下載 Android Studio 元件

將 Edison 連線到 PC,通過 adb 驗證裝置是否可用,在 macOS 下,adb 工具存放在 ~/Library/Android/sdk/platform-tools/

$ cd ~/Library/Android/sdk/platform-tools/
$ ./adb devices
檢查裝置是否連線
前往 Google 官方倉庫克隆示例,裡面有高手必經之路——“點燈大法
$ git clone [email protected]
:androidthings/sample-simplepio.git
匯入 simplepio 示例

Build → Run,一步到位,如果一切順利的話,Android Monitor 視窗將有 log 輸出,板子上的 LED 閃爍:

輸出 log LED 滅 LED 亮

Android Things @ Raspberry Pi 3

安裝最新映象,準備一張 8G 以上容量的 Micro SD 卡,下載最新映象,解壓,根據開發機器的作業系統,選擇相應方式進行燒錄:

插上 Micro SD 上電啟動系統,可以外接 HDMI 顯示器觀賞其啟動過程:

啟動核心中... 啟動介面

配置 Wi-Fi,Raspberry Pi 3 不像 Intel Edison 可直接通過 USB 連線至開發機器,需要通過乙太網介面進行 IP 連線,之後可以配置 Wi-Fi 無線連線,這樣就不需要多餘的網線了。

# 先通過有線連線,獲取IP
$ ./adb connect <ip-address>
connected to <ip-address>:5555

# adb連線上之後配置 Wi-Fi
$ ./adb shell am startservice \
    -n com.google.wifisetup/.WifiSetupService \
    -a WifiSetupService.Connect \
    -e ssid <Network_SSID> \
    -e passphrase <Network_Passcode>

# 驗證是否 Wi-Fi 是否連線成功
$ ./adb logcat -d | grep Wifi
...
V WifiWatcher: Network state changed to CONNECTED
V WifiWatcher: SSID changed: ...
I WifiConfigurator: Successfully connected to ...

# 重啟,撤掉網線,獲取 Wi-Fi 連線後的裝置 IP,可通過 HDMI 顯示器獲得或從路由器後臺獲得
$ ./adb connect <wifi-ip-address>
connected to <wifi-ip-address>:5555

# 檢視裝置是否attached
$ ./adb devices
List of devices attached
<wifi-ip-address>:5555  device

Demo,這次不搞“點燈大法”了,Raspberry Pi 3 既然能夠外接顯示器,就來玩玩 UI,前往官方倉庫克隆程式碼:

git clone https://github.com/androidthings/sample-simpleui.git

假設你已經安裝好 Android Studio,直接開啟 sample-simpleui 工程,Run一下即可將程式碼部署到板子上。

執行sample-simpleui simpleui demo

更多玩法

可以多多關注一下 Android Things 的官方網站或倉庫,未來應該會有更多好玩的東西出來: