"Barr Group training courses should be required before writing any embedded code."

General Dynamics

Newsletter Signup

Sign up for our newsletter and receive free how-to articles and industry news as well as announcements on free webinars and other Barr Group Training course information by e-mail. Signup Today!

Embedded Android Boot Camp

Barr Group's Embedded Android® Boot Camp™ is a week-long immersion into the Android operating system and its use on embedded hardware platforms. The training program consisting of an alternating series of lectures and hands-on exercises. This intense educational (but also fun!) program is designed to lead software engineers through the steps of bringing up embedded hardware with the Android OS, developing custom device drivers, and publishing the APIs of those custom device drivers to Android apps.

Upcoming Sessions

This course will be open to the public in the following dates and locations:

Date(s) Location Price*
Nov 14-18 Germantown, Maryland $2,399 Register>

* Prices will be discounted 20% for groups of 3 or more and increased 15% for late registration during the final 2 weeks.

To be automatically notified, by email, of future public training dates and locations, simply sign up here.

What You'll Learn

Everyone who attends Embedded Android Boot Camp learns a ton, including:

  • How to build a bootloader, the Linux kernel, and Android
  • How to create and debug Linux and Android device drivers for unique hardware
  • How to add custom system services and frameworks to Android
  • How to call custom C libraries from Java
  • How to integrate custom Android and C apps into Android
  • How to call C code from Java using JNI
  • How to implement kiosk mode
  • How to improve the security of your Android device
  • How to handle Android and Linux licensing
  • Tips for speeding Android ports and AOSP builds

Course Length

  • 4.5 days (hands on)


  • Embedded software developers moving up to the Android operating system
  • Android app or Linux software developers moving toward custom hardware


The following outline is provided as a summary of the major course topics and should not be taken as literally the section-by-subsection lecture breakdown.

  • Building and Installing Linux and Android
    • Embedded Android Development Process
    • Architectural Overview
    • ARM SoC Development Kit Overview
    • GNU Toolchain
    • Kernel Build Configuration
    • How to Build U-Boot
    • How to Build the Linux Kernel
    • How to Build Android
    • Installing / Booting Android
    • ADB (Android Debug Bridge)
  • Linux Kernel Architecture
    • Introduction to Software Frameworks
    • Linux Kernel Architecture
    • ARM Linux Boot Process
    • ARM Linux Machine-Specific Initializations
    • Introduction to Platform Bus Devices
    • Debugging the Linux Kernel
  • Linux Kernel Modules
    • Introduction to Kernel Modules
    • Kernel Module Framework and Lifecycle
    • GNU Makefiles
    • Building a Loadable Kernel Module (LKM) Out-Of-Tree
    • Installing a Loadable Kernel Module (LKM) Using ADB
  • Linux Drivers
    • Linux Device Model
    • Sysfs Attributes
    • Bus Devices and Frameworks
    • Bus Device Drivers
    • Class Devices and Frameworks
    • File Operations
    • Kernel Memory Allocation
    • Passing Data Between Kernel and User-Space
    • Accessing MMIO
  • Android Architecture
    • Multi-User Security
    • Android Init Process
    • Android Boot Scripts
    • AOSP Directory Structure
    • AOSP Device Configuration
    • AOSP Build System
    • AOSP Makefile Templates
    • Logcat and Android Debugging
  • Java and JNI
    • Java for C Programmers
    • Java Implementation and Evolution on Android
    • Zygote
    • Bionic
    • Shared Libraries
    • JNI Introduction
    • Android NDK Overview
    • Adding Components
    • Debugging AOSP Using Logger
  • Android System Server
    • System Server Architecture
    • Android HAL
    • Binder
    • Adding Custom System Services
    • Modifying Android Application Frameworks
  • Android Customization
    • Application Manifest Files
    • Intents
    • Replacing the Launcher
    • Configuring Input Devices
    • Kiosk Mode
    • Modifying the Startup Screen and Animation
    • Streamlining Android
  • Exposing Unique Hardware to Android Apps
    • Reaching the Kernel from Android Apps
    • Pros and Cons of Different Approaches
  • Android Security
    • Application Security Issues
    • Obfuscation
    • Best Practices
    • SE Android Overview
  • Android Licensing and IP
    • Trademark Licensing
    • Google App Licensing
    • Android CDD and CTS
    • AOSP Hardware Requirements
    • Open Source Licenses
  • Setting Up a Workstation to Build Android
    • Android Development Workstation Setup
    • Downloading AOSP
    • Version Control (Git and Repo)

Attendees will complete approximately ten hands-on programming exercises, including a large app-to-driver capstone. These exercises will be interspersed with the lectures and all take place on an ARM Cortex-A8 processor board that attendees can keep. A very powerful desktop computer will be provided for each student to perform the necessary Android builds, so it is not necessary for attendees to bring a laptop.


Attendees should arrive with a working familiarity of the C programming language.

Find out More

Please Contact Us to bring this course to your company.

Related Courses