Google Targets IoT with Android Things
Google brings Android and its ecosystem to the development of IoT devices. Developers will write applications to these devices similarly to how they write for mobile ones.
Google has included some of the main Brillo technologies into their mobile operating system, calling the new solution targeted at IoT devices Android Things. This embedded operating system contains, besides the usual Android API and the library to access various Google services, a new library called Things Support Library which comes with two main features: a Peripheral I/O API enabling access to sensors and actuators through several protocols and interfaces (GPIO, PWM, I2C, SPI, UART), and a User Driver API that makes it possible to to add new device drivers to an application, useful to inject hardware events into the system, making them available to applications. Practically, the User Driver API lets a developer extend an IoT device beyond what was available when it came from the factory. The code already written for Brillo needs to be ported, replacing “low-level I/O code and SELinux configurations with calls to the new Peripheral API.”
The main enhancement introduced by Android Things is the integration with the entire Android ecosystem: development via Android APIs on Android Studio, general purpose and security updates provided to the system through the usual Android channels, access to Google Services, such as Messaging, Voice, Authentication, Play, Assistant, etc.. While developers will continue to be able to write code in C/C++ through Android NDK, they now have the option to write in Java.
Android Things supports SoMs (System-on-Modules) which are SoC (System-on-Chip) plus RAM, Flash Storage, WiFi, Bluetooth and some other components. It currently supports Intel Edison, Intel Joule 570x, NXP Pico i.MX6UL, NXP Argon i.MX6UL and Raspberry Pi 3, others probably following. Certified hardware will come with system images provided by Google, including future updates that are automatically delivered without developer’s intervention.
Weave, the communication protocol between IoT devices used by Google, has been enhanced to directly access more cloud services including the Assistant which provides device control through voice commands. Besides the usual light bulbs, smart plugs, smart switches, and thermostats, Google plans to add other types of devices including support for custom ones. A number of manufacturers - Belkin WeMo, First Alert, Honeywell, LiFX, TP-Link, Wink - have announced their support for Weave.