Get Schedule and Pricing Other Google Android training courses

Google Android Bootcamp Training Course

Android Bootcamp Training Schedule

Android Bootcamp Training Course Synopsis

Learn Android programming quickly in this comprehensive Android Bootcamp. This four day bootcamp is a discounted combination of our Introduction to Android Development and Android Development Advanced training classes.

Prerequisites for this Android Bootcamp Training Course

Knowledge of programming and object-oriented programming concepts. Java programming experience recommended.

What you will Learn in Android Bootcamp Training Course

  • Your First Android Application
  • Android and Model-View-Controller
  • The Activity Lifecycle
  • Debugging Android Apps
  • Your Second Activity
  • Android SDK Versions and Compatibility
  • UI Fragments and the Fragment Manager
  • Creating User Interfaces with Layouts and Widgets
  • Displaying Lists with ListFragment
  • Using Fragment Arguments
  • Using ViewPager
  • Dialogs
  • Audio Playback Using MediaPlayer
  • Retained Fragments
  • Localization
  • The Action Bar
  • Saving and Loading Local Files
  • Context Menus and Contextual Action Mode
  • Camera
  • Implicit Intents
  • Two-Pane Master-Detail Interfaces
  • Styles And Includes
  • XML Drawables And 9-Patches
  • HTTP & Background Tasks
  • Loopers, Handlers, and HandlerThread
  • Search
  • Background Services
  • Browsing The Web & WebView
  • Custom Views and Touch Events
  • Tracking the Device’s Location
  • Local Databases with SQLite
  • Loading Asynchronous Data With Loaders
  • Using Maps

Android Bootcamp Training Course Length and Time

This class is 4 days long. Class time is 9:00 a.m.- 4:00 p.m. Breaks are scheduled throughout the day and lunch is typically scheduled 12-1. Students provide their own lunch.

Enrollment in Android Bootcamp Training Course

