First Day
Android overview
- Android
- History
- The Open Handset Alliance
- Existing ports (HTC Dream, Magic...)
- The various licenses used by Android (GPL, LGPL, etc.)
The GIT distributed source management system
- Installation and general usage.
- Creating and using a local repository
- Connecting to a remote repository
Exercise: |
Managing several versions of a program with GIT |
- Working with branches
- Creation of a new branch
- Merging branches
Exercise: |
Working with vendor branches |
- Team functions
- Creating configuring and managing a public repository
- Working with patches
Exercise: |
Creating a shared project repository |
The Android Linux kernel
- Downloading source code
- Configuring the Android-specific drivers
- Binder
- Logger
- Low_memory_killer
- Timed_output
- Timed_gpio
- Configuring an Android Linux kernel
- Building the kernel
Exercise: |
Configuration and build of the Android kernel for the target board |
Exercise: |
Checking the first phases of kernel boot |
Second Day
Booting Android
- The various kinds of boot
- U-Boot
- Configuration and build
- Porting U-Boot
- RedBoot
- Le Linux boot process
- The Android boot sequence
The Android System
- Downloading sources
- Exploring the Android system
- The Android source tree
- The Bionic library
- The Dalvik Java virtual machine
- The basic packages
|
- Building the Android system
Exercise: |
Compiling the full Android system |
- The Android initialisation language
Exercise: |
Modifying the Android init sequence |
The Android BSP
- The Android build system
- Creating a new Android platform
- Declaring a new vendor
- Creation of platform-specific parameter files
- Choosing platform-dependent compilation options
Exercise: |
Compiling a new Android platform |
- Adding native components
- Defining Java methods in C++
- The Android NDK
- JNI for Android
- Using SWIG
- The Android binder
- Writing services in C++
- The binder's C++ interface
Exercise: |
Recompiling a single component |
Third Day
The Android SDK
- Overview and installation of the Software Development Kit (SDK)
- The Android Virtual Devices
- Creation
- Configuration
- Basic Use
- The Eclipse Android Development Toolset (ADT)
- Developping and testing and Android application
- Deploying Android Applications
- The Android Debug Bridge (adb) tool
- Basic use
- Connecting to a remote Android target (real or virtual)
Exercise: |
Building and testing a simple Android application |
Finalization of the Android platform
- Testing the kernel and the system :
- Using an NFS-mounted root file system
- Updating the initailisation script for NFS use
- Flash memory partitionning
- Flashing the system
- Flashing through u-boot
- Flashing from Linux
- _ Updating the initailisation script when booting in flash
- Starting and using the platform in standalone mode
Exercise: |
Deploying a finalized Android system |
|