Advanced Android Training Course

Public Classroom

Summary

Advanced Android Training Course

Advanced Android training course is designed to provide advanced knowledge and skills to develop applications for Android platform. Course will cover in-depth topics such as threads, message queues, content providers/resolvers, location-based services, network services and others. Students taking this class should already be familiar with Android platform and have already written basic Android applications.

Duration

2 days

Course Objectives

By the completion of the Advanced Android course you should be able to:

  • Delve extensively into Android adapters and file I/O.
  • Have a solid understanding of threading, message queues and notifications.
  • Have a working experience with database access API and CRUD operations using SQLLite database.
  • Have a practical experience with Location based services – Location Manager, GPS, and MapView.
  • Understand Java Sockets, Java XML, and JSON.
  • Understand the concepts of and have working examples of NDK, Text-to-speech and telephony API.
  • Develop a working Android application that can serve as a base for any real project.

Audience

This course is for those who already have a basic understanding of the Android platform and want to obtain a more in-depth coverage of Android application development topics. This will be a great course for someone to further perfect their Android skills.

Pre-requisites

It is recommended that you take Android Application Development course prior to taking this course or have sufficient experience developing Android applications. You must also have a hands-on experience with Java programming language. If you don’t have a Java background, we recommend enrolling in the Java for Android course, which is generally scheduled immediately prior to this course.

The android development tools are freely available and easy to install. You can use any major platform such as MAC OSX, LINUX or Windows. Visit http://developer.android.com/sdk and download the ADT bundle appropriate for your platform.

Outline

Day 1

Android Overview

BroadcastReceiver, AlarmManager

  1. Application (class)
  2. Application example
  3. Intent and Intent Filters
  4. BroadcastReceiver
  5. AlarmManager
  6. NotificationManager
  7. Demonstration

Local/Remote Services, AsyncTask, Threads

  1. Android threads
  2. Java thread review
  3. Producer/Consumer
  4. Looper/Handler
  5. Main UI Thread
  6. AsyncTask
  7. AsyncTask example
  8. Service (class)
  9. Service (Local)
  10. Service (Remote)
  11. Android IDL
  12. IntentService
  13. AlarmManager vs Thread
  14. DDMS
  15. Demonstration

Lab Assignment 5 – WxTrax

  1. Add background collection of weather datum

Adapters, Option and Context Menus

  1. Menu introduction
  2. Option menu (XML and “hard” coded)
  3. Option menu/ActionItem
  4. ArrayAdapter
  5. CursorAdapter
  6. ListView/ListAdapter
  7. ListView/ListFragment
  8. Context menus
  9. GridView
  10. Spinner
  11. Gallery
  12. Toast
  13. AlertDialog
  14. DialogFragment
  15. Demonstration

SQLite Database

  1. SQL review
  2. SQLiteDatabase
  3. SQLiteOpenHelper
  4. Database definition
  5. ContentValues
  6. Database insert
  7. Database update
  8. Database delete
  9. Example code snippet
  10. Cursor
  11. Query
  12. Query example
  13. ADB and sqlite3 utility
  14. Demonstration

Content Provider/Loaders

  1. ContentProvider
  2. URI navigation
  3. Content format
  4. ContentResolver query
  5. ContentResolver insert
  6. ContentResolver update
  7. ContentResolver delete
  8. Custom ContentProvider
  9. MIME
  10. UriMatcher
  11. Demonstration

Lab Assignment 6 – WxTrax

  1. Persist weather datum to database
  2. Populate ListView from database

Day 2

Audio

  1. AudioManager
  2. Audio Recording
  3. Audio Playback
  4. MediaPlayer
  5. MediaPlayer listeners
  6. Ringtone manager
  7. Demonstration

Sensors

  1. Android sensors (accelerometer, compass, etc)
  2. SensorManager
  3. Touch events
  4. Gestures
  5. Camera
  6. Demonstration

2D Graphics

  1. Frame animation
  2. 2D drawing
  3. Tweening
  4. Layout animation
  5. Animation listeners
  6. SurfaceView
  7. Demonstration

Junit

  1. Unit testing
  2. Assert
  3. Android Junit
  4. Mock objects
  5. Demonstration

Application Widgets

  1. AppWidgets/LiveFolders
  2. AppWidget
  3. AppWidgetProviderInfo
  4. AppWidget layout
  5. AppWidgetProvider
  6. AppWidgetManager
  7. RemoteViews
  8. Demonstration

Lab Assignment 7 – WxTrax

  1. Add audio cues
  2. Add AppWidget

Custom Views

  1. 9 patch graphics
  2. StateListDrawable
  3. CustomViews
  4. Demonstration

Google Proprietary

  1. Google Play
    1. Market portal
    2. In-App Purchase
    3. Billing
    4. Key delivery
  2. Analytics
  3. AdMob
  4. Cloud Messaging
  5. Google App Engine

Location Services and Google Maps

  1. LocationManager
  2. Privacy
  3. Location quality
  4. Battery life
  5. Listeners
  6. LocationListener
  7. GpsStatus.Listener
  8. Latitude/Longitude
  9. Google Maps V2 API
  10. Signing and GoogleMap Key
  11. MapView
  12. MapFragment
  13. Overlays
  14. Demonstration

OpenGL Introduction

  1. Coordinates
  2. Camera
  3. Drawing
  4. Texturing
  5. Animation
  6. Android OpenGL ES
  7. GLSurfaceView
  8. Demonstration

Native Developers Kit (NDK)

  1. Java Native Interface
  2. Hello World (Java component)
  3. Hello World (C component)
  4. JNIEnv
  5. Data types
  6. Android NDK
  7. Bionic library
  8. Hello, JNI
  9. Demonstration

Lab Assignment 8 – WxTrax

  1. Add GoogleMap support