Internet Of Things has been a strong buzz word from last two years. This space has seen a lot of advances since then, thanks to the constant push by biggies including Amazon, Intel, Microsoft and Google. As a recent, but a very promising addition to space, Google has released the developer preview of its OS for IoT devices called as AndroidThings.
Now AndroidThings is special because this has the ability to take all the android mobile developers a layer closer to the IoT domain. With the skills that enabled them to develop mobile apps, developers can start running their code directly to interact with external hardware sensors/devices.
Development in AndroidThings will be done through many of the familiar tools of Android development like Android Studio, Android SDK, and Google Play Services. The Platform will also take care of pushing future device updates over the air and also comes with support for Google Weave. (For remote communication with the devices)
AndroidThings from Hardware and Software perspective
Selecting the right hardware board for the scalable IoT solution is very crucial. AndroidThings is trying to simplify the process of selecting the hardware components. It provides certified development boards by working with its SOC partners. These SOC partners can provide different boards with varying System On Modules to be chosen based on one's requirement.
Currently, AndroidThings is supported on following boards.
1 Intel Edison board
2.NXP Pico i.MX6UL
3.Raspberry Pi 3
Once you select any of the above boards, you would need to download corresponding system image and flash on these boards to get set for developing in AndroidThings.
AndroidThings platform provides single app interface with no System apps like in a typical mobile device. Android Studio (Above 2.2) will serve as the IDE and the well known Android SDK comes with few omissions.GUI is an optional feature in AndroidThings and supports the existing Android application UI Toolkit.
AndroidThings comes with Peripheral I/O API's that will help developers to access sensors and actuators supported by the board. Using Android/Java and not requiring Embedded C, you will be able to read data from these sensors through peripheral I/O API's. This sounds music to mobile application development companies like us. Peripheral I/O API's support GPIO (General Purpose Input Output) and PWM (Pulse Width Modulation) interfaces.
Another important aspect of AndroidThings is, its User Drivers. User Drivers help to register new device drivers with the core framework. For example, Applications in AndroidThings can read data from sensors through framework provided Sensor Fusion feature. By connecting the sensors present in hardware to the framework with a User Driver, allows the data it produces to be included in sensor fusion. From Sensor, Fusion Apps can access the sensor data.
With AndroidThings, Google is poised to change the way things are happening in the embedded side and this could be a last minute good thing addition to the fading leap year 2016.