Android Platform Internals Training Course

Public Classroom

Summary

Android Platform Internals Training Course

Android Platform Internals is a 3-day hands-on course that delves deep into inner-workings of the Android kernel. It is an advanced course that is best suited for existing Android developers who are seeking to extend or customize the functionality of the Android platform. The course reviews the underlying Linux kernel (with emphasis on the parts that deviate from the standard Linux kernel), configuration of basic services, and the layout of the various file systems. Android NDK is used heavily throughout the course, providing access to the hardware and platform API. You will have a chance to develop native applications in C/C++ and to see how they are integrated and loaded onto the development platform.

Duration

3 days

Course Objectives

After completing the Android Platform Internals training course you will be able to:

  • Build native applications using Android NDK and JNI
  • Navigate Platform Sources and utilize built-in tools and API
  • Understand Linux kernel sources, scheduler, filesystem, and syscall
  • Build the Android platform from source and understand the process
  • Modify and extend Android frameworks and services
  • Have a thorough understanding of AOSP framework services
  • Understand Android device drivers as well as write wrappers and applications that use device drivers

Audience

The Android Internals course is best suited for existing Android developers seeking deeper understanding of the Android platform and Native Development Kit (NDK). If you are looking for ways to push the limits of the existing Android capabilities, or simply have the need to develop an Android app using the native interface, this course is for you!

Pre-requisites

In order to get the most benefit from this class you must have a solid understanding of C, C++, and Java. Previous exposure to Android SDK is highly recommended. No previous knowledge of Android NDK is assumed.

Outline

  1. Module 1: Introduction
    1. Java Native Interface (JNI)
    2. Android Open Source Project (AOSP)
    3. Architecture
    4. Runtime model
  2. Module 2: JNI
    1. Java/JNI bridge
    2. NDK features
    3. Build environment
    4. Examples
    5. Student lab session
  3. Module 3: Platform Source Tour
    1. High level overview of AOSP distribution
      1. Bionic
      2. Dalvik
      3. Frameworks
      4. Packages
      5. System
      6. Tools
  4. Module 4: Kernel Source Tour
    1. High level overview of Linux kernel sources
      1. Scheduler
      2. Filesystem
      3. Syscall
      4. /proc
  5. Module 5: Building Goldfish For AVD
    1. Compile and deploy platform to emulator
  6. Module 6: Booting Android
    1. Platform start process
  7. Module 7: AOSP framework services
    1. Audio Flinger
    2. Camera
    3. Sensors
    4. Surface Flinger
  8. Module 8: Update Platform
    1. Make change to platform source, build and deploy to AVD
    2. Student lab session
  9. Module 9: Android Device Drivers
    1. Driver types and strategies
    2. Demonstrate a sample driver (/proc)
    3. Compile/deploy driver
    4. Write Java/JNI wrapper for driver
    5. Write Java application to use driver