Android Things专题 1.前世今生

Posted 王玉成的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Things专题 1.前世今生相关的知识,希望对你有一定的参考价值。

文| 谷歌开发者技术专家, 物联网方向 (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.前世今生的主要内容,如果未能解决你的问题,请参考以下文章

Android View的绘制机制前世今生---前世

Android之Fragment的前世今生

持续交付和DevOps的前世今生

社区说 | Android 虚拟机的前世今生

Android 顶级视图 DecorView 的前世今生

Android内存泄露检测工具---LeakCanary的前世今生