Get Schedule and Pricing Other Google Android training courses

Google Android Development Advanced Training Course

Android Development Advanced Training Schedule

Android Development Advanced Course Synopsis

Using the Android SDK, developers can develop applications on the Android platform using the Java Programming language. In this course, participants will learn the advanced techniques to program their Android devices.

Prerequisites for this Android Development Advanced Training Course

Knowledge of programming and object-oriented programming concepts. Java programming experience recommended. We also recommend that you attend our Introduction to Android Development Training Course or have equivalent knowleadge.

What You Will Learn in Android Development Advanced Training Course

  • 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 Development Advanced Training Course Length and Time

This class is 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 Development Advanced Training Course

Please see our Enrollment Page ( for our enrollment form.

Android Development Advanced 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 Development Advanced 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

Lesson 1 - 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 2 - 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 3 - 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 4 - 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 5 - 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 6 - 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 7 - 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 8 - 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 9 - XML Drawables And 9-Patches

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

Lesson 10 - 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 11 - 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 12 - 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 13 - 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 14 - 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 15 - 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 16 - 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 17 - 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 18 - 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 19 - 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 20 - 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