一句话说,Android Things就是让开发者可以使用Android开发工具开发嵌入式设备。
If you can build an app, you can build a device.
只要你会开发APP,你就能开发智能设备。
 
 
谷歌2016年12月发布的Android Things是一个面向物联网的系统,让android开发者用原来开发app的方式开发硬件相关的应用,扩展了android开发的方向和前景,而谷歌的Android Things已经支持了主流的几个面向互联网的几个芯片(Intel® Edison,NXP Pico i.MX6UL,Raspberry Pi 3)。鉴于开发难度和集成度高低的选择,选择了树莓派作(Raspberry Pi 3)作为实践的。
 
Android Things 是Android系统的一个精简版, 前身是 Brillo -Google 在 2015 年推出的物联网操作系统。 为了节约那一点点硬件成本,还要增加开发的成本,值得么?
特性:
 单一自启动APP,通常设备会只运行单一的程序,即开发者的APP会自动启动,系统APP不会呈现出来。
 显示是可选的,设备可以没有屏幕,通过按钮、触摸、LED灯、语音或其他形式与用户交互。
 
 
 
 
1.材料准备
 
材料都可以在淘宝上轻易购买,包括树莓派主板,sdcard(最好8g或者以上),sdcard读卡器,电源,HDMI转VGA转换器(如果显示器支持hdmi可以直接用HDMI线,因为树莓派主板视频口是HDMI),网线。
 
2.刷系统镜像
 
(1)首先需要下载Android Things系统镜像,目前最新的android Things是预览版,可以到下面的地址下载相对应芯片的系统镜像。
 
 
(2)用sdcard读卡器连接sdcard到电脑上。
 
(3)解压刚才下载的系统镜像。
 
(4)写入镜像到sdcard的工具,可以根据不同系统自行选择,本教程使用windows系统,可以到https://sourceforge.net/projects/win32diskimager/  这个网站下载Win32 Disk Imager工具。运行win32 DiskImager ,最右边选择你sdcard的盘符(备注不要选到了其他的硬盘或移动存储设备,导致造成不必要的损失),然后选择镜像路径,再然后点击write等待写入结果。写入完后把sdcard插到树莓派上,插上网线(网线另一端连接路由),插上视频输出线连接到显示器,USB数据线连接电脑到树莓派,树莓派就会开始启动系统了,系统启动后,屏幕会出现局域网的ip。
 
(5)打开命令行工具,输入下面命令(ip -address就是显示器上android things系统显示的界面),不出情况的话就提示connected to <ip-address>:5555  这样就成功连接到树莓派。
 
adb connect <ip-address>
 
3.连接WIFI
 
如果不想每次调试都要电脑连接树莓派的话,可以设置树莓派连接wifi(必须要完成上面连接到树莓派才能设置无线wifi连接)
 
(1)发送意图到Android Things的wifi服务模块的命令如下
  1. $ adb shell am startservice \
  2. -n com.google.wifisetup/.WifiSetupService\
  3. -a WifiSetupService.Connect\
  4. -e ssid <Network_SSID>\
  5. -e passphrase <Network_Passcode>
 
 
(2)通过adb 的logcat确定你的连接是否成功
 
$ adb logcat -d |grepWifi
 
 输入命令行后,不出情况一般出现下面的输出
  1. ...
  2. V WifiWatcher:Network state changed to CONNECTED
  3. V WifiWatcher: SSID changed:...
  4. I WifiConfigurator:Successfully connected to...
 
(3)测试你的树莓派是否能访问外网,命令
  1. $ adb shell ping 8.8.8.8
  2. PING 8.8.8.8(8.8.8.8)56(84) bytes of data.
  3. 64 bytes from8.8.8.8: icmp_seq=1 ttl=57 time=6.67 ms
  4. 64 bytes from8.8.8.8: icmp_seq=2 ttl=57 time=55.5 ms
  5. 64 bytes from8.8.8.8: icmp_seq=3 ttl=57 time=23.0 ms
  6. 64 bytes from8.8.8.8: icmp_seq=4 ttl=57 time=245 ms
 
4.编写Android Things程序(Android Studio编写)
 
在开始编写Android Things程序之前,
 
(1)确保你的sdK tools版本是24或者24以上
 
(2)确保你的sdk 支持API支持24或者更高版本。
 
添加依赖
 
(1)往app的模块里的build.gradle文件添加如下依赖
  1. dependencies {
  2. provided 'com.google.android.things:androidthings:0.1-devpreview'
  3. }
 
(2)往manifest .xml文件添加
    1. <application...>
    2. <uses-libraryandroid:name="com.google.android.things"/>
    3. ...
    4. application>
声明主Activity
 
要把应用运行在嵌入式设备(本教程中的树莓派),必须包含一个CATEGORY_LAUNCHER这样的Intent Filter,这样,才能在部署和调试应用的时候,Android Studio才能启动默认的Activity。
 
具体需要在Manifest声明的设置如下。
 
  1. <application
  2. android:label="@string/app_name">
  3. <uses-libraryandroid:name="com.google.android.things"/>
  4. <activityandroid:name=".HomeActivity">
  5. <intent-filter>
  6. <actionandroid:name="android.intent.action.MAIN"/>
  7. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  8. intent-filter>
  9. <intent-filter>
  10. <actionandroid:name="android.intent.action.MAIN"/>
  11. <categoryandroid:name="android.intent.category.IOT_LAUNCHER"/>
  12. <categoryandroid:name="android.intent.category.DEFAULT"/>
  13. intent-filter>
  14. activity>
  15. application>
 
 
