Saturday 25 May 2013

Developing & Delivering KnowHow

Home > Training > Inside Android

Inside Android

Length: 3 days

view dates and locations

This course is delivered in co-operation with Doulos' training partner Feabhas, who specialise in training courses for real-time embedded developers.

Course Description

Attendees will gain an insight into the inner working of Android using a combination of theory and hands-on lab sessions. Customisations covered range from the simple, such as changing the boot animation, to the more complex such as adding native services and non-Android code. On the optimisation front, they will find out how to use the Android NDK to call C/C++ code from aps, including how to detect and use the NEON co-processor for compute-intensive operations.

Pre-requisites

  • A good understanding of the C language
  • Familiarity with Linux development and command-line tools
  • A working knowledge of Java would be useful.

Who Should Attend?

This course is intended for software engineers and system architects who want to take an existing Android platform and customise or optimise it for their own needs

Course Materials

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

Related Courses

Course Workshop

An essential part of the training is 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.

Course Outline

Introduction to Android
  • Getting started with the SDK and emulator
  • Using adb (Android debug bridge) to run a shell on the emulator
  • Getting the source code: the Android Open Source Project (AOSP)

Internal and external storage
  • Files and directories: what goes where
  • File storage media: raw NAND flash, SD cards, eMMC and USB storage
  • The RAM disk

How Android boots
  • Types of boot loader, the fast boot protocol
  • Main and recovery boot partitions
  • The init program and init.rc boot script: detail of the boot stages and how to add your own native services
  • System properties: how they are defined and how to change them
  • Zygote and system server
  • Starting the Android framework: how to define your own launcher

Anatomy of an app
  • Application components: activities, services, broadcast receivers and content providers
  • Using the SDK to create and run a simple Java application
  • What goes into the apk file
  • How Android uses transient user IDs for security
  • Life cycles of components
  • The Android logger (logcat)
  • Low memory handling

Native code
  • How to use the NDK to write optimised functions in C and C++
  • How to detect and use the NEON co-processor to optimise data manipulation
  • Native libraries and the Bionic C library
  • Strategies to integrate non-Android native code

Debug tools
  • adb in detail
  • Using the Dalvik Debug Monitor Service (DDMS) to see what is going on
  • Using gdb to debug native code
  • Capturing and analysing application and kernel crashes

The kernel interface
  • Overview of the Android HAL (Hardware Abstraction layer); lights and sensors
  • OpenGL ES libraries
  • The input layer: touch screens, mice, keyboards and keypads
  • Power management: using wakelocks to stay awake

This course is available now for team-based training at or near to your location. To find out more:

Complete an on-line form and a Doulos representative will get back to you »
Call Doulos to discuss your requirements »
Back to top
Privacy Policy Site Map Contact Us