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

标签: android things 物联网 | 发表时间:2016-12-20 16:06 | 作者:zelin
出处:http://www.diycode.cc/

本文在 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 [email protected]: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 的官方网站或仓库,未来应该会有更多好玩的东西出来:

相关 [android things 物联网] 推荐:

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

- - DiyCode - 致力于构建开发工程师高端交流分享社区社区
创客日记 同时首发,关注作者的. DiyCode帐号 或者 微信公众号「造物邦」可第一时间收到新文章推送. 现在大家都变得好奇怪,有了“技术红利期”的概念,一旦有哪个大佬推出什么新技术,第一时间跟上,越往后就越没有你什么事了. “小程序”一开始之所以能那么火,我想应该跟很多人不想错过可能的“红利期”是有关系的,像我这个小白不也跨界凑热闹注册了个小程序的号.

谷歌以物联网操作系统Android Things进军物联网

- - IT瘾-tuicool
谷歌给物联网设备的开发带来了Android及其生态系统. 开发人员将像之前他们为移动设备编写应用程序那样,为这些设备编写应用程序. 谷歌已经将一些Brillo的主要技术结合到了他们的移动操作系统中,也就是名为 Android Things的以物联网设备为目标的新解决方案. 尤其是,用户驱动API允许开发人员在原厂设置提供的现有功能之外,扩展对物联网设备可以做的事.

建立一个高可用的MQTT物联网集群How to Build an High Availability MQTT Cluster for the Internet of Things

- -
建立一个高可用的MQTT物联网集群. We were searching for a secure (auth based), customisable (communicating with our REST API) and easy to use solution (we knew Node.js).

Android 将取代 Linux 成为面向物联网的开放平台

- - TECH2IPO创见
美国 Web 和移动技术专家、手机群聊服务 GroupMe 事业发展主管史蒂夫•切尼 (Steve Cheney) 近日撰文,对 iOS 和 Android 的未来前景进行了展望. 在这个时代里,iOS 和 Android 的影响力已经渗透到移动领域以外. 就整个生态系统的发展而言,有许多事情正在发生.

All Things Digital:苹果在 10 月 4 日会有媒体活动,Tim Cook 将负责揭开 iPhone 5 面纱

- leafduo - Engadget 中国版
虽然我们还没有收到任何有关 iPhone 5 发布会的官方消息,不过 All Things Digital 则报导苹果将于 10 月4 日举行媒体活动. 据报新任 CEO Tim Cook 将会负责揭开 iPhone 5 的神秘面纱,并作为发布会的主持(不意外吧),而 Phil Schiller、Scott Forstall 和 Eddy Cue 等苹果的高层会作为辅助讲者.

物联网是什么?

- lzhi - Lzhi&#39;s Views
似乎人人都在讨论物联网,那么物联网到底是什么. 物联网就是把传感器装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道以及家用电器等各种真实物体上,通过互联网联接起来,进而运行特定的程序,达到远程控制或者实现物与物的直接通信. 物联网,即通过装置在各类物体上的射频识别(RFID)、传感器、二维码等,经过接口与无线网络相连,从而给物体赋予“智能”,实现人与物体的沟通和对话,也可以实现物体与物体互相间的沟通和对话,这种将物体联接起来的网络被称为“物联网”.

谈物联网网关(11.8)

- - 人月神话的BLOG
在我博客上经常会谈到API网关,也曾经谈过智慧家庭里面的网关设备,但是没有专门谈过物联网网关,实际上对于智慧家庭网关本身也是属于物联网网关的范畴. 对于物联网网关,首先还是参考下百度百科给出的一个基础定义,具体如下:. 物联网网关,作为一个新的名词,在未来的物联网时代将会扮演非常重要的角色,它将成为连接感知网络与传统通信网络的纽带.

物联网知识集锦——认识物联网架构、玩家和玩法【鹏越·物联网】

- -
2017年,三大运营商竞相开展NB-IOT试商用,物联网是今年通信行业的热点,亚信使能运营商,承建了连接管理平台、车联网、智慧社区等项目. 亚信白皮书汇总已发布的物联网相关资讯、方案和案例. 以方便书友们整体了解物联网基本知识、产业分工和亚信能力.   物联网应用实现需要四层架构,如下图:. 下面重点介绍网络层和平台层.

物联网是什么?【信息图】

- Caleb - 36氪
似乎人人都在讨论物联网,那么物联网到底是什么. 物联网就是把传感器装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道以及家用电器等各种真实物体上,通过互联网联接起来,进而运行特定的程序,达到远程控制或者实现物与物的直接通信. 物联网,即通过装置在各类物体上的射频识别(RFID)、传感器、二维码等,经过接口与无线网络相连,从而给物体赋予“智能”,实现人与物体的沟通和对话,也可以实现物体与物体互相间的沟通和对话,这种将物体联接起来的网络被称为“物联网”.

Ninja Blocks,家用物联网中心

- - TECH2IPO创见
孩子在家,怕他打开煤气炉怎么办. 外出旅游,被小偷“光顾”怎么办. 赶紧使用Ninja Blocks,让曾经遥不可及的物联网触手可及. Ninja Blocks是一款家用物联网中心,通过Wifi无线网络与其他传感设备进行连接,在家中组建一个小型的物联网. 不管你是在家中还是在外地,都可以实时查看家庭状况,控制家庭电器,控制电源,如果家门被人打开了,还会发短信提示你.