文| 谷歌开发人员技术专家, 物联网方向 (IOT GDE) 王玉成(York Wang)

2016 年 12 月,Google 公布了 Developer Preview 版的 Android Things。该平台为利用 Android 这一世界上最受支持的操作系统的强大功能构建物联网产品铺平了广阔的道路。

但它并非一个全新的操作系统,而是通过相同是 Google 开发的物联网操作系统 Brillo 改进优化的一个操作系统。。

今天。就跟大家说说 Android Things 的前世与今生,以及它与Brillo的渊源,究竟它攻克了什么问题?
 
想知道为什么人们须要 Android Things,就要首先搞清楚什么是物联网:
曾经我们在聊到物联网的话题时,仅仅知道物联网使我们的生活更智能、更方便、更高效。能够方便地控制智能设备。

即使最简单的控制设备。也会要求物联网具有三个最基本层次,每一个层次的功能有所不同。春节刚过,我们就以春节回家为例,来说说物联网的这几个层次和它的功能能力。

全面感知:感知层须要解决数据源头的问题。怎么去搜集各种原始数据?物联网的物。即万物,数据搜集有多样性。我们须要靠各种传感器去感知不同的信息。就比方春节回老家前。我们须要给家里的不同的长辈准备不同的礼物。比方爸爸可能须要一瓶好酒。奶奶可能须要一双好的保暖鞋,爷爷可能须要一个好的拐杖……每一个人的须要可能是不同的。
可靠传递:传输层解决数据的传输通路的问题。数据通路依靠各种协议,这些繁杂的协议,怎样去实现自由的协议转换呢?春节回老家过春节,先坐火车。再做公交,再坐大巴。有可能坐牛车……当你换乘交通工具时,完毕的是协议的转换。而你所带的礼物。就是须要安全传送的数据信息。当你把礼物带回老家。物联网的数据才完善无损的到达目的地。

智能处理:应用层解决数据怎样处理。经过长途跋涉,过春节最终回老家了。这些礼物,须要你进行分类。然后再走亲訪友。给不同的人送不同的东西。物联网的数据处理。也就是这样,把搜集到的各种原始的数据。转换成我们须要的信息。

 

物联网的传输数据这么简单?那为什么还要弄这么复杂的操作系统?别急,我们还是拿春运来解释。

先自我羡慕一把,春运来回,我都成功抢到了火车硬卧票。假设你和我一样给爷爷带是急需的药品。春节回家又不一定能买到票,你能够提前一个月快递。毕竟药品先到更重要。当然,也有人把几个月都没洗的衣服,一起带回去让家人洗,暂且这也算给家人的新年礼物吧。在物联网的数据分析中,药品是属于那一类必须高速传递的信息,脏衣服是属于不怎么急的信息。这时候,简单的、单一的传输路径,就出了问题了。有的智能设备,是支持多种传输模式的。比方串口传递控制信息,3G上网卡传递必须实时接收的信息。假设春节你的家人都非常忙,你也不会带一大堆脏衣吧。物联网的传感器设备,也有主要的决策功能,数据在节点上积累非常多时,哪些先发,哪些后发?专业术语叫同步和异步,都是依据整个系统的不同而定的。
问:上面内容都看了,还是没有理解物联网倒底是干啥的?
答:再经历一次春运吧。

物联网的最小模型。就和春运带礼物是一样的。可是,在实际的project应用中,会复杂非常多。

在春运中,碰到的各种难题,相应着物联网系统的各种问题。可是不论什么project问题。都是在最小系统上,再针对易用性,安全性。稳定性……做一些复杂的功能开发。最终形成一个稳健的系统。

能够这么说。假设把春运的各个环节的问题都攻克了。你就能够做物联网的方案商了。

Google利用物联网操作系统来解决数据的收集和可靠传递。利用Google Cloud来解决数据智能处理。

那么,Google的物联网操作系统又经历了哪些变化呢?

  前世:Brillo
Brillo是在 2015Google I/O 大会上宣布的一个产品。也是 Google 的第一款个物联网操作系统。

带来了一个简单的 bsp 移植的模型,方便硬件厂商高速导入 Brillo 系统到他们自己的芯片/开发板上。并研发了 Weave 通信协议。解决物联网系统中多样化的通信协议的问题。

Brillo适用于物联网网关相似的产品,曾经Google Device推出过一款基于Brillo的路由器。
 
今生: Android Things
    Android Things是2016年12月份推出的物联网操作系统。做为Brillo的优化,主要做了下面改变:
1.       Brillo仅仅能用C/C++做开发,可是Android Things,能够用java进行开发。并且做了Android系统的全部測试。

也就是说,Android的开发人员,能够非常快的转换到Android Things的应用开发上来。
2.       Android Things应用研发周期,跟Android的研发周期相同。能够直接用Android Studio来开发。用adb进行连接...
3.       Android Things的SDK是Android SDK的子集。

4.       完美支持OTA
5.       已经有四款开发板作为原型开发。
6.       能够轻易的通过Google Cloud使用Firebase,极大的加快了数据的处理速度。
7.       集成的Weave协议。能够方便的搞定各种无线协议的连接。

这些改变使得Android Things不仅仅是一个物联网操作系统。并且是一个能够高速做智能硬件开发的平台。

说这些条条框框还是不太好理解,兴许会对每一点做具体的解释。

BTW:
这段主要说到brillo的产生的原因。以及在系统设计初衷,应用开发的特点。实际上还仅仅是Android Things的皮毛。

