Date post: | 03-Apr-2018 |
Category: |
Documents |
Upload: | prasannakh |
View: | 218 times |
Download: | 0 times |
7/28/2019 Agenda linux kernel training free e;ectrons
http://slidepdf.com/reader/full/agenda-linux-kernel-training-free-eectrons 1/5
Android system development course
Overview
Title Android system development training
Overview Low level Android training for system developers
The session is split in three parts
- Building and booting Android
- Porting Android to a new board (assuming the board is alreadysupported by the mainline Linux kernel).
- Developing a real device with Android: access to custom hardware from Android applications, customizing filesystems, debugging.
Duration 4 days - 32 hours (8 hours per day)
Trainer Maxime Ripard(see http://free-electrons.com/company/staff/)
Language Oral lectures: English or FrenchMaterials: English
Audience Engineers porting Android to new boardsEngineers developing products running with Android.
Prerequisites Knowledge and practice of Unix or GNU/Linux commandsPeople lacking experience on this topic could get trained by themselves
with our freely available on-line slides(http://free-electrons.com/docs/command-line/)
Knowledge and practice of C programming,basics of Java
Neededequipment
Everything is supplied by Free Electrons in public sessions
Video projector
Recent PC computers with at least 4 GB of RAM, and Ubuntu Linuxinstalled in a free partition of at least 40 GB. Using Linux in a
virtual machine is not supported, because of compile time issues andtrouble connecting to real hardware.
We need a 64 bits (x86_64) version of Ubuntu Desktop 12.04. We don't
support other distributions, because we can't test all possible package versions.
High speed connection to the Internet (direct or through thecompany proxy), fast enough to download gigabytes of Android sources.
PC computers with valuable data must be backed up before beingused in our sessions. Some people have already made mistakes duringour sessions and damaged work data.
Materials Print and electronic copy of presentations and labs.Electronic copy of lab files.
© 2011-2012 Free Electrons, http ://free-electrons.com, [email protected]
7/28/2019 Agenda linux kernel training free e;ectrons
http://slidepdf.com/reader/full/agenda-linux-kernel-training-free-eectrons 2/5
Android system development training
Hardware
Using DevKit8000 boards from Embest inmost practical labs
OMAP3530 SoC from Texas Instruments
256 MB RAM, 256 MB flash
4”3 TFT LCD touchscreen
1 USB 2.0 host
1 USB device
100 Mbit Ethernet port
DVI-D / HDMI display connector
Expansion port, JTAG port, etc.
Part I - Compiling and booting Android
Lecture – Introduction to Android
History
Actors Involved
Details about the Android architecture
Lab– Setup
Install the tools required to compile
Fetch the source code (if network bandwidth is not sufficient, we will provide aready-to-use .repo directory).
Get used to the Android specific tools
Lab – First compilation Lecture – Android source code andcompilation
Compile a first root filesystem for theemulator
How to use repo, git and gerrit to accesssources.
How to find one's way in the code base
How to compile Android (tools, targets, etc)
© 2011-2012 Free Electrons, http ://free-electrons.com, [email protected]
7/28/2019 Agenda linux kernel training free e;ectrons
http://slidepdf.com/reader/full/agenda-linux-kernel-training-free-eectrons 3/5
Lecture – Linux kernel
Role and general architecture of the Linux kernel
Features available in the Linux kernel, with a focus on features useful for embedded systemsKernel user interface
Getting the sources
Understanding Linux kernel versions.
Using the patch command
Lab – Compile and boot an Android kernel
Using the Android Emulator
Extract the patches from the Android Kernel
Compile and boot an Android kernel
Part II - Porting Android to a new board
Lecture – Changes introduced in the Android Kernel
Major functional changes introduced by Google
Additions to the kernel
Device driver changes
Lab - Supporting a new board
Go through the steps taken to port Android to the DevKit8000 board.
Boot Android on a real board
Troubleshoot the various glitches
Make the adjustments needed to have a fully workable system (get a working screen,touchscreen panel, buttons, etc.)
Lecture – Android Bootloaders
What is a bootloader
Bootloader examples
The fastboot specifications from Android.
© 2011-2012 Free Electrons, http ://free-electrons.com, [email protected]
7/28/2019 Agenda linux kernel training free e;ectrons
http://slidepdf.com/reader/full/agenda-linux-kernel-training-free-eectrons 4/5
Part III - Device development with Android
Lecture – Developing and debugging
with ADB
Lab – Use ADB
Presentation of ADB
Available commands: transfer files, installpackages, executing remote commands, logaccess, networking... all this done from thedevelopment machine.
Tweak ADB for a custom board
Learn how to get the system log, to gainaccess to a shell on the device, push and pullfiles, etc.
Lecture – Android filesystem layout
Know where the various software components are installed and mounted, and why itmatters.
Structure of the initrc file
Lecture – 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
Lab - System customization
Add a device to the build system
Customize the “About” info, build ID, boot and home screens in your system.
Lab – Add a native binary to the build Lab – Add a native library to the build
Get to know the build system and the Clibrary (Bionic) specifics.
Create an external library to control a USBrocket launcher.
Add this library to the default Android build
Lecture – Android Native Layer
Discover the daemons handling the radio, external storage, launching applications, etc.
Get to know the different components involved in the Android runtime, from the virtualmachine to the media framework: StageFright, Flingers, Dalvik...
Learn how hardware abstraction is done in Android
© 2011-2012 Free Electrons, http ://free-electrons.com, [email protected]
7/28/2019 Agenda linux kernel training free e;ectrons
http://slidepdf.com/reader/full/agenda-linux-kernel-training-free-eectrons 5/5
Lecture – Android Framework and Applications
Overview of the services, Content Providers and available applications in a standard Android
buildStructure of a Service / Content Provider
How to access a native library from a Java app using the Java Native Interface (JNI)
Lab – Develop the Java interface to the native library
Implement a Java interface to use the previously integrated library
Lecture – Android Application Development
The application lifecycle
The various application components
How to access services
How to use, access and manage the resources
How apk packages are built and what do they contain
Lab – Write an app with the SDK
Learn how to write and distribute an application using the Android SDK and its API.
Practical case: write an Android application controlling the USB rocket launcher.Learn how to access the Android Content Providers
Lecture - Advice and resources
Access to the community, useful documentation resources, useful blogs, etc
© 2011-2012 Free Electrons, http ://free-electrons.com, [email protected]