Global training solutions for engineers creating the world's electronics

Embedded Android

Standard Level - 4 days


This course is available Live Online worldwide: View the Live Online full course description »


This course teaches you how to take the source code from the Android™ Open Source Project (AOSP) and build a custom Android image for a wide range of applications. Typical use cases include test equipment, point of sale, and industrial control terminals. Usually, Android is embedded into the system so that the end user sees only the user interface that controls the device.

Half of the course includes hands-on lab sessions. We use a virtual classroom based on cloud instances and a browser UI, using the Cuttlefish emulator as the target.

If you have specific requirements, please contact Doulos to discuss your options.

Embedded Android is aimed at system architects, engineers and project leaders who want to know how Android works, and how to customize and extend the platform.

This course is not for those looking for training on how to write applications for Android.

  • Designing your own product using the latest version of Android, Android 13
  • Creating a new Android System Service, defining the interface using the Android Interface Definition Language, AIDL.
  • Android security framework and SELinux policy
  • Hardware Abstraction Layer, and binderized and passthrough transports
  • Good knowledge of C/C++ and Java
  • Good knowledge of embedded Linux concepts (such as toolchain, bootloader, kernel, root filesystem) as covered in the Doulos Developing with Embedded Linux course
  • Good knowledge of Linux command-line tools such as make, grep, and find as covered in the Doulos Linux Fundamentals 


Please contact Doulos directly to discuss and assess your specific experience against the pre-requisites.

Doulos course materials are renowned for being the most comprehensive and user friendly available. Their unique style, content and coverage has made them sought after resources in their own right. The materials include:

  • Electronic copies of presentations and lab notes
  • Worked solutions to the problems

Introduction to Android
Android architecture: the big picture • The Android Open Source Project (AOSP) • Building Android from source • The impact of Project Treble

Creating a new Android product
The structure of an Android device • Setting basic hardware characteristics • Adding the device to the "lunch" menu

The kernel
Looking at some Android-specific changes to Linux • The Google common kernel and vendor kernels • Building Linux from source

Booting Android
Options for storage layout: separate system and vendor partitions; system-as-root; A-B "seamless update" • Flashing images using fastboot • Android init: events and services • Understanding run command (.rc) scripts

The Android build system
Building a product from packages and modules • Android Blueprint files (Android.bp) • Android Makefiles (Android.mk)

The Android framework
Understanding Android services • The role of binder and AIDL • Adding a custom system service inside a persistent app • Accessing the service from a platform library

Applications
Application sandboxing • Writing system and privileged apps • Calling platform libraries

Security
How Android permissions work and how to add your own • POSIX user ID and group ID within Android • Understanding and modifying SELinux policy files • Security threats and "rooting"

The Hardware Abstraction Layer
HAL interfaces and interface languages: stable AIDL and HIDL • Writing HAL code • Run-time linking and the Vendor Native Development Kit (VNDK) • The Vendor Interface (VINTF)

Testing; CTS and VTS
Validating your Android implementation using the Compatibility Test Suite, CTS • Testing your vendor HAL using the Vendor Test Suite, VTS

Graphics
How SurfaceFlinger orchestrates image rendering • Internal and external displays

Looking for team-based training, or other locations?

Complete an enquiry form and a Doulos representative will get back to you.

Enquiry FormPrice on request