252. Intermediate Android Development
Version 2.3

Book cover

This intermediate-level course flows directly from Course 251, Introduction to Android Development, to guide students through an exploration of some of the more sophisticated capabilities of the Android OS and to empower them to build polished Android applications, activities, and services.

Like its precursor, this course focuses on practical concerns faced by the corporate IT developer. The primary case-study application connects popular mobile features such as maps and multimedia with a RESTful web service and a JPA persistence tier that connects to a fully-worked enterprise database (15 tables, 998 rows). The mobile side of the application includes 47 Java classes and 8 distinct activities. Supporting applications provide overlapping exercise in key techniques such as using asynchronous tasks, communicating with external applications, and error-handling.

For a faster-paced course that runs from introductory to intermediate level, you might also consider Course 255, Android Development.


  • Java programming experience is required; Course 103, "Java Programming," is excellent preparation.
  • Introductory knowledge of Android programming is required: Course 251, "Introduction to Android Development," or similar.
  • Exposure to related technology including web applications, user-interface design, SQL, XML, and web services, all are beneficial but none are required.

Learning Objectives

  • Store app-specific information in SQLite databases.
  • Make remote connections using HTTP, XML, and JSON, and take advantage of mapping and other web services.
  • Implement background work as asynchronous tasks.
  • Implement Android services for asynchronous notification, and integrate these services with applications.
  • Invoke external applications and services using implicit intents.
  • Manage audio, photo, and video content, and integrate built-in media applications in your own Android applications.
  • Integrate map views into your application, and provide custom overlays of map markers and other information.
  • Publish to app markets.

Timeline: 4 days.

IDE Support: Eclipse Indigo

  • In addition to the primary lab files, an optional overlay is available that adds support for Eclipse Indigo. Students can code, build, deploy, and test all exercises from within the IDE. We make full use of the Android SDK and its Eclipse plugin and device emulators. See also our orientation to Using Capstone's Eclipse Overlays.

Chapter 1. Database Storage

  • SQLite
  • The SQLiteDatabase Class
  • The SQLiteOpenHelper Class
  • Installing Databases
  • The query Methods
  • Using Cursors
  • Database Updates

Chapter 2. Networking and Web Services

  • java.net
  • android.net
  • Apache HttpClient
  • Consuming RESTful Web Services
  • Building URLs
  • Parsing JSON
  • Parsing XML
  • Connected Applications
  • Offline Operation and Server Synchronization

Chapter 3. Asynchronous Tasks

  • The UI Thread
  • Background Tasks
  • Loopers and Handlers
  • Using AsyncTask
  • Using ProgressDialog
  • Error Handling

Chapter 4. Services

  • The Roles of Services
  • Invoking a Service
  • Do's and Don'ts
  • Communication with the Application
  • Communication with Activities
  • Sending Notifications
  • Pending Intents
  • Downloaders
  • Polling Web Services

Chapter 5. Inter-Process Communication

  • Breaking Out
  • Using the Clipboard
  • Linkifying Text
  • Implicit Intents
  • Invoking Built-In Applications and Services
  • Accepting Implicit Intents
  • Passing Data
  • MIME Types

Chapter 6. Multimedia

  • Playing Sounds
  • Haptic Feedback (Vibrating)
  • Managing Images
  • Storage and Retrieval
  • Invoking the Camera
  • Invoking the Media Recorder
  • Gallery and other Image Views

Chapter 7. Location Services and Maps

  • Location Services
  • Location Notifications
  • The Google Maps API
  • License Terms and Maps API Keys
  • Map View and Map Activity Classes
  • Configuring a Map
  • Controlling a Map
  • Events
  • Projections
  • Map Overlays
  • Item Overlays
  • Custom Overlays

Chapter 8. Publishing

  • The App Market
  • Preparing Your App
  • Debug vs. Release Builds
  • Signing an APK File
  • Publishing Your Application
  • Application Metadata
  • Updates and Support

System Requirements

Hardware Requirements (Minimum) Core 2 Duo, 1.5 GHz, 4 gig RAM, 1 gig disk space.
Hardware Requirements (Recommended) Core 2 Duo, 2.5 GHz GHz, 8 gig RAM, 1 gig disk space.
Operating System Tested on Windows 7. Course software should be viable on all systems which support a Java 6 Developer's Kit.
Network and Security Limited privileges required -- please see our standard security requirements.
Software Requirements All free downloadable tools.