一句话说,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. RedisDesktopManager无法连接虚拟机中启动的redis服务问题解决

    问题:开启虚拟机Redis,用RedisDesktopManager链接报超时. 问题排查: 1.检查redis是否正常启动 结果:正常启动 2.查看网络是否正常 结果:正常 3.检查redis bi ...

  2. MAR 27 解决华为手机访问Google Play:从服务器检索信息时出错。[DF-DFERH-01]

    虽然路由器已经设置了梯子,但是用华为手机访问Google Play时,还是提示:从服务器检索信息时出错.[DF-DFERH-01].   虽然在手机上把梯子设置成全局模式,连接Google Play后 ...

  3. Nginx访问PHP文件的File not found错误处理,两种情况

    这个错误很常见,原有有下面两种几种 1. php-fpm找不到SCRIPT_FILENAME里执行的php文件 2. php-fpm不能访问所执行的php,也就是权限问题 第一种情况 可以在你的loc ...

  4. ps可选颜色

    RGB模式和CMYK模式 青色加红色是黑色->颜料,而蓝色绿色(它们合起来是青色)加红色却是白色->加光 可调整的原色(主色)可调整的主色分为三组RGB三原色:红色.绿色.蓝色CMY三原色 ...

  5. Android Studio 2.2 Record Espresso Test

    Android Studio 已经更新到了2.2,在 Run 中发现了 Record Espresso Test 功能,很强大,但是不稳定. 尝试了下在 Android 6.0 上的登录页面,可以通过 ...

  6. vim:折叠操作

    zo 打开当前折叠 zc 关闭当前折叠 zr 打开所有折叠 zm 关闭所有折叠

  7. 【Android】6.3 ProgressDialog

    分类:C#.Android.VS2015: 创建日期:2016-02-08 一.简介 进度条对话框(ProgressDialog)常用于不能在短时间内快速完成的操作,显示进度条的目的是为了让用户明白程 ...

  8. 每日英语:Best Ways to Ramp Up to A Marathon

    For the record number of American runners who completed an official race event last year, the questi ...

  9. 对JAVASCRIPT匿名函数的理解

    网上很多解释,我无法理解,我想知道原理...这篇文章应该可以透彻一点 Query片段: (function(){ //这里忽略jQuery所有实现 })(); 要说匿名函数,我们首先要由函数本身说起. ...

  10. feignclient设置hystrix参数

    序 feign默认集成了hystrix,那么问题来了,如何像hystrix command那样设置每个方法的hystrix属性呢. 实例 @FeignClient("product" ...