Embedded Android Training
While originally designed for phones, Android can be used as the basic building block for any touch-based system, whether it be mobile or not. This 5-days hands-on class will cover Android from the ground up, enabling you to get a firm hold on how to adapt Android's components to your system. Topics covered include:
  • AOSP
  • Kernel Androidisms
  • System Server
  • Custom UI
  • Hardware Libs
  • Custom SDKs
  • Custom native user-space
  • Busybox
  • uClibc/glibc/eglibc
  • Device Drivers
  • Internals
  • Dalvik
This class is given by Karim J. Yaghmour, author of O'Reilly's Embedded Android and Building Embedded Linux Systems. In addition to having taught engineering teams from several brand-name companies and organizations, Karim has made a number of key open source contributions such as the Linux Trace Toolkit, relayfs and the Adeos ipipe.
Live Online Class:
  • June 24-28
2,395$/student
-- Contact us for an on-site session quote
250$ Off before June 1st - Coupon: VZIFQR971
References:
  • Motorola
  • Intel
  • Panasonic
  • Sony
  • IBM
  • BAE Systems
  • Cisco
  • ST Micro
  • Conexant

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
  • Add Android support for custom hardware
  • 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 library to the AOSP
  • Understand how Android is and/or can be customized by 3rd parties, including Mobile Network Operators
  • Decide where in the Android stack a feature is best implemented

Embedded Android:

  • Introduction to Embedded Android
  • Android overall architecture
  • Android Open Source Project (AOSP)
  • Embedded Linux fundamentals
  • Kernel basics
  • Linux root filesystem
  • Native Android user-space
  • Android power tools
  • Manipulating solid-state storage devices
  • Choosing and installing the root filesystem
  • Kernel internals
  • Kernel Androidisms
  • Android hardware support
  • Device driver development overview
  • Kernel debugging primer
  • System Server
  • Android Framework
  • Core Android applications
  • Custom cross-development toolchains, SDKs and NDKs
  • Dalvik
  • Bootloader and fastboot
  • 3rd party projects, resources and tools

In addition to the sections above, content from our other classes can be added and/or substituted in the case of custom classes to better suite your needs:

  • Android App Development
    • Introduction to Android development
    • Binder IPC and remote interfaces
    • Native development with the NDK
    • Full class description
  • Linux Device Drivers
    • Hardware and Linux, a view from user-space
    • Writing modules
    • Driver types, subsystem APIs and driver skeletons
    • Hooking up with and using key resources
    • Locking mechanisms
    • Interrupts and interrupt deferal
    • Timely execution and time measurement
    • Memory resources
    • Hardware access
    • Char drivers
    • Framebuffer drivers
    • Input subsystem drivers
    • Full class description

This class is intended for developers who want to:

  • Develop Android-based embedded systems
  • Port Android to new hardware
  • Port complex applications to Android
  • Understand Android's internals
  • Understand in which way and how Google's official Android releases are customizable by manufacturers and operators

Requirements:

  • Embedded systems development
  • C, C++
  • Java (working knowledge of)
  • Basic Unix/Linux command line interface experience

Karim J. Yaghmour is part serial entrepreneur part unrepentant geek. His experience combines a unique mix of mobile, embedded and kernel background with enterprise and web2.0/consumer-oriented Rich Internet Application development. Karim is the author of O'Reilly's Embedded Android, currently available as an Early Release, and Building Embedded Linux Systems, which sold tens of thousands of copies worldwide and has been translated into several different languages.

Karim has provided training to companies such as: Motorola, Panasonic, NSA, BAE Systems, Conexant, Symbol, Scientific-Atlanta, and Karl Suss Gmbh. Some of Karim's recent mandates include leading development teams delivering products based on a variety of different platforms (.NET/Windows, BlackBerry, Linux, Drupal, Lotus Notes), technologies (Ajax, SQLite, PostgreSQL, CSS/HTML, jQuery/jQueryUI, ActiveDirectory/LDAP, MAPI, WebBrowser object) and programming languages (C#, Java, PHP, JavaScript, Perl, Python, Ruby on Rails, C++).

