当前位置: 首页 > news >正文

树莓派 安装 刷Android Things 小结

一句话说,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是预览版,可以到下面的地址下载相对应芯片的系统镜像。
Android  Things镜像地址  https://developer.android.google.cn/things/preview/download.html
(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 | grep Wifi
 输入命令行后,不出情况一般出现下面的输出
  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连接。各自圈地,又互不兼容。

相关文章:

  • mongoose 之ShemaType
  • ES6 的 Symbol 超出你想象的强大
  • poj1062
  • 解决iview多表头动态更改列元素发生的错误
  • 比特币淘金热席卷中国专业“挖矿机”受疯抢
  • Python的变量和常量
  • PHP——自定义比较算法
  • 【转】Python 内置函数 locals() 和globals()
  • Openssl加密解密应用
  • 敏捷开发的6个实战经验
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • MySQL通过命令导出导入数据和表
  • python列表中的深浅copy
  • mysql高可用方案之主从架构(master-slave)
  • 中国HBase技术社区第二届MeetUp ——HBase技术解析及应用实践
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • canvas 高仿 Apple Watch 表盘
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • java正则表式的使用
  • js操作时间(持续更新)
  • JS函数式编程 数组部分风格 ES6版
  • React as a UI Runtime(五、列表)
  • React 快速上手 - 07 前端路由 react-router
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 翻译:Hystrix - How To Use
  • 关于extract.autodesk.io的一些说明
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 免费小说阅读小程序
  • 如何学习JavaEE,项目又该如何做?
  • 深入浅出webpack学习(1)--核心概念
  • 推荐一个React的管理后台框架
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 昨天1024程序员节,我故意写了个死循环~
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #162 (Div. 2)
  • #vue3 实现前端下载excel文件模板功能
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (二)Linux——Linux常用指令
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)计算机毕业设计ssm电影分享网站
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (三) diretfbrc详解
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)scrum常见工具列表
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET与 java通用的3DES加密解密方法
  • .net中我喜欢的两种验证码
  • /3GB和/USERVA开关