
Goal
This is a training course in Taipei, Taiwan which is instructed by Jollen Chen. With this very entry-level course, the trainer will instruct students to compile and porting AOSP to ARM platform (OMAP3, BeagleBoard).
Highlights
* How to download (repo) Android source tree
* Configuring Android product tree and compiling source tree
* Build images, create AVD and use Android emulator
* Modify source code and porting to ARM hardward
* Understanding basics of Android OOD
Schedule
Day 1:
* Chaper 1: Introduction of Android architecture and application framework
1.1 Android & Layered Architecture
1.2 FLOSS License & Android
1.3 Hardware Accessibility & Methodology
1.4 Android Runtime & Dalvik VM Instance
1.5 Android Porting Guidelines
* Chaper 2: Compile Linux kernel
2.1 Legacy GNU/Linux System
2.2 Android kernelfeatures
2.3 Configure and compile goldfish kernel
2.4 Cross compile: practice and principles
2.5 Linux kernel booting flow
* Chaper 3: Compile Android
3.1 Prepare build environment
3.2 Get Android source tree with repo
3.3 Compile Donut/Eclair/Froyo
3.4 Compile Gingerbread and use vendorsetup.sh
3.5 Configure your product tree
3.6 Use Android emulator
3.7 Build U-Boot image
3.8 Android.mk (1): build shared libraries
3.9 Android.mk (2): build Java libraries
* Chapter 4: Busybox made easy
4.1 Introduction of Busybox and GPLv2 issues
4.2 Configure cross tool prefix
4.3 Add Busybox commands
4.4 Compile Busybox
Day 2:
Chapter 5: Embedded Root Filesystem (Android + Linux)
5.1 Embedded Linux: the GNU/Linux system
5.2 Init process
5.3 library dependency & SONAME
5.4 Process memory mapping
5.5 Build root filesystem
5.6 Understanding the GNU/Linux inittab
5.7 Understanding Android/Linux root filesystem
5.8 Android init language and init.rc
Chapter 6: Android Booting Analysis and Internals
6.1 Bootchart: use bootchart.c
6.2 Android booting process
6.3 Introduction of Zygote and SystemServer process
6.4 Zygote & SystemServer: Internals
6.5 Optimize Zygote's class preloading
Chapter 7: Get started to develop Android OS
7.1 How to trace and modify application framework
7.2 Extend an API
7.3 Instance of Dalvik VM and JNI
7.4 Architecture design: OOAD basics
Android Porting for ARM Embedded Linux