1 | Lecture – Introduction to Android |
2 | History Actors Involved Details about the Android architecture |
3 | Lab– Setup Install the tools required to compile Fetch the source code (if network bandwidth is not sufficient, we will provide a ready-to-use .repo directory). Get used to the Android specific tools |
4 | Lecture – Android source code and compilation |
5 | How to use repo, git and gerrit to access sources. How to find one's way in the code base How to compile Android (tools, targets, etc) |
6 | Lecture – Linux kernel |
7 | Role and general architecture of the Linux kernel Features available in the Linux kernel, with a focus on features useful for embedded systems Kernel user interface Getting the sources Understanding Linux kernel |
8 | Lab – Compile and boot an Android kernel Using the Android Emulator Extract the patches from the Android Kernel Compile and boot an Android kernel |
9 | Lecture – Changes introduced in the Android Kernel Major functional changes introduced by Google Additions to the kernel Device driver changes |
10 | Lab - Supporting a new board Go through the steps taken to port Android to the DevKit8000 board. Boot Android on a real board Troubleshoot the various glitches Make the adjustments needed to have a fully workable system (get a working screen, touchscreen panel, buttons, etc.) |
11 | Lecture – Android Bootloaders What is a bootloader Bootloader examples The fastboot specifications from Android |
12 | Lecture – Developing and debugging with ADB Presentation of ADB Available commands: transfer files, install packages, executing remote commands, log access, networking... all this done from the development machine. Tweak ADB for a custom board |
13 | Lecture – Android filesystem layout Know where the various software components are installed and mounted, and why it matters. Structure of the initrc file |
14 | Lecture – Android build system Concepts introduced in the build system Architecture of the Makefiles Variables and functions available Compilation steps Add a new device to the build system Lab |