文| 谷歌开发人员技术专家, 物联网方向 (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. 替换NSUserDefaults的方案

    替换NSUserDefaults的方案 效果 源码 https://github.com/YouXianMing/iOS-Utilities // // BaseValueStorageManager ...

  2. 用GridLayout实现计算器的布局

    GridLayout是一个表格视图,我们一般定义它的列数和行数来设置好这个控件. 下面的布局文件先定义了一个TextView和一个Button,设置他们的属性为横跨4列.这样就可以独自占据一行了.然后 ...

  3. [转]wget 下载整个网站,或者特定目录

    FROM : http://www.cnblogs.com/lidp/archive/2010/03/02/1696447.html 需要下载某个目录下面的所有文件.命令如下 wget -c -r - ...

  4. 本地git库gitlab库链接服务器库 idea git 配置 gitlab 配置 git生成ssh公钥

    下载git  https://git-scm.com/ 安装以后会右键菜单出现Git Base Here 点击Git Base Here   输入 cd ~ 进入你的用户根目录 创建文件夹 mkdir ...

  5. 关于XSHM(Cross-Site History Manipulation)

    http://blog.chinaunix.net/uid-27070210-id-3255407.html 乍一看,好像和以前 css history hack 差不多,其实原理还是不一样的.浏览器 ...

  6. [数学] 将长为L的木棒随机折成3段,则3段构成三角形的概率

    1.题目 如题,将长为L的木棒随机折成3段,则3段构成三角形的概率是多少? 2.解析 这个与其说是编程题目,倒不如说是个数学题目.可能是你没有见过,或者没有过这种解题思想.(还是那句,一回生两回熟,类 ...

  7. [leetcode]Substring with Concatenation of All Words @ Python

    原题地址:https://oj.leetcode.com/problems/substring-with-concatenation-of-all-words/ 题意: You are given a ...

  8. HDU—— 5159 Building Blocks

    Problem Description After enjoying the movie,LeLe went home alone. LeLe decided to build blocks. LeL ...

  9. android 框架层 常用类介绍

    名称 功能描述 示意图 activitymanager 管理应用程序的周期并提供常用的回退功能 window manager 窗口管理者 content provider 用于访问另一个的数据,或者共 ...

  10. Nginx限制某个IP同一时间段的访问次数和请求数示例代码

    nginx可以通过ngx_http_limit_conn_module和ngx_http_limit_req_module配置来限制ip在同一时间段的访问次数. ngx_http_limit_conn ...