一,Android Things介绍
Android Things简单来讲就是基于Android的智能物联网(IoT,Internet of Things)操作系统。
它的愿景就是将无数的的设备连接起来,Android Things 作为物联网的大脑,使用公开协议 Weave 与广大的传感器/外部设备进行对话。
简单来说Android Things就是让开发者可以使用Android开发工具开发嵌入式设备。
If you can build an app, you can build a device. 只要你会开发APP,你就能开发智能设备。
使用Android来开发智能设备需要通过学习NDK /JNI知识来实现,通过AndroidThings来开发智能只要你调用Things封装好的API就可以实现。
Android Things的平台架构如下图所示,Android Things扩展了core Android Framework,通过Things Support Library提供了附加的API,使得开发者可以集成通常在手机等移动设备中没有的硬件。
如何基于 Android Things 构建一个智能家居系统?
二,AndroidThings + 树莓派3实现远程控制LED灯
2.1:硬件准备
1:树莓派Raspberry Pi 3开发板一块
2:LED灯一个
3:8G sdcard一个(用来烧录镜像)
2.2:镜像制作
2.2.1:下载
有了平台得制作镜像,用来安装系统。首先就是下载镜像了,网址如下:镜像下载地址
解压后就是iot_rpi3.img。考虑到有些朋友还不能翻墙,这里百度网盘提供一个链接:https://pan.baidu.com/s/1kVHW2OZ 密码: crqg
2.2.2:烧录镜像
你可以下载一个树莓派官方推荐的工具软件Etcher
下载Etcher并安装Etcher
三,项目创建
我使用的是Android Studio2.3.3
项目结构
添加依赖
(1)往app的模块里的build.gradle文件添加如下依赖
// 添加Things支持包
provided'com.google.android.things:androidthings:0.2-devpreview'
provided'com.google.android.things:androidthings:+'
// MQTT
compile'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
compile'commons-codec:commons-codec:1.5'
远程控制LED灯开关是通过使用阿里的MQTT消息机制实现的,详见 MQTT 客户端收发 MQTT 消息_Java 接入示例_接入示例_微消息队列 LMQ_消息队列 MQ-阿里云
(2)往Manifest.xml文件中application节点下增加共享库:
(3)声明主Activity
让应用程序在Android Things嵌入式设备中开机启动,那么就必须在其AndroidManifest.xml文件中声明作为主入口。
(4)在主Activity中初始化IO
Demo下载地址远程控件开关LED灯
注意:第一次安装APK的时候需要使用:adb install -g xxx.apk(-g是获取Manifest.xml中声明的权限);不然后会报权限异常
实现后的效果:通过一个遥控APP可远程控制开关LED灯