Android Things 物联网应用开发初体验

Android · zelin · 于 发布 · 最后由 xiujunma回复 · 7634 次阅读
3453 1482223074

本文在 DiyCode创客日记 同时首发,关注作者的 DiyCode帐号 或者 微信公众号「造物邦」可第一时间收到新文章推送。

现在大家都变得好奇怪,有了“技术红利期”的概念,一旦有哪个大佬推出什么新技术,第一时间跟上,越往后就越没有你什么事了。“小程序”一开始之所以能那么火,我想应该跟很多人不想错过可能的“红利期”是有关系的,像我这个小白不也跨界凑热闹注册了个小程序的号😁

在未来还没有流行起来之前,作为开发者的你是不是应该有所准备?

回到主题,最近,Google 发布了 Android Things 开发者预览版,作为一名“资深”的吃瓜群众,趁还有点温度,赶紧凑下热闹。但是,我是有原则的:坚决不刷新闻。要写就来点开发实战,哪怕是“从入门到放弃”,也算是体验了一把开发的乐趣。

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

使用 Intel Platform Flash Tool Lite 烧录 开发者预览版镜像

烧录开发者预览版镜像

配置你的 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 git@github.com:androidthings/sample-simplepio.git

导入 simplepio 示例

BuildRun,一步到位,如果一切顺利的话,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 的官方网站或仓库,未来应该会有更多好玩的东西出来:

本帖已被设为精华帖!
共收到 5 条回复
2571 1491357330
plusend · #1 ·

Few people care about the hardware ah.

3453 1482223074
zelin · #2 ·

#1楼 @plusend maybe haha~

96
xvjialing · #3 ·

楼主有遇到Android things中文乱码的问题吗

3453 1482223074
zelin · #4 ·

#3楼 @xvjialing 有,现在还在解决呢

96
xiujunma · #5 ·

楼主尝试过 android things 天生支持的 weave 吗?似乎开发者预览版 还没有支持 weave。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册