Android Things 物联网应用开发初体验
本文在 DiyCode 和 创客日记 同时首发,关注作者的 DiyCode帐号 或者 微信公众号「造物邦」可第一时间收到新文章推送。
现在大家都变得好奇怪,有了“技术红利期”的概念,一旦有哪个大佬推出什么新技术,第一时间跟上,越往后就越没有你什么事了。“小程序”一开始之所以能那么火,我想应该跟很多人不想错过可能的“红利期”是有关系的,像我这个小白不也跨界凑热闹注册了个小程序的号
在未来还没有流行起来之前,作为开发者的你是不是应该有所准备?
回到主题,最近,Google 发布了 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 已经能够支持 Intel Edison、NXP Pico、Raspberry Pi 3 等硬件平台,好像高通的 Snapdragon 也已经在赶来的路上了。
还有,Android Things 天生支持物联网通讯协议 Weave,可让所有类型的设备能够连上云端并与其他服务如 Google Assistant 交互,现在已经有一些 IoT 设备像 Nest、Hue、SmartThings、WeMo、LiFX 等前来支援 Weave。这些现在看来都不是什么新的概念,就因为觉得不是什么新的概念,估计这种概念也就已经深入人心、习以为常了。
混迹开源硬件圈,刚好玩过 Intel Edison 和 Raspberry Pi 3,有点套路了,现在就拿他们来体验一下 Android Things。
Android Things @ Intel Edison
使用 Intel Platform Flash Tool Lite 烧录 开发者预览版镜像
配置你的 Android 开发环境,老司机应该都轻车熟路了。需要下载安装并更新最新版 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
Build → Run,一步到位,如果一切顺利的话,Android Monitor 窗口将有 log 输出,板子上的 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
一下即可将代码部署到板子上。
更多玩法
可以多多关注一下 Android Things 的官方网站或仓库,未来应该会有更多好玩的东西出来: