Embedded Android Development 101

Embedded Android Development 101

Introduction to Embedded Android Development

Aucun texte alternatif pour cette image

Android is an open-source operating system that is built upon a modified version of the Linux kernel. It comes with a full user interface framework, which is integrated with SELinux. The OS's versatility and ease-of-use have contributed to its growing popularity in a wide range of applications.

Android is gaining popularity as an embedded operating system due to its numerous advantages. Embedded Android provides all the benefits of embedded Linux and adds a user-friendly interface and a familiar programming environment. It is used in various applications such as digital signage, testing and measurement, point of sale, and automotive systems (which we're going to focus on later in the articles) .

Top Benefits of Choosing Embedded Android for Your Project

Reason 1: It’s free

Google makes the source code for Android's core available through the Android Open Source Project (AOSP). The AOSP encompasses the source code for various components, including the launcher screen, basic browser, clock, and phone applications.

You may get a copy of AOSP right now via Google's git servers, but keep in mind that a full download will take roughly 50 GB. At source.android.com, you can find detailed instructions on how to build mainline AOSP.

The second major software component you'll require is a Linux kernel, which is also available for free under the copyleft GPL license. This license allows developers to modify the code and distribute it, as long as the modifications are made public.

Reason 2: Android has a familiar user interface (UI)

If your product includes a touchscreen, Android is an ideal choice. Since most people have used an Android phone at some point, they will already be familiar with the user interface (UI), including touch gestures and how to navigate menus and on-screen options. By incorporating Android's UI into your product, your end consumers will find it intuitive and easy-to-use, enhancing their overall experience.

Reason 3: Android has a familiar programming environment

Google provides extensive documentation and support for the Android programming interface, which can be accessed through developer.android.com. This not only simplifies the process of developing applications for your product, but also facilitates the task of finding skilled developers.

Compared to C++, which is widely used in basic embedded Linux environments, Android has a larger following and more developers are familiar with it. Nonetheless, your proficiency in C++ is still valuable, as Android can be programmed using both C++ and Java.

Reason 4: Good tools for programming and debugging

Google offers a comprehensive range of free tools for creating Android applications, with Android Studio serving as the primary platform for writing Java and C++ programs.

However, if you're not comfortable with Java and C++, there are several third-party services that cater to different languages and environments.

Reason 5: Good support from chip vendors

In order to integrate Android into an embedded device, you'll need hardware that is capable of running the operating system, as well as a board support package that correctly configures both Android and the Linux kernel. It's important to note that embedded devices are often held to higher standards than consumer-grade products, since they are often required to operate under severe conditions for extended periods, potentially without human supervision.

NXP's i.MX 6 SoCs, which include single, dual, and quad-core ARM v7a architecture (32-bit) CPUs, support Android on the vast majority of them. NXP offers board support packages for AOSP versions 7 and up, Android 13, at the time of writing.

Aucun texte alternatif pour cette image

Qualcomm offers a range of industrial-grade components under the "Snapdragon Embedded" moniker, such as the 410E, 600E, and multiple 8xx variations. These SoCs feature a blend of ARM v7a and ARM v8a (64-bit) architectures with four or eight cores.

In addition, other SoC manufacturers such as Allwinner, Amlogic, Intel, MediaTek, and Rockchip provide some degree of compatibility with Android boards. If your particular chip is not included in the list, you may be able to port your own version of AOSP to it. (For instance, we will be working with the Raspberry Pi.)

Reason 6: It’s Linux underneath

Since Android runs on a Linux kernel provided by SoC manufacturers, the Linux expertise that you have acquired remains relevant. You can customize the kernel and install drivers for your device, and all of the standard Linux development tools are available, including perf for performance monitoring and trace for tracing.

Reason 7: You can customize Android to your needs

Customizability is a key advantage of Free/Libre and Open Source Software (FLOSS), especially in the context of embedded systems. Being able to modify the underlying platform code is crucial to optimizing your product's performance. However, we recommend making only minor adjustments rather than major modifications to the core operating system to avoid maintenance issues. For instance, limiting user access to only the programs you provide by securing the UI is a good example of a minor tweak that can enhance your product.

Summary

The lack of a specialized operating system provider for embedded systems has caused fragmentation and increased the risk of faulty software. This has hindered innovation in the IoT industry, particularly for medium-sized fleets of devices. However, newer versions of embedded Android, such as emteria.OS, are addressing these issues by standardizing the industry and providing features to OEMs at a lower cost. This allows solution creators to focus on creating customer value rather than fixing OS difficulties, which removes a major hindrance to innovation.

Achref NAFFOUTI

Ingénieur en génie Mécatronique (Robotique ) à la recherche d'une nouvelle opportunité

2 年

Good job ??

Islem HENCHIR

Embedded Software Engineer at StMicroelectronics

2 年

Great job

回复
sana krissaane

technicien Supérieur en génie électrique |master mécatronique

2 年

Great job chedi ?

回复
Ayari Mohamed Amine

Electronic Designer Engineer

2 年

Good Job Chedi ??

要查看或添加评论,请登录

Triki Chedi的更多文章

社区洞察

其他会员也浏览了