Android Installation
Android installation on a hardware platform
Objectives
Understanding the specifics of the Android system.
How to configure and compile the Android sources to get a working system.
Control the operation of the Android emulator.
Understand how to test an Android image before flashing the system.
Detail the different flash file system image generation procedures.
Labs are conducted on i.MX6 or i.MX8 boards.
We use the last open source version of Android, as available on the board.
For on-site trainings, if suitable Linux workstations are not available, we provide virtual machine images for VirtualBox; in all cases the requisite is a recent 64bit PC (at least 4 cores) with at least 32Gb of RAM (16Gb may work but will be slow) and 400Gb of free disk space.
Course Outline
Day 1
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
The Android-specific drivers
Binder
Logger
Low_memory_killer
Timed_output
Timed_gpio
The Generic Kernel Image
Day 2
Booting Android
The Linux boot process
The Android boot sequence
The Android Initialisation language
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 BSP
The Android build system
The Android.mk files
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 |
Day 3
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
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 |
Prerequisite
Embedded Linux installation and kernel usage.
Target Audience
Any embedded systems engineer or technician with the above prerequisites.
Course Environment
Theoretical course
PDF course material (in English) supplemented by a printed version.
The trainer answers trainees' questions during the training and provide technical and pedagogical assistance.
Practical activities
Practical activities represent from 40% to 50% of course duration.
Code examples, exercises and solutions
One PC (Linux ou Windows) for the practical activities with, if appropriate, a target board.
One PC for two trainees when there are more than 6 trainees.
For onsite trainings:
An installation and test manual is provided to allow preinstallation of the needed software.
The trainer come with target boards if needed during the practical activities (and bring them back at the end of the course).
Downloadable preconfigured virtual machine for post-course practical activities
At the start of each session the trainer will interact with the trainees to ensure the course fits their expectations and correct if needed
Nohau Training Partner
This course is provided by a Nohau Training Partner, a trusted provider of hands-on training for professionals in embedded systems, software development, and engineering.