Please see our Enrollment Page ( for our enrollment form.

Android Bootcamp Training Course Locations

We have training centers in Atlanta, Chicago, Denver, San Diego and Washington DC. We also offer classes at a network of rental facilities. We offer private onsite training and instructor-led, live online training. If coming to a rental facility, please double-check the location of your class with our office to make sure you get to the right location.

Goals for Android Bootcamp Training Course

Sterling Ledet and Associates realizes the importance of education and we take pride in being able to offer you classes that are more custom fit to your needs. Call us at (877) 819-2665 if you have any special questions or e-mail us at

Multi-class Packages

This bundle/workshop provides a significant discount off of our regular pricing. Our standard policy for all bundled workshops is that once one of the classes in the bundle, package or workshop is attended, no refunds are available for unused portions of the bundle. Student rescheduling is available under our regular policies.

Lesson 1 - Your First Android Application

  • App Basics
  • Creating an Android Project
  • Navigating in Eclipse
  • Laying Out the User Interface
  • The view hierarchy
  • Widget attributes
  • Creating string resources
  • Previewing the layout
  • From Layout XML to View Objects
  • Resources and resource IDs
  • Wiring Up Widgets
  • Organizing imports
  • Getting references to widgets
  • Setting listeners
  • Running on the Emulator
  • For the More Curious: Android Build Process
  • Android build tools

Lesson 2 - Android and Model-View-Controller

  • Creating a New Class
  • Generating getters and setters
  • Model-View-Controller and Android
  • Benefits of MVC
  • Updating the View Layer
  • Updating the Controller Layer
  • Running on a Device
  • Connecting your device
  • Configuring your device for development
  • Adding an Icon
  • Adding resources to a project
  • Referencing resources in XML
  • Challenge: Add a Listener to the TextView
  • Challenge: Add a Previous Button
  • Challenge: From Button to ImageButton

Lesson 3 - The Activity Lifecycle

  • Logging the Activity Lifecycle
  • Making log messages
  • Using LogCat
  • Rotation and the Activity Lifecycle
  • Device configurations and alternative resources
  • Saving Data Across Rotation
  • Overriding onSaveInstanceState(Bundle)
  • The Activity Lifecycle, Revisited
  • For the More Curious: Testing onSaveInstanceState(Bundle)
  • For the More Curious: Logging Levels and Methods

Lesson 4 - Debugging Android Apps

  • The DDMS Perspective
  • Exceptions and Stack Traces
  • Diagnosing misbehaviors
  • Logging stack traces
  • Setting breakpoints
  • Using exception breakpoints
  • File Explorer
  • Android-Specific Debugging
  • Using Android Lint
  • Issues with the R class

Lesson 5 - Your Second Activity

  • Setting Up a Second Activity
  • Creating a new layout
  • Creating a new activity subclass
  • Declaring activities in the manifest
  • Adding a Cheat button to QuizActivity
  • Starting an Activity
  • Communicating with intents
  • Passing Data Between Activities
  • Using intent extras
  • Getting a result back from a child activity
  • How Android Sees Your Activities
  • Challenge

Lesson 6 - Android SDK Versions and Compatibility

  • Android SDK Versions
  • Compatibility and Android Programming
  • Honeycomb was big
  • Minimum SDK version
  • Target SDK version
  • Build SDK version
  • Adding code from later APIs safely
  • Using the Android Developer Documentation
  • Challenge: Reporting the Build Version

Lesson 7 - UI Fragments and the Fragment Manager

  • The Need for UI Flexibility
  • Introducing Fragments
  • Starting CriminalIntent
  • Creating a new project
  • Fragments and the support library
  • Creating the Crime class
  • Hosting a UI Fragment
  • The fragment lifecycle
  • Two approaches to hosting
  • Defining a container view
  • Creating a UI Fragment
  • Defining CrimeFragment’s layout
  • Creating the CrimeFragment class
  • Adding a UI Fragment to the FragmentManager
  • Fragment transactions
  • The FragmentManager and the fragment lifecycle
  • The Reason All Our Activities Will Use Fragments
  • For the More Curious: Developing for Honeycomb, ICS, Jelly Bean, and Beyond

Lesson 8 - Creating User Interfaces with Layouts and Widgets

  • Upgrading Crime
  • Updating the Layout
  • Wiring Widgets
  • More on XML Layout Attributes
  • Styles, themes, and theme attributes
  • Screen pixel densities and dp and sp
  • Android’s design guidelines
  • Layout parameters
  • Margins vs padding
  • Using the Graphical Layout Tool
  • Adding a new widget
  • Editing attributes in properties
  • Reorganizing widgets in the outline view
  • Updating child layout parameters
  • How android:layout_weight works
  • Summary of graphical layout tool
  • Widget IDs and multiple layouts
  • Challenge: Formatting the Date

Lesson 9 - Displaying Lists with ListFragment

  • Updating CriminalIntent’s Model Layer
  • Singletons and centralized data storage
  • Creating a ListFragment
  • An Abstract Activity for Hosting a Fragment
  • A generic fragment-hosting layout
  • An abstract Activity class
  • ListFragment, ListView, and ArrayAdapter
  • Creating an ArrayAdapter
  • Responding to list item clicks
  • Customizing List Items
  • Creating the list item layout
  • Creating an adapter subclass

Lesson 10 - Using Fragment Arguments

  • Starting an Activity from a Fragment
  • Putting an extra
  • Retrieving an extra
  • Updating CrimeFragment’s view with Crime data
  • The downside to direct retrieval
  • Fragment Arguments
  • Attaching arguments to a fragment
  • Retrieving arguments
  • Reloading the List
  • Getting Results with Fragments

Lesson 11 - Using ViewPager

  • Creating CrimePagerActivity
  • Laying out views in code
  • ViewPager and PagerAdapter
  • Integrating CrimePagerActivity
  • FragmentStatePagerAdapter vs FragmentPagerAdapter
  • For the More Curious: How ViewPager Really Works

Lesson 12 - Dialogs

  • Creating a DialogFragment
  • Showing a DialogFragment
  • Setting a dialog’s contents
  • Passing Data Between Two Fragments
  • Passing data to DatePickerFragment
  • Returning data to CrimeFragment
  • Challenge: More Dialogs

Lesson 13 - Audio Playback Using MediaPlayer

  • Adding Resources
  • Defining the layout for HelloMoonFragment
  • Manually resetting the app theme
  • Creating HelloMoonFragment
  • Using a Layout Fragment
  • Audio Playback
  • Wiring buttons to play and stop
  • Challenge: Pausing Audio Playback
  • For the More Curious: Playing Video
  • Challenge: Playing Video in HelloMoon

Lesson 14 - Retained Fragments

  • Retaining a Fragment
  • Rotation and Retained Fragments
  • Retained Fragments: As Nice as All That?
  • Rotation Handling and onSaveInstanceState(Bundle)
  • For the More Curious: Rotation Before Fragments

Lesson 15 - Localization

  • Localizing Resources
  • Default resources
  • Configuration Qualifiers
  • Prioritizing alternative resources
  • Multiple qualifiers
  • Finding the best-matching resources
  • More Resource Rules and Regulations
  • Resource naming
  • Resource directory structure
  • Testing Alternative Resources

Lesson 16 - The Action Bar

  • Options Menus
  • Defining an options menu in XML
  • Creating the options menu
  • Responding to options menu selections
  • Enabling Ancestral Navigation
  • Enabling the app icon
  • Responding to the Up button
  • An Alternative Menu Item
  • Creating an alternative menu file
  • Toggling the menu item title
  • “Just one more thing”
  • Challenge: An Empty View for the List

Lesson 17 - Saving and Loading Local Files

  • Saving and Loading Data in CriminalIntent
  • Saving crime data to a JSON file
  • Loading crimes from the filesystem
  • Challenge: Use External Storage
  • For the More Curious: The Android Filesystem and Java I/O
  • Accessing files and directories

Lesson 18 - Context Menus and Contextual Action Mode

  • Defining a Context Menu Resource
  • Implementing a Floating Context Menu
  • Creating the context menu
  • Registering for the context menu
  • Responding to an action
  • Implementing Contextual Action Mode
  • Enabling multiple selection
  • Action mode callbacks in a list view
  • Changing activated item backgrounds
  • Implementing contextual action mode in other views
  • Compatibility: Fallback or Duplicate?
  • Challenge: Deleting from CrimeFragment
  • For the More Curious: ActionBarSherlock
  • Challenge: Using ActionBarSherlock
  • Basic ABS integration in CriminalIntent
  • More advanced integration
  • Even more advanced integration

Lesson 19 - Camera I: Viewfinder

  • Creating the Fragment Layout
  • Creating CrimeCameraFragment
  • Creating CrimeCameraActivity
  • Adding activity and camera permissions to the manifest
  • Using the Camera API
  • Opening and releasing the camera
  • SurfaceView, SurfaceHolder, and Surface
  • Determining preview size
  • Starting CrimeCameraActivity from CrimeFragment
  • For the More Curious: Running Activities from the Command Line

Lesson 20 - Camera II: Taking Pictures and Handling Images

  • Taking a Picture
  • Implementing Camera callbacks
  • Setting the picture size
  • Passing Data Back to CrimeFragment
  • Starting CrimeCameraActivity for a result
  • Setting a result in CrimeCameraFragment
  • Retrieving filename in CrimeFragment
  • Updating the Model Layer
  • Adding a Photo class
  • Giving Crime a photo property
  • Setting the photo property
  • Updating CrimeFragment’s View
  • Adding an ImageView
  • Image handling
  • Showing Larger Image in a DialogFragment
  • Challenge: Crime Image Orientation
  • Challenge: Deleting Photos
  • For the More Curious: Deprecation in Android

Lesson 21 - Implicit Intents

  • Adding Buttons
  • Adding a Suspect to the Model Layer
  • Using a Format String
  • Using Implicit Intents
  • Parts of an implicit intent
  • Sending a crime report
  • Asking Android for a contact
  • Checking for responding activities
  • Challenge: Another Implicit Intent

Lesson 22 - Two-Pane Master-Detail Interfaces

  • Adding Layout Flexibility
  • Modifying SingleFragmentActivity
  • Creating a layout with two fragment containers
  • Using an alias resource
  • Activity: Fragment Boss
  • Fragment callback interfaces
  • For the More Curious: More on Determining Device Size

Lesson 23 - More About Intents and Tasks

  • Setting Up NerdLauncher
  • Resolving an Implicit Intent
  • Creating Explicit Intents at Runtime
  • Tasks and the Back Stack
  • Using NerdLauncher as a Home Screen
  • Challenge: Icons, Reordering Tasks
  • For the More Curious: Processes vs Tasks

Lesson 24 - Styles And Includes

  • Setting Up the RemoteControl Project
  • Setting up RemoteControlActivity
  • Setting up RemoteControlFragment
  • Cleaning Up with Styles
  • Finishing the Layout
  • For the More Curious: include and merge
  • Challenge: Style Inheritance

Lesson 25 - XML Drawables And 9-Patches

  • XML Drawables
  • State List Drawables
  • Layer List and Inset Drawables
  • Using 9-Patch Images

Lesson 26 - HTTP & Background Tasks

  • Creating PhotoGallery
  • Networking Basics
  • Asking permission to network
  • Using AsyncTask to Run on a Background Thread
  • You and Your Main Thread
  • Beyond the main thread
  • Fetching XML From Flickr
  • Using XmlPullParser
  • From AsyncTask Back to the Main Thread
  • For the More Curious: More on AsyncTask
  • Cleaning Up AsyncTasks
  • Challenge: Paging

Lesson 27 - Loopers, Handlers, and HandlerThread

  • Preparing GridView for Displaying Images
  • Downloading Lots of Small Things
  • Communicating with the Main Thread
  • Assembling a Background Thread
  • Messages and Message Handlers
  • Message anatomy
  • Handler anatomy
  • Using handlers
  • Passing handlers
  • For the More Curious: AsyncTask vs Threads
  • Challenge: Preloading and Caching

Lesson 28 - Search

  • Searching Flickr
  • The Search Dialog
  • Creating a search interface
  • Searchable activities
  • Hardware search button
  • How Search works
  • Launch modes and new intents
  • Simple persistence with shared preferences
  • Using SearchView on Post-Android 30
  • Challenges

Lesson 29 - Background Services

  • Creating an IntentService
  • What Services Are For
  • Safe background networking
  • Looking for New Results
  • Delayed Execution with AlarmManager
  • PendingIntent
  • Managing alarms with PendingIntent
  • Controlling Your Alarm
  • Updating options menu items
  • Notifications
  • For the More Curious: Service Details
  • What service does (and does not) do
  • A service’s lifecycle
  • Non-sticky services
  • Sticky services
  • Bound services

Lesson 30 - Broadcast Intents

  • Waking Up on Boot
  • Broadcast receivers in the manifest
  • How to use receivers
  • Filtering Foreground Notifications
  • Sending broadcast intents
  • Dynamic broadcast receivers
  • Using private permissions
  • Receiving results with ordered broadcasts
  • Receivers and Long-running Tasks

Lesson 31 - Browsing The Web & WebView

  • One Last Bit of Flickr Data
  • The Easy Way: Implicit Intents
  • The Harder Way: WebView
  • Using WebChromeClient to spruce things up
  • Proper rotation with WebView
  • For the More Curious: Injecting JavaScript Objects

Lesson 32 - Custom Views and Touch Events

  • Setting Up the DragAndDraw Project
  • Setting up DragAndDrawActivity
  • Setting up DragAndDrawFragment
  • Creating a Custom View
  • Creating BoxDrawingView
  • Handling Touch Events
  • Tracking across motion events
  • Rendering Inside onDraw(…)
  • Challenge: Rotations

Lesson 33 - Tracking the Device’s Location

  • Getting Started with RunTracker
  • Setting up RunActivity
  • Setting up RunFragment
  • Locations and the LocationManager
  • Receiving Broadcast Location Updates
  • Updating the UI with Location Data
  • Faster Answers: the Last Known Location
  • Testing Locations on Real and Virtual Devices

Lesson 34 - Local Databases with SQLite

  • Storing Runs and Locations in a Database
  • Querying a List of Runs From the Database
  • Displaying a List of Runs Using CursorAdapter
  • Creating New Runs
  • Working with Existing Runs
  • Challenge: Identifying the Current Run

Lesson 35 - Loading Asynchronous Data With Loaders

  • Loaders and the LoaderManager
  • Using Loaders in RunTracker
  • Loading the List of Runs
  • Loading a Single Run
  • Loading the Last Location for a Run

Lesson 36 - Using Maps

  • Adding the Maps API to RunTracker
  • Use a real device to test maps
  • Install and use the Google Play services SDK
  • Obtain a Google Maps API key
  • Update RunTracker’s manifest
  • Showing the User’s Location on a Map
  • Displaying a Run’s Path
  • Adding Markers for Run Start and Finish
  • Challenge: Live Updates


Our goal is to make sure your class meets your objectives, not ours. Therefore, all of our outlines are treated as guides to help steer the workshop. This outline does not guarantee that all the topics listed will be covered in the time allowed. The amount of material covered is based on the skill level of the student audience. We may change or alter course topics to best suit the classroom situation.

Upcoming Classes

Call to schedule