Earlier this year Google announced Brillo as a platform that extends Android to smaller connected devices with just 64MB of memory. It is not that small compared to the 1MB of flash memory in Particle Photon, the Internet of Things hardware development kit which works directly with the cloud over Wi-FI. But still it is much better than the standard resource heavy Android that requires at least 500 MB of flash memory.
While we are waiting for Brillo’s release, let’s look at how we can use a standard Android as an embedded operating system for the next generation of devices. Let’s assume that we need to design and manufacture a new hardware device in non-mobile categories like smart photo frames, smart projectors, smart mirrors, smart TV top boxes, etc. The question is: Is it worth selecting Android as the embedded operating system for your next device?
Good things about using embedded Android (Pros)
There are definitely more good things than bad about using Android as an embedded OS for a custom made device.
1. Easy UI customization.
Many graphics libraries are available for a fast UI development.
2. A large and growing community of Android developers.
Google is pushing Android everywhere (smartphones, smartwatches, cars, tablets, TVs) and encourages developers to create custom apps for each device. Besides having this extended ecosystem, Google also invests in the education and training of Android developers with the Udacity Android Nanodegree.
So it is safe to assume that it will not be a problem to find a decent Android developer for your custom app development or even for extending your device to a full featured ecosystem later.
3. Linux based.
Android is running on top of Linux Kernel. Most drivers for Android devices are actually Linux drivers. It is handy when you need to integrate custom hardware modules and can use Linux drivers for that
4. Great developer tools.
The Android Studio, fully provided with features, has everything needed, like Code Editors, Graphical Layout Editors, Debuggers. Not everything will work for low level Kernel or NDK developments, but still it is great for the overall ecosystem and custom app developers.
5. Reduces time to market.
It is easier to start with Android than with a Linux distro because it is easy to customize the UI and to find developers for it. Great tools and community help to move fast and deliver products to market early.
Things to keep in mind about embedded Android (Cons)
All good things have their price, so there are some issues that may arise when using Android as an embedded OS in non-mobile hardware devices.
1. It is resource heavy
It requires about 512MB of RAM and a CPU with about 1GHz, so it is definitely not for small and power-efficient devices that should last months on a single battery charge. But Android Wear on smartwatches has shown us that it is moving toward miniaturization as well.
2. Hard to update OS to the newest version
Usually board vendors don’t provide updates for the new Android and support only a few current versions. It means that you are on your own with the updates to the new OS version release that is not an easy task, especially if you’ve already made changes in the system services and have some manually integrated drivers.
3. No Google products available without an agreement with Google
This means that you cannot use automatic platform updates distributed as an APK through the Google Play store. No Google Maps or Google+ services either.
After thoughts
Android is an ubiquitous OS that becomes available on more and more devices, from smartphones to smart cars. It has the backing of Google, is used by myriad hardware manufacturers and has the constantly growing Android community.
Many developer tools and the growing community of Android developers make it easy to build your product quickly and reduce the time to market. And with the release of Brillo later this year we will have even more possibilities for extending Android to even more embedded devices.
What do you think about using embedded Android in non-mobile devices?