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, including the latest JellyBean 4.x, 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:
  • Apr 7th '14
2,395$/student
-- Contact us for an on-site session quote
250$ Off until Mar 21st - Coupon: MPTCPD501
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

We've trained several thousand engineers on Embedded Android. Here's a sample of what past attendees had to say about this class:

"One of the best courses I have attended. We need more courses from Karim. "

"The instructor was highly knowledgeable about the subject matter and yet presented it in varying levels of difficulty to suit the needs of all participants. The subject was also highly relevant to my work domain and I learnt a lot of useful ideas and tricks from the course work. In particular, the hands­on exercises gave a better understanding and confidence over the subject. Karim is an excellent instructor and can share his knowledge in a very appealing and convincing way! "

"The course covered a great deal of material, there was a wide dichotomy of student knowledge, the instructor did a good job of keeping everone interested but not good too fast or too slow. The hands on exercises were good. "

"Great knowledge and worth every penny. Awesome class, just a fine hose of info. Would be nice to have a second class for other info. Great job!! "

"This is the best training I have attended in [company name removed] so far. I was completely new to the topic. We should definitely have more training from Karim in [company name removed]. "

"Karim rocks. Knows his stuff. "

"The instructor was highly knowledgeable about the subject and answered all questions and clarifications with immense interest. The course along with hands­on exercises was very, very useful! "

"Great instructor "

"Mr. Karim Yaghmour has a wealth of knowledge regarding Android development and Linux. He presents material with zeal, care and consideration of the audience. "

"The class was a great look at Android under the covers. Karim's knowledge of the entire stack and the exercises we did during the week helped me understand and learn effectively. " -- A.I.

"Android from the root :-) " -- F.J.

"As a HW guy with a smattering of embedded SW background, I think this class is a great inside view into the guts of the AOSP that I actually care about. " -- T.W.

"Excellent class & worth every minute of class. The training explains the root mechanisms & of each layer & not just touch on subject but rather code walkthrough makes this class excellent tool for someone who intend to know all aspect of Android from App to kernel level. "

"The amount of things I learned in this class far exceeded my expectations. I couldn't have been more satisfied. And at the price Karim charges this class is a bargain. " -- B.B.

"A seriously technical class for any group who is about to undertake Android development, provided by a knowledgable software engineers. " -- R.

"Adapted class curriculum to the student's needs on the fly - nice job " -- D.L.

"It is almost impossible to find material about porting Android to new hardware, short of Karim's Embedded Android book and class. This is knowledge that companies releasing hardware just seem to keep to themselves. This class has made my task from seeming impossible to just hard. I can deal with hard, as long as it is possible. :) " -- J.S.

"Embedded Android Class, hands on the source from STX to ETX. At the end only one thing remains: "Use the Source Luke" " -- K.-A.P.

"Karim's engaging presentation style and knowledge of the Android Operating System (could he be the most knowledgeable person on the AOSP outside of Google?!) made this class extremely useful and informative both in technical information and practical, hands-on experience. I highly recommend this class to anyone who is interested in learning more about the Android OS or is looking to use/evaluate it for a project. " -- J.O.

"This class is a great class to get your feet wet in embedded Android. " -- J.L.

"Quickest way to understand the depth and width of Android stack. " -- M.

"After the class, I feel like I have been doing Embedded Android for years. " -- S.S.

"I have experience in embedded Linux and Android applications. This class charts a path between them. " -- M.S.

"It's really fun to listen to the to the trainer because you can feel the passion and see the knowledge he has. "

"Very technical, down to details course, definitely recommended! "

"Huge amount of knowledge presented, trainer can answer also questions way outside of the course subject. " -- J.O.M.

"Learn the communication flow within Android and how things play together. " -- T.G.

"Very interesting class with hands-on. Good overall view of Android's architecture. " -- P.G.

"I'm a high-level software engineer. I really like this course because it helped me understanding the whole cycle for apps from top to bottom all over Android systems. " -- I.Y.

"Karim knows this stuff inside-out and is able to explain things quickly and allow the class to learn in a variety of ways ~ verbal, visual, hands-on. "

"The embedded Android training session by Opersys covered all the relevant parts of the Android framework as well as the Linux kernel that it runs on. The training provided was immediately beneficial to our internal embedded Android project. "

"I'm sure this class saved me countless hours of source hunting and fruitless searches on the web regarding topics that are under or non-documented. "

"Taught by an extremely knowledgable instructor, this course will give you everything you need to port Android to your device. "

"If you want to start developping under the hood of the Android OS, this course delivers what you need in a one-week hands-on training. "

