- How To
Embedded Android Boot Camp
Barr Group's Embedded Android® Boot Camp™ is a one-week immersion into the Android operating system and its use on embedded hardware platforms. The training program consisting of an alternating series of lectures and hands-on exercises. This intense educational (and exciting!) program is designed to lead software engineers through the steps of bringing up embedded hardware with the Android OS, developing custom device drivers, and publishing the APIs of those custom device drivers to Android apps.
What You'll Learn
Everyone who attends the Embedded Android Boot Camp learns a ton, including:
- How to build a bootloader, the Linux kernel, and Android
- How to create and debug Linux and Android device drivers for unique hardware
- How to add custom system services and frameworks to Android
- How to call custom C libraries from Java
- How to integrate custom Android and C apps into Android
- How to call C code from Java using JNI
- How to implement kiosk mode
- How to improve the security of your Android device
- How to handle Android and Linux licensing
- Tips for speeding Android ports and AOSP builds
The public Embedded Android Boot Camp runs for 4-1/2 days and is broken up as follows:
Monday through Tuesday morning - Android/Linux Driver Development
When creating a board support package for an embedded Android device, porting the Linux-based Android kernel is a critical first step, a major element of which is the customization and development of drivers for embedded Linux. In addition to providing an overview of the Linux kernel architecture, the lectures and exercises will focus on the Linux driver model and device frameworks, on the tools and techniques needed to create and debug Linux device drivers for Android, as well as on hardware initialization and interface, interrupt support, multithreading, and synchronization.
Tuesday afternoon through Wednesday - Android Software Stack Customization
The Android operating system is designed for tablets and phones; to be useful for embedded devices, it must be heavily customized. The lectures and exercises will focus on the customization of all layers and major components of the Android architecture, including running custom packages during Android initialization, modification of the Android System server, and app integration. In addition, the exercises will teach helpful "recipes" for customization common for embedded devices, such as placing Android in "kiosk mode" and modifying the splash screen and boot animation.
Thursday - Capstone Programming Project
Teams of 2-4 attendees aim to complete an entire embedded Android coding project (from requirements through design and design review to implementation) in a single, fun, learning-packed day.
Friday (half-day) - Applied Embedded Android
Creating a successful embedded Android device requires more than simply creating an Android board support package to support new hardware. This course focuses on several important related topics, including how to properly secure the device and any intellectual property it contains, how to handle licensing of Android and the Linux kernel, how to work with Android revision control software, and how to setup an effective embedded Android development environment from scratch.
Full outlines and other details for each of the courses on which the Embedded Android Boot Camp is based are available via these links:
What You Get
At the Embedded Android Boot Camp you will receive:
- A TI AM335X Starter Kit development board with the following hardware features:
- Texas Instruments Sitara ARM Cortex-A8 AM3358 Processor
- 256MB DDR3 SDRAM
- 4.3" touchscreen LCD
- Dual Gigabit Ethernet ports with integrated switch
- WiFi WL1271 with Wifi Direct Support
- USB host ports
- USB device port with integrated debug UART and XDS100 JTAG emulator support
- Android navigation buttons
- User configured LEDs
- Audio out
- All necessary cables for the development board
- A printed copy of all lecture slides
- A printed Exercise Manual with instructions for all programming exercises
- A USB thumb drive containing:
- Source code starting points for the exercises
- An electronic copy of the book Programming Embedded Systems with C and GNU Development Tools by Michael Barr and Anthony Massa
- An electronic copy of the book Embedded C Coding Standard by Michael Barr
- An electronic copy of the book Embedded Systems Dictionary by Jack Ganssle and Michael Barr
- Datasheets and User's Manuals for all of the hardware and tools
- Dozens of articles for in-depth "further reading" on advanced topics, and
- A backup electronic copy of all lecture slides.
- Source code solutions for all of the exercises including the capstone project
- A certificate of course completion, and
- A few other free trinkets.
Lunch is provided each of the first four days. All exercises are done using the Texas Instruments target development board.
Typical attendees have at least 2 years of C software development experience and an electrical engineering, computer science, computer engineering or similar degree. Some have been working with other embedded operating systems and want to make the switch to Android system software development; others are Android application developers who want to understand and begin learning to customize Android for new hardware. These well-tested lectures and exercises provide an easy-to-follow path through the material with deep dives on advanced best practices. And there's plenty of even deeper information on the thumb drive to explore after you leave.