Android Things is the new operating system developed by Google to build IoT projects. This helps you to develop professional applications using trusted platforms and Android. Yes Android, because Android Things is a modified version of Android and we can reuse our Android knowledge to implement smart Internet of things projects. This OS has great potential because Android developers can smoothly move to IoT and start developing and building projects in a few days. Before diving into Android Things, it is important to have an overview.
It is important to keep in mind that Android Things is a background operating system rather than an obviously visible system like the system on a phone or tablet. But the fact that it can accomplish more complex tasks quickly and efficiently can mean big things for its use in business.
If you are interested in knowing more about Android Things or about using devices that put this OS to use, contact us right away. We’ll help you keep up with the latest development updates so you can be the first in line when Android Things products are widely released.
Android Things supports three boards: the Intel Edison, the NXP Pico i.MX6UL and the Raspberry Pi 3. Support is coming for the Intel Joule and the NXP Argon i.MX6UL. The first thing you will notice is that these boards use a mixture of Intel and ARM based CPUs and that both 32-bits and 64-bits are supported. The minimum amount of RAM is 512MB and all the boards support Wi-Fi and Bluetooth.
Android Things extends the core Android framework with additional APIs provided by the
Things Support Library, which lets you integrate with new types of hardware not found on
Developing apps for embedded devices is different from mobile in a few important ways such as:
- More flexible access to hardware peripherals and drivers than mobile devices
- System apps are not present to optimize startup and storage requirements
- Apps are launched automatically on startup to immerse your users in the app experience.
- Devices expose only one app to users, instead of multiple like with mobile devices.
See the SDK Overview for more information on the similarities and differences between Android Things and the Android framework.
Android Things OS has the layer structure shown in the following diagram:
Android Things extends the core Android framework with additional APIs provided by the Things Support Library. These APIs allow apps to integrate with new types of hardware not found on mobile devices.
The Android Things platform is also streamlined for single application use. System apps are not present, and your app is launched automatically on startup to immerse your users in the app experience.
Android Things lets you build professional, mass-market products on a trusted platform, without previous knowledge of embedded system design. It reduces the large, upfront development costs and the risks inherent in getting your idea off the ground. When you’re ready to ship large quantities of devices, your costs also scale linearly and ongoing engineering and testing costs are minimized with Google-provided updates.
Android Things enables Android developers to create new smart devices that use Google’s existing services and Android APIs to accomplish tasks. This is bolstered by Google providing regular security updates for the platform.
Initially the supported hardware will include Intel Edison, NXP Pico, and Raspberry Pi 3, all of which – according to Google – can be scaled up to large production runs.
The new software builds on Google’s previous IoT project Brillo, incorporating several useful tools from that experience. These include Google Play Services, Google Cloud Platform, Android Studio, and the Android Software Development Kit. The company is also updating the Weave platform to make it easier for devices to connect to the cloud and interact with the new central part of the Google smart system – Google Assistant.
Android Things development is very similar to traditional Android mobile development and involves writing apps using the Android framework and tools. All you need is a development board flashed with the Android Things OS and the required peripherals for your device.
● Peripheral I/O API :
The Peripheral I/O APIs let your apps communicate with sensors and actuators using industry standard protocols and interfaces. The following interfaces are supported: GPIO, PWM, I2C, SPI, UART.
See the Peripheral I/O API Guides for more information on how to use the APIs.
● User Driver API :
User drivers extend existing Android framework services and allow apps to inject hardware events into the framework that other apps can access using the standard Android APIs.
● Cloud IoT Core :
Cloud IoT Core is a fully managed service that allows you to easily and securely connect, manage, and ingest data from millions of globally dispersed devices. Cloud IoT Core, in combination with other services on Google Cloud IoT platform, provides a complete solution for collecting, processing, analyzing, and visualizing IoT data in real time to support improved operational efficiency.
Android uses the Linux kernel at its core and Linux is a full multi-tasking operating system with virtual memory support. This means that Android Things needs a processor that supports virtual memory, in other words a processor with a full MMU. For ARM processors this means something from the Cortex-A range and not a microcontroller from the Cortex-M range. The reason I mention this is that there are lots of IoT products that use microcontrollers and therefore have less memory, less flash storage, use less power, and use less complex operating systems. By opting to use Android and Linux then Google aiming at a particular segment of the IoT market and is automatically excluding itself from the other segments. Whether this is the right decision remains to be seen.
The most popular board of the currently supported three is the Raspberry Pi. It is cheap, well known and easy to acquire. I also happen to have one (or maybe more) floating around here so I took Android Things for a spin using my Pi!
Android Things allows developers to build a smart device using Android APIs and Google Services. This takes the usual Android development stack—Android Studio, the official SDK, and Google Play Services—and applies it to the IoT. Developers will be able to use the Google Weave protocol to communicate between devices along with Google Cloud services like Google Cloud Vision.
Of course updates are always a problem with Android phones, but Google is trying to solve that here with “updates direct from Google.” The post says that “in the coming months” newer developer previews will support some kind of “infrastructure” so developers can push out images and OTA updates on their own schedule. This sounds way better than most of the IoT market, which has an almost non existent approach to security. A platform with regular updates would go a long way to fix that.
How about security :
Over the past few months there’s been an influx of IoT devices hacked or exposed. Hilariously most of them didn’t really have any kind of security features at all.
- Hacked home devices caused massive Internet outage
- IoT security is hilariously broken and getting worse
Android Things gets its updates directly from Google, which means the OS can only be patched through Google’s own servers along with any security fixes and your own over-the-air updates to the software you run on your devices.