Advanced Android programming

course image

Advanced Android programming

Learn all about the modern Android operating system and its hidden traits on embedded platforms.

Gain an overview of the Android operating system regarding its architecture, with a focus on internal architecture, extensibility, and adaptation to various embedded platform targets. Instead of only focusing on application programming using Android SDK, you will cover “under the hood” concepts of Android, such as build and debug concepts, binding and memory sharing, Media Codec API, as well as Android Hardware Abstraction Layer (HAL). Upon completing the course, you will be able to program and adapt Android to target use cases on specific embedded processors, mostly for applications in consumer electronics and media processing pipelines.


Course topics:

  • Introduction, including brief Android history, differences between open source and OASP projects, overview of Android architecture and all layers
  • Build subsystem, build templates, device build configuration
  • Debug subsystem with adb, native debugging, ANR, addr2line, DDMS, traceview, GDB utilization
  • Android system level concepts: init process, properties, binder, ashmem, JNI
  • Multimedia stack in Android with Media Codec API
  • Android HAL, extension and manipulation


Software: Virtual Box, Chrome browser.

Hardware: Computer with an Internet connection, working speakers, and microphone.

Prior knowledge: Participants should have basic knowledge of programming in either Java or C/C++.