谷歌给物联网设备的开发带来了Android及其生态系统。开发人员将像之前他们为移动设备编写应用程序那样,为这些设备编写应用程序。
谷歌已经将一些Brillo的主要技术结合到了他们的移动操作系统中,也就是名为Android Things的以物联网设备为目标的新解决方案。除了一般的Android API和访问谷歌的各种服务的库之外,该嵌入式操作系统中还包含了一个名为物联网支持库(Things Support Library)的新库,这个库有两个主要功能:通过多种协议和接口(GPIO、PWM、I2C、SPI、UART等)访问传感器和执行器的外围I/O API;以及一个用户驱动API(User Driver API),可以给应用程序添加新的设备驱动,用于将硬件事件注入系统,使它们可以为应用程序所用。尤其是,用户驱动API允许开发人员在原厂设置提供的现有功能之外,扩展对物联网设备可以做的事。为Brillo所写代码需要被移植,替代“底层I/O代码和SELinux配置,同时调用新的周边API”。
由物联网操作系统Android Things所带来的最大的改进就是与整个Android生态系统的整合:通过Android Studio用Android API进行开发,通过正常的Android渠道为系统提供一般操作和安全更新,访问谷歌的服务,如短信、语音、认证、游戏,助理等等。同时开发商可以继续通过Android NDK用C或C++写代码,他们现在也可以选择用Java写代码。
物联网操作系统Android Things支持SoM(System-on-Modules,模块化系统),也就是SoC(System-on-Chip,片上系统)加RAM、FLASH存储器、WiFi、蓝牙和其他一些部件。目前它支持Intel Edison、Intel Joule 570x、NXP Pico i.MX6UL、NXP Argon i.MX6UL和Raspberry Pi 3,接下来还会继续支持更多。认证过的硬件将与谷歌提供的系统镜像一起交付,包括未来的更新,也将在没有开发人员介入的情况下自动交付。
Weave是由谷歌使用的物联网设备之间的通信协议,它已经被改进,可以直接访问更多的云服务,比如通过语音命令进行设备控制的助理服务等。除了常见的智能灯泡、智能插座、智能开关和恒温器等,谷歌还计划增加其他类型的设备,包括支持客户自定义的设备。一些制造商已经宣布对Weave提供支持,他们分别是Belkin WeMo、First Alert、Honeywell、LiFX、TP-Link和Wink等。