文| 谷歌开发人员技术专家, 物联网方向 (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. node.js使用mysql模块的坑

      之前用node.js写的订餐系统,很容易挂掉,一直也没想去解决它.今天看了一下,试了试,原因是在连接数据库的时候没有对error事件进行处理,导致程序一直挂在那里,需要重启服务才能正常使用.   ...

  2. Android加密解密

    随笔分类 - Android加密解密 Android数据加密之异或加密算法 摘要: 前言: 这几天被公司临时拉到去做Android IM即时通信协议实现,大致看了下他们定的协议,由于之前没有参与,据说 ...

  3. docker 查看容器的网络连接

    #! /bin/bash echo $1 PID=$(docker inspect -f '{{.State.Pid}}' $1) nsenter -t $PID -n netstat |grep E ...

  4. Android动画学习笔记大集合

    其实动画这个东西我已经了解过很长一段时间了,但是一直没系统的整理过.关于android中的各种动画虽然都会用,但总怕自己会慢慢遗忘.这回看了几篇动画分析的文章,自己也学到了一些东西,在此就梳理一下. ...

  5. Material Designer的低版本兼容实现(九)—— Float Button & Small Float Button

    5.0一个新特性就是出现了这么一个圆形的悬浮指示按钮,这个按钮可以用来体现一个全局的重要功能,比如添加账户什么的.这个按钮有两种大小,一种是正常的按钮大小,一种是小型的按钮.官方文档中介绍的是小心的按 ...

  6. Eclipse启动时提示fail to create the Java Virtual Machine问题的解决办法

    是eclipse.ini文件的问题,打开eclipse安装目录下的eclipse.ini文件: 将其中的256m改为128m,512m改为256m,1024m改为512m即可 修改后如下: -star ...

  7. 同步一个 fork

    fork 了别人的仓库后,原作者又更新了仓库,如何将自己的代码和原仓库保持一致?本文将给你解答. 如何使用搜索引擎 其实这个问题并不难,我又被坑了.百度搜的东西不靠谱啊,以后这种问题一定要用英文在 G ...

  8. Windows Server 2008 R2 小技巧 (转)

    一些 Windows Server 2008 R2 的小技巧,包括启用「God Mode (上帝模式)」.添加「快速启动」工具栏.启用桌面「个性化」服务.停用「密碼複雜性」要求,对老程序员熟悉新版的 ...

  9. 魅族推送 简介 集成 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  10. Js组件的一些写法

    首先看下Prototype里的写法: var Class = { create: function() { return function() { this.init.apply(this, argu ...