EOSS2023 – To use Android, or not to use Android, that is the question

To use Android, or not to use Android, that is the question

Recently I attended a talk at the Linux Embedded Open Source Software Conference in Prague (EOSS) about AOSP (https://sched.co/1LcQE). In this talk, an important issue was discussed: for your embedded projects, should you use Android?

Android is obviously a great option for smartphones, but it has been used for so much more. From security cameras and e-readers to car diagnosis tools, the applications using Android are many and very varied.

Using Android has many obvious benefits. You get a massive, well-tested, reliable code base for free, which has brand recognition for customers and that developers are familiar with. It’s a good option if you have a touchscreen and you want to have a good UI for your product, or if you want to make use of the existing app ecosystem for Android. With Android you also benefit from a lot of security innovations, mature APIs at various different levels, a wide array of SoC vendors support it, there’s a good Hardware Abstraction Layer and tons of frameworks for things like media, graphics, connectivity and many others.

So, with all of these advantages, why might you NOT want to use it?

There’s a few problems with developing for Android. The process for building can be quite difficult, especially if you use a hardware vendor’s BSP (and there’s usually no other option). The code size is over 200GB, and build times are also very considerable and require powerful hardware. In addition, getting the AOSP and Android certification is not easy, and you need it in order to make use of the Android name and ecosystem. Furthermore, Google (and the SoC vendors) will not pay you any attention if you don’t have massive sales volumes, or if you use Android in an unusual use case. Headless systems are especially difficult to do in Android; it can be done, but since these use cases are often ignored by the upstream developers, it can be an uphill battle to keep your code working with new versions.
Developing using Android also requires a full AOSP team — and developers who can do system programming using AOSP are significantly more difficult to find than Android app developers (at least, unless you use Mind’s services 😉 )

Overall then, the recommendation in the talk (which I fully agree with) is to only use Android if your use case fully makes use of Android’s strengths: you need an app ecosystem, you have a touch screen that requires a good UI, and you plan to ship your product in big volumes. For any other system, Android might not be quite for you.

The Author would like to remind you that Mind is perfectly capable of helping you with any embedded project you have – whether you decide to use Android or not. We’re here to help you — contact us today!