Android System Programming Training Course


28 hours (usually 4 days including breaks)


  • C/C++ programming experience.
  • Java programming experience.
  • Knowledge of hardware and software concepts.


  • Linux system developers
  • Android system programmers
  • Developers who want to get into Android system programming


Android system programming refers to development involving both hardware and software.

This instructor-led, live training (online or onsite) is aimed at developers who wish to understand, adapt, and extend Android for different hardware and platforms.

By the end of this training, participants will be able to:

  • Set up the development environment needed to start system development for Android.
  • Understand how hardware interfaces with system services (applications)
  • Develop, test and debug system code iteratively using an Android emulator.
  • Load and deploy customized Android on different embedded hardware systems (using simulated/emulated).

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline


Preparing the Development Environment

  • Eclipse and Android SDK
  • System programming and the C/C++ programming language
  • Organizing source code repositories

Overview of Linux Platform Architecture

  • Understanding the Android file structure
  • How code is organized in Android
  • How system services (applications) talk to hardware

Linux Kernel

  • Understanding the Android device driver framework
  • Interfacing hardware (Sensors, Camera, Audio) to Android HAL
  • Compiling the Kernel

Android HAL

  • Understanding HAL (Hardware Abstraction Layer)
  • Interfacing HAL to system services (applications)

System Programming

  • Understanding the Android build system
  • Building and debugging an Android system
  • Debugging the boot up process

Android for Embedded Platforms

  • Overview of virtual hardware (translators, bridges, simulators, emulators, and virtual machines)
  • Customizing the Android Emulator
  • Customizing Android for ARM-based systems

Android Networking

  • Enabling Wi-Fi

Adding New Hardware

  • Integrating hardware devices
  • Enabling graphics

Deploying Android

  • Creating OTA packages


  • Android recovery

Summary and Conclusion

Leave a Reply

Your email address will not be published. Required fields are marked *