Introduction to Embedded Android – Spring 2015

When:
March 9, 2015 @ 6:00 pm – 9:00 pm America/New York Timezone
2015-03-09T18:00:00-04:00
2015-03-09T21:00:00-04:00
Where:
Crowne Plaza Hotel
15 Middlesex Canal Park Drive
Woburn, MA 01801
USA
Cost:
variable
Introduction to Embedded Android - Spring 2015 @ Crowne Plaza Hotel | Woburn | Massachusetts | United States

Cancelled

Speaker: Mike McCullough, RTETC, LLC

By: February 23

Members: $390
Non-Members: $420

After: February 23

Members: $420
Non-Members: $440
Decision: Wednesday, February 26

Phone 781-245-5405
email sec.boston@ieee.org
Fax 781-245-5406

Make Checks payable to:
IEEE Boston Section
One Centre Street, Suite 203
Wakefield, MA 01880

Course Overview:

This course introduces the student to the use of Android in Embedded Systems and the use of Embedded Android Distributions. The first part of the course focuses on acquiring an understanding of basic Android concepts and on how Android is hosted by the Linux Operating System, highlighting areas of concern for Embedded Android systems development such as overall system design, boot performance and customization. The latter part of the course covers the differences between the standard Android Open Source Project and Embedded Android distributions.

Who Should Attend – The course is designed for real-time engineers who are building Embedded Android solutions. It is also targeted at experienced developers requiring a refresher course on Embedded Android. This course will clearly demonstrate both the strengths and weaknesses of the use of Android in Embedded Systems.

Course Objectives

• To provide a basic understanding of Android and its use in Embedded Systems
• To gain an understanding of the complexities of Embedded Android Distributions
• To learn how to configure, build, boot and deploy Embedded Android solutions
• To understand the differences between the AOSP and Embedded Android build approaches
• To give students confidence to apply these concepts to their next Embedded Android project

OUTLINE

Course Schedule Day 1
The Basics
What Android Is and What It Is Not
Android Terminology, History and Versioning
The Android Community: Phones, Tablets and Embedded Systems
Android, the GPL and the Apache Harmony Project
Android and Linux References (Books and Online)
Getting Started
The Android Open Source Project
The Android Delivery Model
Building an Embedded Android Distribution
Embedded Android Distributions
Ice Cream Sandwich and Jelly Bean
Embedded Android Overview
Android Hardware Requirements
Embedded Linux Usage in Android
Java Usage in Android
The Android API
The Dalvik Virtual Machine (VM)
The Android Runtime and Zygote
The Java Native Interface (JNI)
Binder and System Services
Key Android Libraries
Debugging in Android
Process-Level and System-Level Debug
ADB, DDMS and Monkey
GDB and KGDB
GDB Server and Remote Debugging
An ADB Example

Course Schedule Day 2
Applications Development Overview

Eclipse-Based Application Development
The .apk File
The Android Emulator
Linux Modifications to Support Android
Wakelocks
Low-Memory Killer
Binder
Anonymous Shared Memory (ashmem)
Alarm
Logger
More Androidisms
Android Internals
Hardware Support
Native User Space
More on Dalvik and Java in Android
System Services and Binder
Useful AOSP Packages
System Startup Overview

The AOSP
The Android Development Host
AOSP Basics
Building and Running Android
ADB and the Emulator

Course Schedule Day 3
The AOSP Build System
Comparison with Other Builders
Configuration and Functions
The envsetup.sh File
Make Recipes
Cleaning
Modules in Android
The Default Build
Basic Build Recipes
AOSP Build Recipes
The Build Commands
Building the Software Development Kit (SDK)
Building the Compliance Test Suite (CTS)
Building the Native Development Kit (NDK)
API Updates
Building a Single Module
Building Out-of-Tree and In-Tree
Linaro
The Linaro Organization
Key Members and Participants
The Linaro Mission Objective
The Linaro Android Distribution Approach
Getting the Latest Linaro Distribution
The Linaro Distribution and Desktop Requirements
The Linaro Repository
The Linaro Maintainer Tools
The Linaro Image Tools
The Linaro Distribution for the i.MX53
Top Level Hierarchy
The GCC Tools for Linaro
The abi, android-toolchain-eabi and bionic Directories
The bootable and build Directories
The cts, dalvik and development Directories
The device Directory
The docs and external Directories
The frameworks and hardware Directories
The kernel Directory
The libcore and linaro-kernel-config Directories
The ndk, packages and prebuilt Directories
The sdk Directory
The system Directory
U-Boot in Linaro
The Linaro Build Process
The Linaro SD Creation Process
The Linaro Tarballs

Course Schedule Day 4
Native User Space
The Android Filesystem
The Android Root Directory
The system and data Directories
Building the Linux and Android Filesystems
SD Card Layout
The Android Init Process
Operation and Configuration
Global Properties and ueventd
The Boot Logo
The Android Command Line
The Shell
Toolbox
Native Utilities and Daemons
Framework Utilities and Daemons
Adding Capabilities to the Android Filesystem
The Linux Console Shell
The bash and ash Shells
Busybox
Linux Daemons Used by Android
Adding Capabilities to the Linux Filesystem
The Android Framework
Framework Startup
Core Building Blocks
System Services and Binder
Boot Animation
Dex Optimizations
Application Startup
Utilities and Commands
Support Daemons
The Hardware Abstraction Layer (HAL)
Advanced Android Customizations
Adding New Hardware Support
Customizing the Default Packages
More Init Customizations
Embedded Android Trends
Moving to a Generic User Interface
Easier Development for Non-Phones
Debugging Embedded Android
Better Documentation and Training
Some Final Recommendations

Lecturer Bio – Mike McCullough is President and CEO of RTETC, LLC. Mike has a BS in Computer Engineering and an MS in Systems Engineering from Boston University. A 25-year electronics veteran, he has held various positions at LynuxWorks, Tilera, Embedded Planet, Wind River Systems, Lockheed Sanders, Stratus Computer and Apollo Computer. RTETC, LLC is a provider of Eclipse-based development tools, training and consulting for the embedded systems market.