Things 初体验——远程控制开关LED灯

4,441 阅读2分钟

一,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,使得开发者可以集成通常在手机等移动设备中没有的硬件。

image.png

二,AndroidThings + 树莓派3实现远程控制LED灯

2.1:硬件准备

1:树莓派Raspberry Pi 3开发板一块

2:LED灯一个

3:8G sdcard一个(用来烧录镜像)

2.2:镜像制作

2.2.1:下载

有了平台得制作镜像,用来安装系统。首先就是下载镜像了,网址如下:镜像下载地址

image.png

解压后就是iot_rpi3.img。考虑到有些朋友还不能翻墙,这里百度网盘提供一个链接:pan.baidu.com/s/1kVHW2OZ 密码: crqg

2.2.2:烧录镜像

你可以下载一个树莓派官方推荐的工具软件Etcher

image.png 下载Etcher并安装Etcher

image.png

依次选择要刷入的Android Things系统文件,如下载到的image.zip,选择目标盘(把TF卡插入电脑),点击“Flash!”按钮刷入系统

image.png

刷入

image.png

刷入后会进行验证

image.png

验证完成后,弹出TF卡,插入树莓派即可启动系统了  

三,项目创建

我使用的是Android Studio2.3.3

项目结构

image.png

添加依赖

(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消息机制实现的

(2)往Manifest.xml文件中application节点下增加共享库:

image.png 注意:添加provided依赖,能确保构建工具在编译时不会将共享库复制到APK中。加入 能使这个共享库在应用程序运行时有效。总之,这些设置能使您的应用程序使用设备系统提供的共享库。

(3)声明主Activity

   让应用程序在Android Things嵌入式设备中开机启动,那么就必须在其AndroidManifest.xml文件中声明作为主入口。

image.png (4)在主Activity中初始化IO

注意:第一次安装APK的时候需要使用:adb install -g xxx.apk(-g是获取Manifest.xml中声明的权限);不然后会报权限异常

实现后的效果:通过一个遥控APP可远程控制开关LED灯