Shopping Cart :Check Out
EMAIL : contact@embeddedact.com

Embedded Android & Internal Development Using ARM Workshop

Overview-You Will learn how to:

* Design and implement Android-based embedded systems
* Understand Android's internals
* Build the Android Open Source Project (AOSP) straight from source
* Create customized AOSP-based root filesystem images
* Include embedded Linux elements in an Android-based system, incl. Busybox
* Extend the System Server and Android Framework
* Create custom SDKs and NDKs
* Learn how to use Android tools in a general embedded environment
* Generate and build Android-compatible Linux kernels
* Customize Android user-interface, incl. the status bar and launcher
* Add a Posix-compliant C/C++ library to the AOSP
* Add Android support for custom hardware & Device Drivers

Prerequisites:

* Basic C Programming
* Familarity with Linux OS & Basic Java
* Note-If participants are not familiar with Linux OS or Java, then if required, we can train them in additional one day of training. (1 day for Linux OS / 1-2 days for Java Prog. Basics)
* Twin shared or Individual FriendlyARM boards to be used based on number of participants. (Board between Two PCs powered and USB/Serial cable switch to try labs, depending on Space/Power Point on table)

Course Contents

Day 1
Introduction
Introduction to Linux System Commands
Introduction to JAVA towards Android Development
Introduction to Linux Kernel Internel towards Android Development
Other topics that needed towards Android Internals(based on background)
Day 2-5
Introduction
Introduction to Embedded Android
Android overall architecture & Android Framework
Setup development Environment
-Install SDK, Get used to Android Tools
-Create Android Virtual Devices
Android Open Source Project(AOSP)
Embedded Linux Fundamentals Android Kernel Android Runtime
Role and general architecture of the Linux Kernel Introduction Introduction to Dalvik / Zygote
Features available in the Linux kernel, with a focus on features userful for embedded systmes Binder How Android framework starts
Kernel user Interface Power app_runtime->zygote
Getting the sources Ashmem System server, Android Services
Understanding Linux Kernel versions Low Memory Killer Instances of Dalvik
Using the patch command Logger, ADB Hardware abstraction layer
Kernel Androidisms Miscellaneous Patches Native Android user-Space
Code Blocker Android FileSystem Android Bootloader
-Bionic Choosing and installing the root filesystem Compile and boot an android Kernel
-bootloader/legacy -Install the required tools -Using the Android Emulator
-Build -Intro to Repo & Git -Extract the patches from the Android Kernel
dalvik -Fetching the code -Compile and boot an Android kernel
-development -Compiling the code & build RootFS -Boot Android on a real board
-framework/base -Fetching the code Android Bootloaders
-framework/policies/base -Compiling the code & build RootFS -What is bootloader
-hardware/libhardware -Get used to Android Specific tools -Bootloader examples
-hardware/ril -The fastboot specifications from Android
-kernel -Fetching the code
-prebuilt
-recovery
-system/bluetooth
-System/core
-System/extras
-System/wlan/ti
Android build system
Concepts introduced in the build system
Architecture of the Makefiles
Variables and functions available
Compilation steps
-Add a new device to the build system
Android hardware support
Manipulating solid-state storage
System Customization
-Add a device to the build system
-Customize the "About" info, build ID, boot and home screens in your system
Custom cross-development toolchains, SDKs and NDKs
Device driver development
Kernel debugging primer
Using ADB
-Available commands: transfer files, install packages, executing remote commands,log access, networking...
-Tweak ADB for a custom board
Android Framework and Applications Android Native Layer
Overview of the services ,Content Providers and available applications in a standard Android Build Structure of a Service/Content Provider Discover the daemons handling the radio, external storage, launching applications etc., Get to know the different components involved in the Android runtime, from the virtual machine to the media framework
How to access a native library from a Java app using the Java Native Interface(JNI) Implement a Java Interface to use the previously integrated library
Android Application Development Write an app with the SDK
The application lifecycle Learn how to write and distribute an application using the Android SDK and its API
The Various Application components Learn how to access the Android Content Providers
How to access services
How to use,access and manage the resources
How apk packages are built and what do they contain

Training Programs