Training > All Courses > Android > Android™ Networking

Course Summary

Android™ Networking is an introduction to creating highly networked Android mobile applications. You will learn to use the HttpClient, external JARs, and local and remote services. The Android™ Networking class covers notifications, location tracking, using Google Maps, integrating media players as well as the web into your applications and much more.

This is a great class to really experience the power of Android mobile apps at its best - in the connected world.

Duration

2 days.

Audience

Intermediate

Familiarity with basic Android development practices. We recommend participants have taken Intro to Android™ Training Course or equivalent.

Additional Notes

About Your Instructor

Marko Gargenta

Marko Gargenta has been programming in Java even before it was named Java. His background is in very large enterprise web application development but he's also had a fair-share of UI experience having rewritten the entire AWT into lightweight components before Java Swing ever came out. He's a big believer in agile development processes, being a certified ScrumMaster himself as well as contributor to eXtreme Programming methodology.

Marko is a professional consultant and instructor. He's taught teams of organizations such as Sony-Ericsson, Ericsson Canada, MetroPCS, Experian, DoJ, DoD, and many others. He's published a PHP/MySQL by Example book with Prentice Hall (world's largest tech publisher) as well as created many of Marakana's courseware, including the Android series.

30,000-foot Overview of Android

A high level overview of the Google's Android Platform, presented by Marko Gargenta from Marakana at OSCON 2009

Android Meetup Group Organized by Marakana

SF Android Users GroupMarakana team organizes and runs the San Francisco Android Users' Group - an interactive group of Android developers. In our monthly meetings, we discuss Android landscape from both technology and business angles. We often have great presentations by industry experts, group discussions, as well as hands-on sessions. If you are in San Francisco Bay Area, we encourage you to join the group and meet other Android developers.

Trademark Notice

Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.

Outline

Using HttpClient

  • Cookies
  • Authentication
  • XML and JSON
  • Lab: REST API

Extending Android with JARs

  • Simple mechanics of the libs/ directory
  • What will and will not work
  • How best to integrate a third-party JAR
  • Lab: Twitter: experiment with third-party Twitter API wrappers

Creating Local Services

  • Role of services
  • Service lifecycle methods
  • Sharing state in local services
  • Threads and local services
  • Lab: Twitter: poll for friends timeline updates

Using Local Services

  • Starting and stopping services
  • Getting updates via shared state
  • Getting updates via Intents and BroadcastReceivers
  • Lab: Twitter: populate ListView with friends timeline updates

Remote Services

  • Role of remote services
  • Creating AIDL interfaces
  • Exporting and importing AIDL interfaces
  • Callbacks from service to client
  • Lab: Twitter: make the polling service be remote, using AIDL for control and callbacks for async updates

Notifications

  • Role of notifications
  • Raising a notification
  • Augmenting notifications via hardware
  • Reacting to selected notifications
  • Handling multiple notification-worthy events
  • Lab: Twitter: user can specify "BFF""; service raises notification when update from BFF arrives

Location Tracking

  • Android's location tracking model
  • Getting updates as you move
  • Getting the latest fix
  • Proximity alerts
  • Choosing providers via criteria
  • Testing via DDMS
  • Lab: Twitter: add "L:30.010,-90.007"-style markup on user request to tweets, using current location

Maps

  • Rules and API keys
  • Adding a map, with center and zoom levels
  • Overlays and MyLocationOverlay
  • Custom overlays with push-pins
  • Zoom controls
  • Lab: Twitter: support public timeline; for updates with "L:30.010,-90.007"-style markup in any timeline, show location

Media

  • Supported audio formats
  • Simple media playback
  • Streaming audio
  • Supported video formats
  • Simple video playback
  • Streaming video
  • Lab: Twitter: add option to view helpcast on how to use the application, playing back a video

Integrating WebKit

  • Launching a standalone Browser activity
  • Adding a WebKit to your application
  • Loading local content
  • Controlling what happens on link clicks
  • Lab: Twitter: launch browser on in-tweet links; show “online help” from a local file

Advanced WebKit

  • Exposing Java code to Javascript
  • Calling back into Javascript from Java
  • Richer local content stores
  • Lab: Twitter: online help is customized with user info via injected Java