Every other year, the computer industry doubles the amount of transistors per silicon chip, thus creating more powerful devices that have a smaller footprint on a board. Current SoC components are powerful enough to have the power of a Cray-2 supercomputer or even an IBM Deep Blue in your pocket. Just look at the performance of Qualcomm’s latest chip, Snapdragon 820, that is powering the new generation of smartphones.
With more power on a device we can use more complex software stacks like Android, instead of sticking with Linux. Such an option is good to consider because of commoditized mobile hardware components, the developer ecosystem, the availability of modern development tools, and the ease of use of network and telephony stacks.
Below we’ll look at these arguments in greater detail.
1) Commoditized mobile hardware components
The smartphone industry has grown exponentially since the introduction of iPhone and Android in 2007 and 2008. We all saw fierce competition between hardware manufacturers for better specs, during the past decade. Hence the accompanying growth of ARM architecture usage.
ARM even has enough performance now to run data centers from its chips instead of using x86 Intel architecture.
Mobile hardware components, CPUs, GPUs, Memory, and Sensors are all packed into one SoC component which you can use as a ground base with which to build the whole computer from just one silicon chip.
The majority of modern high-end smartphone devices are comprised from Qualcomm, Samsung Exynos, Huawei HiSilicon Kirin, and other chips which use an ARM RISC instruction set.
Price and the mass availability of these components plays an enabling role for industries producing drones, ARM server-based solutions, connected medical devices, in-car systems etc. to rise and form a second wave of technological miniaturization.
If you are thinking about your own build of Embedded Android that was built from AOSP or any other open-source version just drop us a note.
2) Proliferation of Android developers
A couple of factors have played a role in the training of a gigantic fleet of Android developers who are working in the industries:
An ecosystem which has grown around Google Play Market with millions of apps that have been created during the last 8 years.
The availability of online courses for Android, like Udacity Android Nanodegree.
The increased availability of Java developers who can easily start programming for Android.
Recently, Google announced free training courses in India for two million people, which means that there will be more developers available for hire.
So there is a vast supply of Android developers and they already familiar with Android SDK, Android building blocks and their user interface principles.
3) Availability of Modern Android Development Tools
The Android ecosystem has a full set of tools that developers need on a daily basis. Android Developers SDK, Android Studio IDE, compilers, debuggers, emulators and all the other toolchains that you might need for a low-level development, testing and debugging.
The more readily available the tools, the easier it is for developers to start playing with Android, and the more developers will join the app development ecosystem.
4) Ease of connectivity and process management
Android was built with an always-on connectivity in mind, thus tuned for the wireless networking and telephony stack – GSM, CDMA, LTE – with VoIP calling already integrated.
Using Android is like having the network with all the necessary security layers right out of the box, without any need to set up and configure it.
5) Millions of available apps
Another point in favor of Android is the availability of millions of Android apps that you can install on the device from the Google Play store and other alternative stores.
Your new device could easily become a platform for third party app developers and it will form your own ecosystem with apps, which could dramatically enhance user experience and value for your customers.
Does it make sense to use Android on your custom device?
In short, the answer is “Yes”. If it’s not your first time looking for a software library or tool, you will probably recognize the next list.
Estimate popularity of the tool in question, e.g. how many developers and companies are really using it in production and the size and output of the companies in questions.
Look at the size of the community around the tool.
Make a decision
In the case of Android we have both of these – the community is growing exponentially and big companies are using the platform for their devices (see the example in our first part of the guide).
Some other questions you may wish to ask, include how stable is the platform and where is it heading in terms of development direction and Google leadership?
With Android, critical security issues are always fixed rapidly and they are constantly merging into the main AOSP source tree.
Over the past few years there has been ongoing work towards upstreaming Android Linux Kernel, so that AOSP can always use the latest long-term support Linux Kernel. The process is not yet finished, but it is doing well under the Linaro team. Linaro also launched its 96Boards effort, so the latest AOSP source tree already includes support of HiKey Lemaker board right from the box, and others are coming soon.
This all goes to show how the Google Android and Linux Kernel communities are decreasing the gap and moving to a better and more secure version of Android, as well as opening it up to easier adoption for custom-made devices which don’t rely on proprietary drivers from hardware vendors.