一,Android Things介紹
Android Things簡單來講就是基于Android的智能物聯(lián)網(wǎng)(IoT,Internet of Things)操作系統(tǒng)。
它的愿景就是將無數(shù)的的設(shè)備連接起來,Android Things 作為物聯(lián)網(wǎng)的大腦,使用公開協(xié)議 Weave 與廣大的傳感器/外部設(shè)備進(jìn)行對(duì)話。
簡單來說Android Things就是讓開發(fā)者可以使用Android開發(fā)工具開發(fā)嵌入式設(shè)備。
If you can build an app, you can build a device. 只要你會(huì)開發(fā)APP,你就能開發(fā)智能設(shè)備。
使用Android來開發(fā)智能設(shè)備需要通過學(xué)習(xí)NDK /JNI知識(shí)來實(shí)現(xiàn),通過AndroidThings來開發(fā)智能只要你調(diào)用Things封裝好的API就可以實(shí)現(xiàn)。
Android Things的平臺(tái)架構(gòu)如下圖所示,Android Things擴(kuò)展了core Android Framework,通過Things Support Library提供了附加的API,使得開發(fā)者可以集成通常在手機(jī)等移動(dòng)設(shè)備中沒有的硬件。

如何基于 Android Things 構(gòu)建一個(gè)智能家居系統(tǒng)?
二,AndroidThings + 樹莓派3實(shí)現(xiàn)遠(yuǎn)程控制LED燈
2.1:硬件準(zhǔn)備
1:樹莓派Raspberry Pi 3開發(fā)板一塊
2:LED燈一個(gè)
3:8G sdcard一個(gè)(用來燒錄鏡像)
2.2:鏡像制作
2.2.1:下載
有了平臺(tái)得制作鏡像,用來安裝系統(tǒng)。首先就是下載鏡像了,網(wǎng)址如下:鏡像下載地址
解壓后就是iot_rpi3.img??紤]到有些朋友還不能翻墻,這里百度網(wǎng)盤提供一個(gè)鏈接:https://pan.baidu.com/s/1kVHW2OZ 密碼: crqg
2.2.2:燒錄鏡像
你可以下載一個(gè)樹莓派官方推薦的工具軟件Etcher

下載Etcher并安裝Etcher




三,項(xiàng)目創(chuàng)建
我使用的是Android Studio2.3.3
項(xiàng)目結(jié)構(gòu)

添加依賴
(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'
?? 遠(yuǎn)程控制LED燈開關(guān)是通過使用阿里的MQTT消息機(jī)制實(shí)現(xiàn)的,詳見 MQTT 客戶端收發(fā) MQTT 消息_Java 接入示例_接入示例_微消息隊(duì)列? LMQ_消息隊(duì)列 MQ-阿里云
(2)往Manifest.xml文件中application節(jié)點(diǎn)下增加共享庫:


(3)聲明主Activity
?? 讓應(yīng)用程序在Android Things嵌入式設(shè)備中開機(jī)啟動(dòng),那么就必須在其AndroidManifest.xml文件中聲明作為主入口。

(4)在主Activity中初始化IO

Demo下載地址遠(yuǎn)程控件開關(guān)LED燈
注意:第一次安裝APK的時(shí)候需要使用:adb install -g xxx.apk(-g是獲取Manifest.xml中聲明的權(quán)限);不然后會(huì)報(bào)權(quán)限異常
實(shí)現(xiàn)后的效果:通過一個(gè)遙控APP可遠(yuǎn)程控制開關(guān)LED燈