Android 物联网初探
Android OS作为现今智能手机操作系统的老大,对智能设备的流行起到重要作用,从手机、平板到TV、手表、汽车等等,无处不在,无所不包,已然是现实意义的便携式设备OS的代表,虽然不同的设备厂商各怀鬼胎、高度定制,但不可否认Android OS确实推动了产业的迅速发展。随着智能设备的微型化和物联网的发展,Android团队也为我们带来了在物联网领域的又一力作-Android Things。与Android Wear、Android Auto一样,Android Things同样承袭了不开源的路子,预计后续开源的可能性也比较低。
Google在物联网领域主要有两方面:Android Things、Weave。
Android Things(原名为“Brillo”)是基于Android OS面向终端设备的一套定制化OS,旨在为了解决异构SoC物联网设备、不同传感器的数据处理等提出的一套解决方案,开发者只需要关注上层应用级别的数据传输和处理,同时还支持自定义传感器等元件的驱动。
Weave主要解决物联网对于后端数据传输和设备交互的需求,通过Google 的基础设施来采集、传输、交换、分析物联网的海量数据,同时联合其他厂商定义了一系列操纵设备指令使得设备可以通过Google Assistant这样的语音交互助手来完成对物联网设备的操控。
Android Things基于Android OS,在软件架构上没有太大的改动。
Linux Kernel、HAL、Native C/C++ Libraries、API Framework沿袭了原有的架构和代码。在Framework同一层级上增加了Google Services(Google Mobile Services),这一模块是Google对Android设备提供完整移动服务的核心,在国内的Android手机上由于不可抗拒的原因无法提供服务,如果有幸能够买到Nexus、Pixel系列的手机,其实这些手机ROM的软件架构于此基本一致。除此之外还包含有一套IoT设备专有的支持库,它扩展了Android核心Framework API,以此来支持更多的传感器或者其他手机上不存在的硬件设备。
与手机平板相比,在App层面上有一个重大的区别,那就是Android Things的单应用运行模式。这意味着IoT设备在开机启动后第一个运行的应用就是当前开发的应用,即刻提供服务,像手机的电话、通讯录、日历、相机、Launcher等系统应用在此平台下都不再存在,这对开发者来说可能是一大变化。
Android Things提供了对于物联网设备无差异的支持,但对于不同设备制造商、不同类型的传感器的数据传输、交换还是存在着巨大的鸿沟,这就是Weave存在的意义。Weave被定义为一个物联网的通信平台。不同OEM生产的物联网设备嵌入Weave SDK,然后通过Google Cloud基础设施与Weave服务器之间进行数据交换和收集。Weave联合一部分厂商定义了许多设备可操纵参数,比如灯的开关亮度、插座的开关、空调通风量等等,同时约束了一系列的设备注册流程和安全协议,通过这一系列的操作,可以让OEM厂商只需要关注设备本身以及提供的特定服务而无需关注设备与服务器之间的交互和数据传输。说到底这是一套完整的物联网数据交换解决方案,Google的野心也并非仅此而已,Google Cloud的基础设施,人机交互的指令定义,Google Assistant的原生支持,通道与终端的完整控制使得Google不再像Android OS一样脱缰狂奔,而是牢牢把握在自己手中。
Weave虽好,OEM厂商对此的支持又如何?这还是一个疑问,当前的SDK只支持Linux、高通、Marvell的特定芯片,同样的疑问还有,无法访问Google Services的中国用户怎么办?联想到之前推出的Android Wear中国版,或许是一个选择。