Having been an early believer in the power of open source, Karim pioneered the world of Linux tracing by introducing the Linux Trace Toolkit (LTT) in the late '90s. He continued maintaining LTT through 2005 and was joined in this effort by developers from several companies, including IBM, HP, and Intel. LTT users included: Google, IBM, HP, Oracle, Alcatel, Nortel, Ericsson, Qualcomm, NASA, Boeing, Airbus, Sony, Samsung, NEC, Fujitsu, SGI, RedHat, Thales, Oerlikon, Bull, Motorola, ARM, ST Micro, Infineon, WindRiver, MontaVista, Scientific-Atlanta, Wipro and Autodesk. Other contributions include relayfs and Adeos.

Karim has presented and published as part of a number of peer-reviewed scientific conferences, magazines and online publications, including Usenix, the Linux Kernel Summit, the Embedded Linux Conference, the Android Builders Summit, AnDevCon, the Embedded Systems Conference, AndroidOpen, the Ottawa Linux Symposium, LinuxJournal, the O'Reilly Network and the Real-Time Linux Workshop. Some of Karim's projects can be found in our Community section. Karim holds Masters and Bachelors degrees in Computer Engineering from the École Polytechnique de Montréal.

All our courseware is available under a CC-BY-SA 3.0 license. Why?

  • First, we believe that the value of a class is derived from providing instructors recognised as leading experts in their field, not the courseware. Our instructors are not only recognised for their technical achievements, but they are active public speakers at international conferences and forums with an exceptional ability and passion for sharing their knowledge. Our instructors' value is especially prized during our class' hands-on sessions, which occupy more than half of class time, since they are able to pull on their vast experience in assisting attendees in isolating the source of issues they encounter and explaining the underlying theory and wider context pertaining to that topic.
  • Second, we think it's great for past students to continue having access to the latest version of the courseware they used. Whether it be for keeping up-to-date or explore new material, future versions of our class material will always be available to you.
  • Third, our company was built on and lives in the open source ecosystem. Sharing is fundamental to what we do every day.

We, of course, welcome any comments or updates you may have on our courseware. Please send feedback to courseware@opersys.com.

Slides: PDF | ODP
Exercises: PDF | ODT

Pricing: 2,395$/student. Contact us for an on-site quote.
Attendance: 12 students max.
Although we do sometimes accept to train larger groups in on-site settings, we believe that a 12 student cap ensures an optimal instructor/attendee ratio in the context of a public session.
Location: Live Online
Equipment:
  • Attendees must use a powerful PC for the class. You must make sure it is at the very top range of what the manufacturer provides in terms of speed and performance. The AOSP is a very demanding piece of software in terms of build requirements and you will NOT be able to follow if you laptop is not up to spec. Make sure you have 100GB of free space, are running 64-bit Ubuntu natively (i.e. not in a virtual machine) and have full root/sudo access.
  • In order to connect to the live online session, you'll need to have webcam, a headset with microphone and a very solid network connection. We teach to body-language, so if you don't have a properly-functioning webcam, we reserve the right to refuse you entry into the session.
  • During the hands-on sessions, we use Google's Android Emulator. For on-site training sessions using your custom hardware, please contact us.
Courseware: All our courseware is available under CC-BY-SA 3.0; just click on the above "Courseware" thumbnail to download it.
Schedule: Classes run from 10:00AM to 6:00PM Eastern Time, with breaks in the morning, at lunch and in the afternoon.
Payment: Opersys accepts most major credit cards, wire transfers and corporate checks drawn on US banks in US funds.
Confirmation: Classes will be confirmed to run by email no later than two weeks prior to start date, subject to minimum attendance numbers. It's probably best to wait for our confirmation email prior to booking travel arrangements.
Policies: Students must register and pay all tuition fees prior to class start. Registrations cannot be canceled, though we will do our best to accommodate your situation. Class cancellations are uncommon, but, were they to occur, you would be notified as soon as possible and your tuition fees would be refunded in full.

This class can be given on-site and can be customized to your organization's needs. In addition to English, this class can also be taught in French. For more information regarding this class' logistics or to schedule an on-site session, please contact us.