Designing software is usually more dynamic and subject to change than developing a custom Android tablet or custom Android phone (assuming the hardware architecture is clear). Finishing the first version of software also better defines the requirements of the hardware in case any changes or surprises come up. For these reasons having the Android app and any related back end software ready or very mature when the project starts make the project run more efficiently.
Hardware can take a long time to develop because of the countless small details which need to all work together and length of time it takes to make and test changes to molding and electronics. Before custom hardware development commences testing and improving software using generic devices creates a clearer path forward. For example, one client Hatch is developing a product for used a peripheral accessory that connected to a generic Android device using Bluetooth. After validating that their software worked using the accessory they moved forward with making a second generation product that combined the accessory and Android product into their custom device.
This chain of events and reasoning holds true for most, if not all, hardware development projects. The popularity of generic development boards has grown as a result of companies and engineers that want a way to test their software before investing in custom hardware. During the software development process, usually at the very early or planning stage, it may become clear that a project would be better off using an alternative to Android. Those alternatives could be either Linux or a RTOS (real time operating system), each having its own advantages.
Good reasons to use the Android platform instead of Linux or RTOS include:
1. Turnkey native hardware features
The Android operating system comes ready to support high res cameras, touch screens, speakers, light sensor, and many other features. This means less time and investment to make these features work.
2. Multitude of existing software
There are many examples for this. Here’s one to give a general idea. For a product that needs to send SMS messages, the software engineers can use the existing functionality that Android already supports instead of having to write a dedicated SMS program.
3. Availability of development resources
The prevalence of Android has led to a large amount of engineers building Android apps and becoming familiar with the Android platform.
4. Multimedia and peripheral functions
While Android offers native support for many functions, normal Android (as opposed to Android Gear, Android TV, etc) caters to the general consumer market. Special features like Ethernet port, Zigbee connectivity, infrared sensor, etc can all be added on a custom Android project.
5. Speed to market
Because of the aforementioned benefits developing a feature-rich custom device on the Android tablet or Android phone platform takes less time than Linux. More simple RTOS systems probably wouldn’t have enough processing power to support the performance requirements.
6. Processor agnostic
Apps written for a specific Android version should run on any CPU running that same version of Android.
This image shows the architecture of Android and the built-in functionality it provides, as mentioned above in the list of reasons to use Android.
Source: https://developer.android.com/guide/platform
The diagram from Google shows that Android is built on top of the Linux Kernel.
Good reasons to use Linux or RTOS platforms instead of Android:
1. Low power consumption
Android is a bigger software which includes a lot of features that require higher performance hardware running at a higher speed. The benefit of Linux coming with less built-in functionality is longer battery life because of less power consumption. This is even more true for an RTOS which is even lighter than Linux.
2. More secure
There are several arguments for why Linux is more secure than Android. Here are a couple of the more common ones. Since there are less users, hackers target Linux less. Linux is an open source platform that has a sophisticated user base. When problems arise the user base notices and reacts quickly. Unlike Android and Linux, an RTOS is usually not open source, making it harder to find ways to hack. A hacker has to be focused on just your project rather than affecting a high volume of users.
3. Lower cost hardware options
Since Linux and RTOS platforms demand less memory and performance than Android hardware, using either of these two platforms could be lower cost than Android. The reason for saying ‘could’ is because Android CPUs are powerful enough to run Linux (Android is built on Linux), but not all CPUs that run Linux can support Android. The requirements and cost for RTOS hardware are even lower, but this comes at the expense of performance and convenience which work for more simple and less dynamic use cases.
Choosing the right operating system for your product, whether it’s Android, Linux, or an RTOS has a huge impact on the success of your project. Hatch focuses on Android hardware development, but can also help with projects using Linux or an RTOS in many cases as well.
In the meantime please stay safe from viruses and other unpleasant things. 🙂