"Great course to help you dig into Android and its concepts "

"A nice, well-documented overview of the internals of an amazing framework
Nevertheless, the system lacks some documentation, hence we need this
Deep-dive into the vast framework
Reverse, bottom-up approach
Of the Linux-based framework
In a quite fast-paced walkthrough
Definitely worth every second
"

"Value for money!! ;-) "

"Great class! It combined broad overviews followed by the kind of detail needed to understand what is going on under the covers. "

"Although Android is Linux, it is Linux with considerable kernel modifications, and a completely different system administration and toolset; so great are the differences that it feels unfamiliar to every experienced Linux developer.
Karim provides a well organized presentation of the crucial concepts, and enables students to gain a full appreciation of not only how the Android architecture works, but also why it works that way.
In 22 years of professional software development, this has easily been the most valuable training session I've attended.
"

"One of the best embedded development classes I have participated in. "

"I learned both bredth and depth during the course, an impressive accomplishment. Exceeded my expectations. "

"Extremely helpful in both providing a general overview and understanding, as well as get into details most relevant to us. "

"I've been working on Android for 4 months and I think I learned more about the system in these five days than those foru months! "

"While this class won't make you an instant expert in the Android AOSP, it is a great way to learn basic structure of the AOSP code-base, and get a solid grounding in the steps required to make new hardware functionality available to higher levels of the Android stack, up to and including the application level. "

"Android is so big that it is easy to get lost in it. I now have been given directions so that I can find my way no matter where I go in it. "

"This is a great class. Every serious embedded system engineer should take it! "

"I am now very well equipped to add Android support to my company's SoCs. "

"Karim is the Wayne Gretzky of embedded Android. His embedded Android training far surpassed my expectations. It gave me a more solid understanding of Android in one week than I was able to learn on my own in several months. This directly translates to a huge boost in productivity and efficiency, which will help my team deliver our embedded Android solution on time. " -- B.A.

"Karim can light fire by rubbing two ice cubes together. "

"Karim is one of the few instructors that has a deep understanding of the entire Android stack. I highly recommend this course for any engineers who work on embedded Android projects. "

"onLearningAndroid() { takeThisClass(); } "

"From beginners to practitioners "

"Must for all developers, designers and architects "

"An eye opener for newcomers "

"Even with a fair bit of Android experience, this class has undoubtedly given me the information I need to become a great Android developer. "

"Karim is very friendly and can teach all the secrets of embedded Android! "

"If you've ever wanted to poke around in Android's guts, Karim's class is a brilliant introduction to the architecture. "

"Excellent introduction into Android concepts. "

"Find how to get yrou way in Android. "

"If you're a strict deadline and you need to become an Android platform guru as quickly as possible, then you need to take this class! "

"An amazing intro into the world of Embedded Android. "

"Nice bridge do go from embedded Linux to the robot. "

"This hands-on course benefits greatly for the beginner/advanced developers in diving into Android for embedded devices. " -- P.D.G.

"Awesome! "

"Great way to explore the Android internals. "

"By the end of this class, you will have programmed a new device into the AOSP from the hardware layer to an app that calls it, including building a new SDK that exposes the h/w via calls available from the eclipse development environment. "

"Very good class. Hands-on examples clearly demonstrated ideas from lecture. Having slides available on line should make it easier to 'spread the gospel.' Thanks for an enjoyable class where I learned more than I thought I would. I look forward to seeing where headless Android takes you. "

"Excellent, detailed look into AOSP with great hands-on training! "

"Best class I've attended in years. Karim's deep knowledge of the Android ecosystem is impressive. "

"Right from app to driver ... All things are explained nicely -- if not then at least references are provided. " -- P.

"The embedded Android class has saved us months of effort by giving us a great head start on our development. "

"Android should be taught by a person who is 1) Linux expert, 2) Hands-on Android expert, 3) has deep Linux coding experience. I think Karim is a mix of all 3 points which makes his class very interesting. One can learn more than just Android Development!! "

"This is a great class for both beginners and experienced Android developers. It provides insight into a broad array of features in Android platform. I will definitely recommend this class to others! "

"I found this class very informative. I now have a better understanding of all the layers in Android from the kernel all the way up to the App layer. "

"This class provides a great bootstrap into the Android modules stack. "

"If you want to know how all the layers fit together and work, take this class. "

"Fun, informative on the internals of Android, boot-strapping from the Android device manufacturer perspective. Highly recommend. " -- B.X.

"Great hands-on class. "

"Really liked the depth & and the amount of specific knowledge this instructor has! " -- E.S.

"I truly appreciate the hands-on approach of each step building upon the previous. "

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.