Linux & Open-Source Training Linux Laptops Linux Services
Android Development Bootcamp Training Course

Learn how to build, test and publish apps on the Android Platform

Android is a platform delivered by Google within the Open Handset Alliance as a complete set of software for mobile devices: an operating system, middleware and key mobile applications. Built on the open Linux Kernel, it is customized to optimize memory and hardware resources in a mobile environment and promises to be a formidable force in the industry.

This fast-paced and hands-on class starts from setting up the Android Development Environment and takes the attendees all the way to publication of an application on the Android marketplace. The course covers the Android SDK and the details of its building blocks, UI, inter process communication, threading, graphics, media, networking, locations, sensors as well as native application implementation in C/C++.

Course Modules

Setting up Android Development Environment

         Installing the Software Development Kit.
         Navigating Javadocs. Getting an overview of the SDK tools and sample code.
         Using the Eclipse Android Developer Tools (ADT) plugin: Eclipse' relation to the underlying SDK tools, using different perspectives and Eclipse views.

Android Application Development Launch

         Using SDK emulator.
         Runtime configurations, Android Virtual Devices (AVDs).
         Using Android Debug Bridge (adb) and the Dalvik Debug Monitoring System (DDMS).
         Accessing the Android file system, pushing and pulling files, accessing and filtering system logs.
         Examining device processes, virtual machines and threads.

User Interface and Building a View

         Android GUI architecture.
         Assembling a GUI and wiring up the controller.
         Design by declaration.
         Opening screen design.
         Using Alternate Resources (for alternate languages and configurations)
         Applying Styles and Themes.
         Adding a menu.

Inter Process Communication

         Creating both Activities and Services.
         Using explicit and implicit Intents, both within applications and across applications. Returning results and bundling Extras in Intents.
         Creating broadcast Receivers, listening for system broadcasts as well as sending your own broadcasts.

 Database and Content Providers

         Data security rules in Android.
         Reading and writing locally accessible files and SDcard files.
         Reading and writing Preferences.
         Setting up a SQLite database and sharing data as a Content Provider. Accessing other applications' data through Content Providers. Data Binding.

         The use of threading in Android. The UI thread and guidance on when to spawn separate threads.
         Android's Looper, Async and Handler classes.
         How to manage worker threads from component lifecycle methods.

Drawing Graphics

         Overview of the graphics subsystem: the 2D SGL/SKIA graphics library, Pixel Flinger, Surface Flinger, OpenGL and hardware acceleration.
          Essential components of the 2D library: Canvases, Paints and Shaders. Using the 2D graphics library: drawing with canvas primitives, creating graphical objects using the Drawable hierarchy,
         Creating 3D animations using rotation and translation.
         When and how to use a separate thread for high performance graphics.


         Playing and recording video and audio.
         Using the camera.
         Adding sound and video to applications.


         Starting, stopping Services and Binding to Services.
         An overview of how to use Remote Methods and Android Interface Description Language.


         Browsing by Intent.
         Web access with a View.
         Java and JavaScript.
         Using web services.

 Location and Sensing
         Sensors (which don't work on the emulator).
         Location Based Services.
         MapView and MapActivity.
         Bird's Eye view.
Testing, Signing and Publishing Your Application

         Test your application. Writing Junit test cases and using 'The Monkey' for UI testing.
         Attaching an End User License Agreement.
         Creating and attaching an icon and label.
         Versioning your application.
         Obtaining a Signing Certificate and API key.
         Signing the application.
         Publishing in the Android market.
Advanced Topics

         3D Graphics and OpenGL.
         Peer-to-peer communication.
         Accessing hardware.
         Use of NDK for high CPU intensive applications (that do not use large memory) like signal processing or simulation.
Class Duration: Two days

Enrollment Form

Prerequisites: Familiarity with Linux/UNIX based operating environment. JAVA or C programming experience. If you have any questions about the difficulty level of the class, please contact us at:  classes (at)


All attendees will get a Linux laptop to be used during the class. You have the option of purchasing this laptop with an additional course fee.


If you would like to arrange an on-site Android Development class, please contact us at: classes (at)

If you don't see this class scheduled in the timeframe/place of your preference, please let us know your preference for timeframe (which month etc.) and any particular geography preference. Send email with your interest to classes (at)
Receive Announcements & Linux Tips
Linux is a registered trademark of Linus Torvalds.