Barr Group FacebookBarr Group TwitterBarr Group LinkedInBarr Group Vimeo

Course Overview

Course Length: 
4 Days
CEUs: 
3.0
Format: 
Hands-on/Lecture

 Printable PDF

Barr Group's Embedded Android Boot Camp™ is a 4-day immersion into the Linux kernel and Android operating system and its use on embedded hardware platforms. This intense educational (yet fun) 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 Linux device drivers to Android apps. Attendees will complete approximately ten hands-on programming exercises, including a large app-to-driver capstone. Exercises are interspersed with the lectures and all take place on an ARM Cortex-A8 processor board that attendees can keep. Students will use dedicated, high-performance cloud servers to modify and build Android and the Linux kernel.

This course is appropriate for embedded software developers moving up to the Android operating system or Android app or Linux software developers who want to learn the internals of the Linux kernel or Android OS.

Attendees will learn to:

  • Build a bootloader, the Linux kernel, and Android
  • Create and debug Linux and Android device drivers for unique hardware
  • Add custom system services and frameworks to Android
  • Call custom C libraries from Java using JNI
  • Integrate custom Android and C apps into Android
  • Use Binder for Interprocess Communication
  • Improve the security of your Android device
  • Tips for speeding Android ports and AOSP builds

Syllabus

The following summary covers the major course topics and may be modified at the instructor's discretion based on the needs and pace of the class.

  • Building and Installing Linux and Android
    • Embedded Android Development Process
    • Architectural Overview
    • ARM SoC Development Kit Overview
    • GNU Toolchain
    • Kernel Build Configuration
    • How to Build U-Boot
    • How to Build the Linux Kernel
    • Android Development Workstation Setup
    • Downloading AOSP
    • Version Control (Git and Repo)
    • How to Build Android
    • Installing / Booting Android
    • ADB (Android Debug Bridge)
  • Linux Kernel Architecture
    • Introduction to Software Frameworks
    • Linux Kernel Architecture
    • ARM Linux Boot Process
    • ARM Linux Machine-Specific Initializations
    • Introduction to Platform Bus Devices
    • Debugging the Linux Kernel
  • Linux Kernel Modules
    • Introduction to Kernel Modules
    • Kernel Module Framework and Lifecycle
    • GNU Makefiles
    • Building a Loadable Kernel Module (LKM) Out-Of-Tree
    • Installing a Loadable Kernel Module (LKM) Using ADB
  • Linux Drivers
    • Linux Device Model
    • Sysfs Attributes
    • Bus Devices and Frameworks
    • Bus Device Drivers
    • Class Devices and Frameworks
    • File Operations
    • Kernel Memory Allocation
    • Passing Data Between Kernel and User-Space
    • Accessing MMIO
  • Android Architecture
    • Multi-User Security
    • Android Init Process
    • Android Boot Scripts
    • AOSP Directory Structure
    • AOSP Device Configuration
    • AOSP Build System
    • AOSP Makefile Templates
    • Logcat and Android Debugging
  • Java and JNI
    • Java for C Programmers
    • Java Implementation and Evolution on Android
    • Zygote
    • Bionic
    • Shared Libraries
    • JNI Introduction
    • Android NDK Overview
    • Adding Components
    • Debugging AOSP Using Logger
  • Android System Server
    • System Server Architecture
    • Android HAL
    • Binder
    • Adding Custom System Services
    • Modifying Android Application Frameworks
  • Exposing Unique Hardware to Android Apps
    • Reaching the Kernel from Android Apps
    • Pros and Cons of Different Approaches
  • Android Security
    • Application Security Issues
    • Obfuscation
    • Best Practices
    • SE Android Overview

Prerequisites

Attendees should arrive with a working familiarity of the C programming language and experience writing embedded software.

Requirements

Each student will need to bring a computer, such as a laptop, running Windows 7 (or later), Mac OS X, or Linux with at least one available USB port — two are recommended — and administrator privileges. Students will be required to install course materials and several small development tools on their computer.

Private Technical Consults

Do you or your team have a project-specific question that you would like to discuss with an expert?  If so, attendees of the Maryland session of the Embedded Android Boot Camp are eligible for a complimentary 30-minute private consult with a member of our expert technical team to discuss issues faced by you and your design team. 

These technical consultations provide an opportunity for attendees to confidentially discuss details of their project with Barr Group engineers and ask project-specific questions that may not be of interest to the class or appropriate to discuss in a classroom setting. Discussions may range from high-level software/hardware architecture questions to the best way to implement a specific Android device driver to the most cost-effective ways to detect software intrusion or implement public key encryption... and any other project-related technical questions that you have.

Conferences will be scheduled for Friday, the day immediately following the conclusion of each course. For more information or to schedule a conference, please contact experts@barrgroup.com.

Meetings are limited to one 30 minute session per company/group.  In the event that you or your team are unable to attend a Friday meeting, alternate meeting dates can be arranged.  If you believe a non-disclosure agreement is necessary to discuss your sensitive project, please let us know and arrangements can be made prior to the consult.

Related Courses

Upcoming Sessions

Date(s) Location PRICE Register
May 21 to May 24
Embedded Android Boot Camp
Germantown, Maryland, United States $2,399.00 *
Inquire

Find out More

To find out more about our upcoming public trainings, go to our Training Calendar.

Contact Us to find out more about this course or to enquire about an on-site training at your company.

Recording Policy

All Barr Group Training Public and On-site courses may not be audiotaped, videotaped or photographed without consent from Barr Group's executive team.  Barr Group reserves the right to record portions or all of a training course for instructional purposes.  As a result, attendees present may also appear on the recording.