前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >中国首位IoT领域的GDE:Android Things全解析及展望

中国首位IoT领域的GDE:Android Things全解析及展望

作者头像
IT大咖说
发布2018-06-04 16:02:34
1.8K0
发布2018-06-04 16:02:34
举报
文章被收录于专栏:IT大咖说IT大咖说

内容来源:2017 年 11 月 19 日,谷歌开发者专家王玉成在“2017谷歌开发者节北京站”进行《Android Things系统结构及展望》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方、演讲者审阅授权发布。

阅读字数:3266 | 9分钟阅读

摘要

Android Things的功能,整体框架,以及软件开发调试环境介绍。Google IoT Core介绍,以及现有的基于Android Things的项目概览。

嘉宾演讲视频及PPT回顾:http://suo.im/4s6Gko

Android Things

Android的整个生态涉及到手机、手表、电视、汽车以及物联网。Android Things的系统相对其他几部分更加精简,适合与物体结合的场景,也就是物联网方面。它的应用领域偏向于Camers、Gateways、HVAC Control、Smart Meters。

在物联网设备中安全性的是比较难解决的,例如手环、Camers这类安全性相对较高的设备一旦被拿到最高权限,大量私密信息就会被暴露出去。考虑到这方面的问题Android Things在系统设计之初就在安全性上做了完善的配置。

Android Things开发工具

Android SDk是完全支持Android Things的,当然也能够使用Android Studio作为开发工具。Play Services是google Services的一个组件,Firebase则是数据库,Cloud platform集成了对物联网的数据应用。可以看到Android Things借鉴了很多Android的工具,毕竟它是类似安卓的一套系统。

物联网最基本的形态中类似于传感器、摄像头这样的设备会对数据进行收集,然后进行粗加工传送到云端,最终处理分析这些数据。整个流程中数据会被存放到数据库,但是收集到数据后进行深加工的这一环节,对目前的嵌入式设备来说还有很多问题没有解决。因此数据的深加工都被放在云端解决,这也使得Firebase和Cloud platform在整个数据处理的过程中占有比较重要的地位。

IoT

出于安全方面的考虑,Android Things的操作系统核心都是由谷歌直接管理,将开发者的权限限制在小范围内。Google提供了IoT Developer Console进行云应用上传以及对设备的下发。

Automatic Security Update是自动安全升级,它在Developer Console中进行推送,一旦有新的Android Things镜像或者需要从Android Things镜像中升级应用都是通过Google服务器自动获得推送升级。Signed Images和Verifled Boot涉及到了嵌入式开发的领域。

一般的简单嵌入式开发引导流程都是先从Bootloader到Linux Kernel,再进入到,之后才是其他应用的启动过程。从整个系统的安全性来看,是可以在Bootloader这部分夹杂一些代码去获得权限的。于是Google 要求Signed Images和Verifled Boot这两部分需要OEM厂商和自己进行认证,来保证这部分二进制镜像的可靠性。

产品的开发中,需要在CPU芯片的模块板上画开发板,进行硬件方面的初期设计。完成后就进入到应用的开发时期,来让开发者进行开发。

Android Things for Developers

上图是整个Android 的整个系统的框架,包括linux kernel、Libraries、Application Framework、Application。Application中大多是手机或者平板的应用和框架。

Application Framework这层中灰掉的这部分是Android Things去掉的部分框架,这些框架都涉及到了用户交互方面的应用,而Android Things并不赞赏通过屏幕去进行用户交互。因为物联网的设备只需要配置好最初的设备环境就可以了,系统的运行过程中主要是进行数据收集以及传递的工作。虽然Android Things并不会过多的涉及用户交互,但还是提供了一些交互渠道,比如音频、keyboard、按键。

Different from Android

不同于Android的多应用多Activity,Android Things中去除用户的交互之外,就只使用了一个应用并且只包含一个Activity。Android有着动态权限的获取,而Android Things的唯一一个应用是伴随系统启动的,不需要用户去动态获取权限。由于Android Things需要驱动众多的外设,所以它还有一个支持这些外设的库。安卓的开发中Android Studio提供了虚拟机的支持,但Android Things可是涉及到了众多的硬件,因此在软件层面上的虚拟机支持是不必要的。

Support Google Service

上图列出的是Android Things的API支持情况,主要集中在数据、地图、定位这类的服务。在数据相关的服务中关于用户交互的部分也被去除了。Android Things的Cloud部分会生成各种服务API的key,然后在应用中加入key。这样就解决了用户态的认证缺失的情况下,依然能判断当前设备是否为Android Things设备的问题。

用户态驱动

Android Things提供了几大类的IO,外设的IO包括GPIO,PWM、I2C、SPI、UART、Native PIO。GPIO 可以用于传感器的控制,PWM 用于对电机或声音的控制。I2C、SPI、UART这三部分涵盖了低中高三种总线,在目前所有的传感器模块中,如果需要连接板子都是要用到这三种总线的。

在用户态这方面则抽象出了类似Android的输入、传感器、GPS、Audio的部分。还覆盖了Peripheral I/O的一些设备,这部分的抽象被放在了Android Things Libraries中,通过接口就可以调用。

Simple Peripheral I/O

上图是GPIO的一个简单例子,主要涉及到方向、触发方式以及回调函数的注册。

Cloud IoT Core Beta

Android Things收集数据进行深处理必须要经过Google Cloud,上图就是Cloud IoT Core的整个架构。设备将数据导入到Cloud IoT Core后再利用Functions配置数据,接着Pub/Sub进行交互,交互完成后利用Bigtable、BigQuery、ML进行数据的处理,处理完成后将数据交给Datalab以及Date Studio,最后完成一些其他的处理。

Work Flow

上图展示了用户在Cloud IoT Core上的工作方式。整个流程中有着三个主要角色,第一个角色是设备数据采集的过程,在物联网中数据是低频的传输,基于TCP协议之上,它主要通过MQTT/HTTP协议将数据传输到Cloud IoT Core。另一个角色是Provisioner,当产品开发完成后会交给Device Manager进行管理。Cloud IoT Core采集到的原始数据会被传输到Pub/Sub模块,也就是最后一个角色。

Android Things 社区链接

Google’s IoT Developers Community:https://g.co/IoTdev

Google’s IoT Solutions:https://Iot.google.com

Android Things SDK:

https://developer.android.google.cn/things/index.html

有问题可以在评论区讨论,以上为所有分享内容,谢谢大家!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档