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

Instructors

Guy Cole

Guy Cole Guy Cole is a former UC Extension instructor w/years of classroom experience. He is also a freelance designer/developer and an author of several Android and iPhone applications (search for "digiburo" within the Android market or iTunes App Store). Guy's extensive bio includes companies such as Cray Research, Cisco Systems, Wells Fargo Bank, Barclays Global Investments, Motorola, DHL Airways and many smaller, less well known companies. Guy completed a BSCS from San Diego State and holds multiple industry certifications. You will thoroughly enjoy both his clear presentation style as well as his keen sense of humor!

Jim McKeeth

Jim McKeeth

Jim is a veteran software developer, community activist, podcaster, blogger, trainer and conference presenter with 20 years of experience. He is developer evangelist for RemObjects Software where he travels the globe teaching and inspiring developers to achieve new levels of success in their development efforts. Jim's belief that training should be fun and informative is evident by his creative style.

Jim presents at conferences all across North America and Europe. Most recently he was one of the top presenters at the 4 day AnDevCon conference in California presenting four advanced sessions on topics ranging from web services to multiplatform development. When he isn't travelling and training he enjoys spending time with his family in Boise, Idaho.

Doug Stevenson

Doug Stevenson Doug Stevenson is an experienced developer and architect with a rich background in Java, C++ and mobile software systems. He has been a software developer for over 16 years, with last three years spent specifically on writing Android applications. His Android venture started when he became an early adopter of an Android device as they first hit the market in 2008. His popular application, “Act 1 Video Player”, has had over 40,000 downloads on the Android Market since its release and has become the “de facto” third-party Android video player. Doug has won prizes for Google’s Android Developer Challenge 2 and Google I/O 2011. He studied Computer Science at Ohio State University and has held principal software positions with several high-profile companies such as Motorola and America Online. He is a regular attendee and contributor to various Android conferences and Android user groups throughout the country.