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

2016 年 12 月,Google 发布了 Developer Preview 版的 Android Things,该平台为利用 Android 这一世界上最受支持的操作系统的强大功能构建物联网产品铺平了广阔的道路。但它并不是一个全新的操作系统,而是通过同样是 Google 开发的物联网操作系统 Brillo 改进优化的一个操作系统。。今天,就跟大家说说 Android Things 的前世与今生,以及它与Brillo的渊源,到底它解决了什么问题?
 
想知道为什么人们需要 Android Things,就要首先搞清楚什么是物联网:
以前我们在聊到物联网的话题时,只知道物联网使我们的生活更智能、更方便、更高效。可以方便地控制智能设备。

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

全面感知:感知层需要解决数据源头的问题。怎么去搜集各种原始数据?物联网的物,即万物,数据搜集有多样性。我们需要靠各种传感器去感知不同的信息。就比如春节回老家前,我们需要给家里的不同的长辈准备不同的礼物,比如爸爸可能需要一瓶好酒,奶奶可能需要一双好的保暖鞋,爷爷可能需要一个好的拐杖……每个人的需要可能是不同的。
可靠传递:传输层解决数据的传输通路的问题。数据通路依靠各种协议,这些繁杂的协议,如何去实现自由的协议转换呢?春节回老家过年,先坐火车,再做公交,再坐大巴,有可能坐牛车……当你换乘交通工具时,完成的是协议的转换,而你所带的礼物,就是需要安全传送的数据信息。当你把礼物带回老家,物联网的数据才完好无损的到达目的地。
智能处理:应用层解决数据如何处理。经过长途跋涉,过年终于回老家了。这些礼物,需要你进行分类,然后再走亲访友,给不同的人送不同的东西。物联网的数据处理,也就是这样,把搜集到的各种原始的数据,转换成我们需要的信息。

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

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

物联网的最小模型,就和春运带礼物是一样的。但是,在实际的工程应用中,会复杂很多。在春运中,碰到的各种难题,对应着物联网系统的各种问题。但是任何工程问题,都是在最小系统上,再针对易用性,安全性,稳定性……做一些复杂的功能开发,最终形成一个稳健的系统。可以这么说,如果把春运的各个环节的问题都解决了,你就可以做物联网的方案商了。

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. BAT Android面试专题深入探究:四大组件+ViewPager+组件化架构+Bitmap

    本篇是结合我之前面试别人的经验,以及跟一些在BAT上班的朋友,讨论总结出的一份很深的大公司需要用到的一些高端Android技术.这里也专门整理了一个文档,重点和难点都有详细解析.这些题目有点技术含量, ...

  2. Android系统(111)---Android稳定性专题之开篇

    Android稳定性专题之开篇 一.稳定性问题有哪些 Android应用程序自身的稳定性问题主要有两类一类是Crash,一类是ANR. Crash:比如空指针.数组越界.子线程中刷新UI等错误造成的程 ...

  3. android 电池续航时间,《Android优化专题》——优化电池续航能力

    <Android优化专题>--优化电池续航能力 一.监测设备的电量和充电状态 在用户充电时,程序做任何操作都不会太受到电量影响,此时就适合做一些下载,刷新数据等耗电操作. 1. 判断当前充 ...

  4. 【Android每周专题】触摸屏手势

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

  5. Android面试专题系列(四):Activity之间如何进行通信→LiveDataBus

    不诗意的女程序媛不是好厨师~ 转载请注明出处,From李诗雨-https://blog.csdn.net/cjm2484836553/article/details/105147592 <And ...

  6. Android安全专题(一)Hook初探以及技术前世今生

    Hook概念 Hook是伴随操作系统的产生而出现的概念,原来是系统开发者提供给系统应用开发者方便管理系统而产生的概念.目的是在系统调用过程中,其他代码可以选择性的干预系统函数的处理逻辑,已达到更灵活的 ...

  7. Android 动画专题(2)--- Frame Animation

    在上一篇中,介绍了Tween Animation,这里我们将介绍另外一种动画Frame Animation. Frame Animation是顺序播放事先做好的图像,跟电影类似. 不同于animati ...

  8. Android Thing专题5 I2C

    原址 上一讲中,我们说到 Android Things 的 API,以及 Peripheral I/O 设备包含的 API 的类型.但是作为程序员的我们,怎么理解这些 API 呢? 我们就拿 I2C ...

  9. Android Mms专题之:Mms概览介绍

    这里的Mms名称并不准确,因为它是一个应用程序的名字,这个应用程序是Android上面的信息应用程序,它即能处理短信SMS(Short Messaging Service),也能处理彩信(Multim ...

最新文章

  1. Mysql字符串字段判断是否包含某个字符串的3种方法
  2. java 判断一个数字是2倍数_如何判断语言发育迟缓的原因|一个2岁半不会说话的案例...
  3. 《深度探索C++对象模型》--2 构造函数语意学
  4. sqlite3 外键支持
  5. 【STM32】I2C相关函数和类型
  6. java web程序 上机考试做一个登陆注册程序
  7. 无监督学习之聚类方法(K-Means、层次聚类)
  8. Windows 11的19个新功能
  9. 【人脸识别】L2_Softmax Loss详解
  10. Ganglia 权威指南-安装Ganglia过程
  11. 计算机网络学习笔记(0. 引言)
  12. python操作oracle数据库知识梳理
  13. 多元统计分析朱建平pdf_应用多元统计分析 朱建平.pdf
  14. Linux shadow文件
  15. 【GAN】生成式对抗网络论文笔记及TF2代码实现
  16. vue 如何获取图片的原图尺寸_js获取图片信息(一)-----获取图片的原始尺寸
  17. 计算机在聋校教学中有哪些作用,现代信息技术在聋校语文教学中的应用
  18. HDUOJ 1392凸包graham算法
  19. 从多种解决方案中选择最优方案
  20. Re:萌娘百科上的黑幕实现

热门文章

  1. 跨境电商亚马逊、eBay、Shopee、Lazada、速卖通、沃尔玛、阿里国际等平台,怎样进行自养号测评更安全?
  2. 计算机毕业设计SSM电影网上购票系统【附源码数据库】
  3. javascript高级程序设计总结二
  4. 视频回顾 | Pulsar Summit Asia 2020 · 英文专场:汇聚全球 Pulsar 开发者精彩
  5. 控制论在计算机科学与技术的应用,计算机科学与技术的应用领域简述论文_毕业论文.doc...
  6. 播放ftp服务器视频文件,远程播放ftp服务器上的文件
  7. 持续交付基金会(CDF)首届中国本土化 Meetup 参会提醒
  8. ETAS赋能软件定义汽车
  9. css sprites demo
  10. 【剑桥摄影协会】图像分色(Posterization)