AOSP Debugging and Performance Analysis
While Android's use in embedded systems is now common, details about how to debug and develop in its internals are still hard to come by. This 2.5-days hands-on class covers the tools, techniques and, quite frankly, hacks that can be used to debug difficult problems within the Android stack. Topics covered include:
  • ftrace
  • perf
  • kprobes
  • debugfs
  • gdb/gdbserver
  • ddms
  • Eclipse
  • service/am/pm
  • tombstones/debuggerd
  • systrace
  • dumpstate
  • logger
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 23rd '14
1,695$/student
-- Contact us for an on-site session quote
400$ Off until May 23rdrd - Coupon: WAECPD401
References:
  • Motorola
  • Intel
  • Panasonic
  • Sony
  • IBM
  • BAE Systems
  • Cisco
  • ST Micro
  • Conexant

You will learn how to:

  • Understand the Android stack's debugging mechanisms and their internals
  • Debug from the app level all the way down to kernel drivers
  • Use Linux debugging tools in Android
  • Use the Android-specific debugging tools
  • Monitor performance and latencies
  • Quantify and analyze memory usage
  • Breakpoint and step through the stack
  • Apply commonly-used techniques for framework debugging
  • Familiarize with lesser-known tools and capabilities built into Android

AOSP Debugging and Performance Analysis:

  • Internal Architecture Quick Recap
  • Classifying and Analyzing Debugging Tools
  • Kernel Debugging/Profiling Tools and Capabilities
  • Android-Agnostic User-Space Debugging
  • Android-Specific User-Space Debugging
  • Dalvik Debugging
  • System Services Interfacing
  • Framework Debugging
  • Misc. Debugging Tools and Techniques
  • GLIBC User-Space

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:

This class is intended for experienced Android platform developers who want to master Android platform debugging. Namely, developers wanting to:

  • Debug existing or custom system services or framework components
  • Isolate performance problems within the stack
  • Follow codepaths from the app layer all the way down to the kernel
  • Set breakpoints in Java code and follow into the corresponding native C code
  • Find out the best way to browse/edit the AOSP

WARNING: We really mean it when we say that this class is for experienced Android platform developers. If you've never worked within the AOSP nor in Android's internals, we very highly suggest you take our Embedded Android class first. Even if you feel you have the requisite knowledge, we recommend you take a look at that class' material (click on "Courseware" to download it from that class' page) and make sure you are comfortable with that material. We do NOT have the time to cover the basics in this AOSP Debugging and Performance class. You are fully responsible for making sure you are able to attend and follow this class. We will not issue refunds if you aren't able to follow.

Requirements:

  • C/C++
  • Java
  • Linux command line experience
  • Linux kernel or device driver experience
  • Android internals 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 | HTML
Exercises: PDF | ODT

Pricing: 1,695$/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: No public sessions are presently scheduled
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.
  • This class is based on Inforce Computing's IFC6410 board. 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 9 to 5, 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.