Android Things专题兴许会包含功能。软硬件开发环境。以及一个完整的演示样例,让大家得心应手的用Android Things开发出自己的应用。
物联网领域有多大,Android Things的天地就有多大。你能够尽情的发挥。

希望大家有什么问题和建议,及时通过留言方式反馈给我。在专题的兴许中,我会尽量的满足大家的要求。

 

Android Things专题 1.前世今生的更多相关文章

  1. 【Android每周专题】触摸屏事件

    本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[Android每周专题]系列,原文链接:http://blog.csdn.net/benbmw2008/article ...

  2. Android Graphics专题(1)--- Canvas基础

    作为Android Graphics专题的开篇.毫无疑问,我们将讨论Android UI技术的核心概念--Canvas. Canvas是Android UI框架的基础,在Android的控件体系中.全 ...

  3. Android Things 专题6 完整的栗子:运用TensorFlow解析图像

    文| 谷歌开发技术专家 (GDE) 王玉成 (York Wang) 前面絮叨了这么多.好像还没有一个整体的概念.我们怎样写一个完整的代码呢? 如今深度学习非常火,那我们就在Android Things ...

  4. 谈谈Android项目框架的前世今生

    嗨,大家好,今天出了大太阳,真是美好的开始. 这篇文章和大家说说Android届流行的三大框架,了解下架构的前世今生,以及我对于这些框架的一些认识和看法. 三大框架区别 MVC 架构介绍 Model: ...

  5. Android Things专题5 I2C

    文| 谷歌开发人员技术专家, 物联网方向 (IOT GDE) 王玉成(York Wang) 上一讲中.我们说到 Android Things 的 API,以及 Peripheral I/O 设备包括的 ...

  6. Android Mms专题之:Mms源码结构

    从软件的功能角度来讲,Mms分为对话列表,消息列表,短信编辑,彩信编辑,短信显示,彩信显示和配置. 从实现的角度来看,它分为GUI展示层,发送/接收,彩信解析,彩信附件,信息数据等,这些分类对应着源码 ...

  7. Android Things专题2 硬件介绍

    文| 谷歌开发人员技术专家, 物联网方向 (IOT GDE) 王玉成(York Wang) 经过2016年Brillo首批开发人员的反馈,以及市场调研,为了照应广大Android开发人员的习惯,形成了 ...

  8. Android 性能篇 -- 带你领略Android内存泄漏的前世今生

    基础了解 什么是内存泄漏? 内存泄漏是当程序不再使用到的内存时,释放内存失败而产生了无用的内存消耗.内存泄漏并不是指物理上的内存消失,这里的内存泄漏是指由程序分配的内存但是由于程序逻辑错误而导致程序失 ...

  9. 一起写一个Android图片加载框架

    本文会从内部原理到具体实现来详细介绍如何开发一个简洁而实用的Android图片加载缓存框架,并在内存占用与加载图片所需时间这两个方面与主流图片加载框架之一Universal Image Loader做 ...

随机推荐

  1. jQuery Ajax方式上传文件实现暂停或取消上传

    未上传时要实现取消,很简单... 但如果用户点击了上传,并加载了进度信息... 2017-05-04再次改进.在上传过程中用户可以按 Esc 来取消上传(取消当前上传,或者是全部上传)... 也可以在 ...

  2. navicat for mysql只导出数据表结构

    选中需要导出表结构的数据库,右键,在显示的菜单中选择“数据传输”这一项 ,在弹出窗口中“数据传输”单击选择“高级”一项,在“高级”中把“记录选项”中的勾去掉,在做一些设置,最后导出表数据就不会导出记录 ...

  3. win7 64位系统及开发环境重装后的总结

    前言 话说来这家公司之后就一直使用这个系统,现在感觉这系统跑的实在是有点慢了,运行,调试各种浪费时间呀,不过也用了将近20个月了,这也可以说是我用的最久的一个系统了.由于新项目即将拉开战幕,所以自己趁 ...

  4. HTML5 浏览器返回按钮/手机返回按钮事件监听

    1.HTML5  History对象 支持使用pushState()方法修改地址栏地址,而不刷新页面. popstate事件 当history实体被改变时,popstate事件将会发生.调用pushS ...

  5. Spring Scheduler定时任务 + Quartz

    原文地址: https://blog.csdn.net/revitalizing/article/details/61420556 版权声明:本文为博主原创文章,未经博主允许不得转载. https:/ ...

  6. java 常用集合list与Set、Map区别及适用场景总结

     转载请备注出自于:http://blog.csdn.net/qq_22118507/article/details/51576319                  list与Set.Map区别及 ...

  7. 用SLF4j/Logback打印日志-1

    在 浅谈后端日志系统 中已经写了很多日志方面的零散的非技术的东西.本篇更像一份入门说明,讲解一下SLF4j/Logback.SLF4J是一套抽象的日志API接口,logback它是的底层实现,所以在这 ...

  8. 整理:产品文档规范——BRD、PRD和MRD

    BRD和MRD,PRD一起被认为是从市场到产品需要建立的文档规范. BRD 商业需求文档--BRD(Business Requirements Document) 商业需求文档重点放在定义产品的商业需 ...

  9. Windows server 2008 SSD性能测试

    过渡到windows 7.windows8是趋势,老迈的windows xp .windows server 2003已经快到淘汰的阶段,安装了windows server 2008 R2 ,测试了下 ...

  10. [leetcode]Spiral Matrix @ Python

    原题地址:https://oj.leetcode.com/problems/spiral-matrix/ 题意: Given a matrix of m x n elements (m rows, n ...