Previous
Next

I need more information

If you would like to speak to a member of our specialist team, please feel free to call our freephone number or email us directly:

0800 028 6400

enquiries@jbinternational.co.uk

Quote me | Enrol me

Android Porting Development Training

Course code: ANDPORTING
Details: On demand - Please Enquire
OnsiteEnquire about bringing this course to your offices
Who should attend: Software engineers and system architects
Prerequisite skills: A good understanding of the C language and familiarity with Linux development and command-line tools. A working knowledge of Java would be useful but not essential.

Overview

This course shows how to port Android to a typical embedded hardware platform. It is intended for
engineers who are starting out with a fresh Android implementation or who need to understand and
modify an existing one.
During the hands-on sessions attendees learn how to use the source code from the Android Open
Source Project (AOSP) and go through the steps of implementing Android on a common
development board with an ARM Cortex A series processor.
Emphasis is on understanding how the Android build system works and which components need to
be modified to suit particular hardware. Current versions of Android and Linux are used throughout.

Materials

Printed copies of the presentations and lab notes plus electronic copies of the development tools,
sample code and worked solutions for the labs.

Hands-On Labs

An essential part of the training are the lab sessions, which take approximately 50% of the time.
We normally work in pairs using a modern development board. Each group will also need a laptop
or desktop to run the system development tools. We will provide a bootable USB memory stick with
an appropriate version of Linux and Android development tools so there is no need to install Linux
beforehand

Outline

Introduction and setup
• Introduction to Android; review of open source licenses: GPL/LGPL, Apache, etc.
• Selecting a toolchain
• Getting and building the AOSP (repo, lunch, make)
• Begin creating a new board definition which will be used through the rest of the course
Kernel
• Review of the Android kernel additions
• Merging the Android patches with an existing kernel BSP
• Kernel configuration options
• Adding the kernel to the board definition
Booting
• Overview of Android boot
• Selecting a bootloader and flash memory partition scheme
• Creating main and recovery boot images
• Customising the init.rc boot script and system properties
Hardware libraries
• Overview of the Android HAL (Hardware Abstraction Layer)
• Lights, sensors
Display and OpenGL ES libraries
• Configuring frame buffer driver, LCD and HDMI interfaces
• 3D graphics support: libEGL, GL ES 1.1/2.0
Input devices
• The input layer: touch screens, mice, keyboards and keypads
• Input device configuration files: /system/usr/idc.
• Keyboard and button devices. gpio-buttons
• Single and multi touch. The multi-touch protocol input event protocol
Audio devices
• The audio HAL: libaudio
• Configuring ALSA sound drivers
Video devices
• Video sources: camera devices and other inputs
• The Video 4 Linux framework
Network and Bluetooth devices
• Overview of integrating network devices into Android
• Wifi devices
• Wired Ethernet devices
• Bluetooth devices
Power management
• Power states and transitions
• Using wake locks to prevent the system going into sleep mode
• Operating on mains vs battery; managing battery charge and discharge cycles