Android Porting for Embedded Systems
The tendency to adopt Android as an operating system for embedded platforms, is on the rise. The automotive OEM community has been progressively shifting towards customising Android for vehicle infotainment systems and head units. Android OS is also the popular choice in the healthcare industry for powering medical devices.
This widespread adoption of Android porting for embedded systems across industries is primarily due to the advantages Android offers over other operating systems. Here, we explore Android porting in detail – the process, the value-addition and much more.
Advantages of Moving Towards Android
Our Android porting experts have successfully delivered projects associated with:
- Porting Android on embedded platforms running on other operating systems
- Direct porting of Android on new embedded systems
Embedded Android has a host of advantages as indicated below:
- Rich User Interface – The flexibility that Android provides in building high quality user interfaces is inimitable. Through the inclusion of various APIs into applications, highly immersive UI is delivered. Another highlight is the fact that the embedded application will reflect the UI patterns that users of Android phones/tablets are already familiar with.
- Free Source Code – Google releases the source code for core Android as Android Open Source Project (AOSP). The permissive open source licenses associated with this makes it easy to modify the code and incorporate it in products without making it public.
- Standardisation – Prior to Linux or Android being adopted as primary operating systems for In-Vehicle Infotainment (IVI) units, OEMs were using customised platforms for this purpose. This led to a lack of standardization in the industry. Since the advent of Linux and Android, OEMs can use the free source code and build unique applications with it. This reduced the overall cost of development. The movement of the industry towards Linux and Android also brought about a distinctive level of standardisation.
- Stability/Security – Since Android powers millions of devices globally, it is a well-tested and secure platform. Google also endeavours to continue the progressive development of Android to maintain its superior quality standards.
- Easy to develop applications – Google provides a good amount of support for the Android operating system. The programming interface for Android is also well documented. Additionally, it is easier to find experienced engineers to work on Android applications these days. All of this makes Android-based application developmenteasier. OEMs that were previously reliant on custom IVI platforms are now transitioning to Android to open up their platforms to third-party applications. The support of the larger worldwide community is an added advantage.
- Futuristic platform – Investors in Android applications are delighted by the modularity and extensibility offered by Android platforms. This is precisely where the overall development process is headed towards in the future.
- Underlying Linux Kernel – Since Android is essentially based on the Linux kernel, it is possible to run Linux applications in parallel. It is also feasible to use the Linux development tools here.
- Highly customisable – This is a key advantage of the Android platform, when compared to other operating systems. Since Linux is the base, it is possible to integrate open source drivers to Android and create customised framework and application over it.
- Free Tools for Programming – Google offers a wide range of free programming and debugging tools for developing Android applications. Android Studio is one such tool that enables programming in C++ and Java. Third-party tools that allow programming using other languages and environments are also available.
Android Automotive – A Brief Overview
Android Automotive is a base Android platform that operates automotive In-Vehicle Infotainment systems and head units. It can be customised and scaled to suit specific use cases.
Android Automotive utilises the same codebase as that on the operating systems of Android phones or tablets. There is added support for automotive-specific features and requirements. It enables auto manufacturers to create compelling infotainment systems that deliver unparalleled experiences.
Android Porting Project Process Flow
- The first step in the execution of an Android porting project is the analysis of the granular requirements to identify the hardware and Board Support Package (BSP) required.
- Analysis of the customisation needed for Android is done (modification of drivers, peripherals, etc.) so that key project requirements are met.
- Once this is accomplished, the application team can make use of the framework and start working on application development. In parallel, the BSP team can work on the development of lower layers.
- The completion of the application layer development and BSP development will result in the final product.
- The next step is the exhaustive testing of the product.
- Manual testing is usually performed, and there is limited dependency on testing tools. One of the few testing tools used is the Compatibility Test Suite (CTS) that executes test cases directly on an emulator or attached devices. The intent of using this tool is to reveal incompatibilities early on in the development cycle so that the software is compatible throughout the process.
- The BSP and application teams conduct testing and validation of their code separately.
- The BSP team may utilize third-party applications for testing their components.
- Integration testing is then performed to assess end-to-end functionality.
- When multiple drivers are integrated and several applications start running on the system, there is a possibility of excessive memory usage or memory leaks. Tools such as Valgrind and meminfo can be utilised to assess the system performance. In case the system gets slower after a short period of usage, these tools help in identifying areas where the system can be finetuned. It is also possible to optimise the system following this diagnosis.
Embedded Android Porting – A Comparison Between Automotive Industry and Others
When Android porting is done for automotive systems, there are certain standards to be followed. In other industries, the standards would vary.
For instance, in an automotive application the sensors engaged in collecting data may have to integrate with CAN based in-vehicle network . This communication might not be relevant for a consumer electronic product or a healthcare product. The interface, sensors and communication network in such use cases would be completely different.
There would also be a noteworthy difference on the application side. The HMI of a vehicle dashboard is distinct from that of a medical or consumer electronics device. So, the application layer and above would depict these subtle differences. The lower layers, however, would remain the same across domains.
Apart from the aforementioned variations, the overall effort in Android porting remains more or less the same across industries.
Security Features to Consider
Apart from Android security patches, the Android Porting engineers developing a complete product may have to integrate the system with the cloud platform. In this scenario, development of a custom security layer is inevitable.
The custom security layer will prevent unauthorized access to the system and the cloud. Kits with SSL certificates, Azure certificates, etc. can be used for the same.
Apart from security considerations, it is important to incorporate FOTA update features into the system. This enables the remote device to be updated with new features at an overall system level or at a specific component/application level.
The popularity of integrating Android OS with embedded systems is likely to continue in the future. Android has also found acceptance among developers and embedded engineers beyond the mobile market. Since the structure of the platform is quite complex, it is best to engage experienced professionals in the execution of Android porting projects for embedded systems.
Explore our expertise in the successful execution of Android Porting projects here.