物联网已不是新鲜事,我们的生活中,不知不觉已经开始用上了这类产品。
在景点游玩结束时,我会先通过手机往被在停车场曝晒中小车发送一条“通风”指令,这样我就不用驾驶“桑拿房”回家了。
 
目前IoT领域未能形成完整的生态:如每个汽车厂商均有自己的车联网平台,智能家居厂商的产品只能用自家或合作伙伴的App连接。各自圈地,又互不兼容。

树莓派 安装 刷Android Things 小结的更多相关文章

  1. 【树莓派】树莓派上刷android系统

    这位前辈之前做了基于android2.3版本刷入树莓派的事情,http://blog.csdn.net/lichwei1983/article/details/44082669 1.android 镜 ...

  2. 【树莓派】树莓派刷Android系统

    树莓派3安装Android TV系统图文教程 http://www.mz6.net/news/android/6866.html 树莓派3 Android TV系统怎样安装?树莓派3一个重要用途就是当 ...

  3. 【树莓派】【转】树莓派3装Android 6.0,支持Wi-Fi和蓝牙

    树莓派3装Android 6.0,支持Wi-Fi和蓝牙 相信对于许多树莓派初学者(包括我)来说,Android系统的确是一个不错的选择.但国内这方面资源稀缺,经本人FQ苦寻,找到了老外的树莓派Andr ...

  4. 树莓派安装 Nginx + PHP7.0 + Pi Dashboard

    之前我们介绍过树莓派搭建LNMP环境的方法,以及给树莓派装一个仪表盘来监控树莓派运行状态.近期有用户反馈树莓派最新版的系统已经无法找到 PHP5 的软件包了,这是因为新版本已经用 PHP7 替代了 P ...

  5. AOSP ON MAKO(在NEXUS 4上刷ANDROID 4.4 源代码包-下载/配置/编译/刷机)

    AOSP ON MAKO(在NEXUS 4上刷ANDROID 4.4 源代码包-下载/配置/编译/刷机) 特别感谢google官方文档及AOSP源代码开放 參考链接: https://source.a ...

  6. 树莓派-4WD智能小车操作小结

    树莓派-4WD智能小车操作小结 树莓派4B-4WD智能小车,双层结构,第一层结构为:小车扩展板(底层)+树莓派主板,通过铜柱隔离固定,小车扩展板相当于计算机的外设扩展板:上面一层为第二层,是三个舵机承 ...

  7. 安装好android的adt以后重启eclipse,但是没有创建AVD的图标

    安装好android的adt以后重启eclipse,但是没有创建AVD的图标: 解决方法: 1. 先检查ADT是否已经安卓成功 2. Windows--- Customize Perspective ...

  8. Raspberry PI(树莓派)安装ZMAP

    以前配置树莓派安装ZMAP一直没有装成功,今天又试了下,装成功了,记录下. Good Job. Zmap地址: https://zmap.io/documentation.html step1: gi ...

  9. 树莓派安装ftp服务器

    在树莓派安装ftp服务器,可上载\下载文件 vsftpd是开源的轻量级的常用ftp服务器. 1,安装vsftpd服务器 (约400KB)sudo apt-get install vsftpd 2,启动 ...

随机推荐

  1. RHEL7 -- NetworkManager

    RHEL7中默认的网络服务是由NetworkManager提供,NetworkManager可以动态控制和配置网络. 网络工具和应用 应用或工具 描述 NetworkManager 默认的网络守护进程 ...

  2. GO1.6语言学习笔记1-基础篇

    一.GO语言优势   可直接编译成机器码,Go编译生成的是一个静态可执行文件,除了glibc外没有其他外部依赖 静态类型语言,但是有动态语言的感觉 语言层面支持并发.Goroutine和channel ...

  3. Python acos() 函数

    描述 acos() 返回x的反余弦弧度值. 语法 以下是 acos() 方法的语法: import math math.acos(x) 注意:acos()是不能直接访问的,需要导入 math 模块,然 ...

  4. appium +uiautomator2 遇到 deviceName can't be blank 提示的解决

    为了获取android toast ,需要升级selenium 到 3.4.0 和appium 5.0.0-BETA9 到最新版本,并在启动代码前面追加一行代码: capabilities.setCa ...

  5. AngularJS 使用 UI Router 实现表单向导

    Today we will be using AngularJS and the great UI Router and the Angular ngAnimate module to create ...

  6. Go从入门到精通(一)go语言初识

    一.第一个go程序 package main import ( "fmt" ) func main(){ fmt.Println("hello world") ...

  7. LINUX下添加磁盘空间的方法详解

    给Linux系统添加磁盘空间在工作会经常遇到. 在添加第二块磁盘一般系统默认为hdb(IDE硬盘)sdb(SCSI 硬盘),以hdb为例. linux-isep:~ # fdisk /dev/hdb ...

  8. Cocos2dx Label

    cocos2dx3.0添加了一种新的文本标签,这种标签不同的地方有:使用freetype来使它在不同的平台上有相同的视觉效果:由于使用更快的缓存代理,它的渲染也将更加快速:同时它还提供了绘边.阴影等特 ...

  9. 快速写excel的方法

    对于用com组件写excel,笔者表示那个太慢了.而且很耗资源,还要装excel. 今天我们就用写文本文件的方式来写excel. 步骤1,用excel写好一个设计一个我们想要的模板. 步骤2,我们把做 ...

  10. VMware中Linux启动时***Host SMBus controller not enabled的解决方法

    Ubuntu18.04 64位 1.1如果能进入图形界面 在终端输入sudo su 键入root密码 //切换到root用户 1.2 如果不能进入图形界面,在VMware进入界面时按下shift进入G ...