Android is an open source platform for mobile computing. Applications are developed using familiar Java and Eclipse tools. Many vendors and carriers offer Android based devices (phones). Android is enjoying a healthy growth, in terms of hand set sells, applications available and new project starts. This course teaches students the architecture, API and techniques to create robust, high performance and appealing applications for the Android devices. While many classes focus on the mobile device, this course also deals with the server side architecture. This makes the class ideal for enterprise class businesses.


Basic knowledge of Java.  Familiarity with Eclipse is a plus but not necessary.

Introduction to Android

What is Android?
A Short History
Advantages of Android
Disadvantages of Android
Android Carriers
The Architecture of Android
Key Components Stack
The Kernel
The Dalvik JVM
Application Framework

The Development Environment

What do We Need?
Setting Up the SDK
Install Eclipse Plugin
Create a Virtual Device
Creating a Project
Running Your Application
Buttons of the Emulator
Run Configuration
Using Third Party JAR
Dalvik Debug Monitor Server (DDMS)
DDMS Tools in Eclipse
The Console Views
Developing for Multiple Android Versions

Application Fundamentals

Recapping the Basics
Packaging an Application
Application Reusability Architecture
The Manifest File
Creating an Activity Class
Activity Lifecycle
Launching an Activity
Pausing and Stopping an Activity
Destroying an Activity
The onCreate() Method
Registering an Activity
Process Lifecycle
The Application Class
The Application Context

Basic GUI Programming

The Fundamentals
View Hierarchy
Creating View in XML Layout
More on XML Layout
TextView and EditText
RadioButton and RadioGroup
Layout Management


LinearLayout Orientation
Layout Gravity
Managing the Width
Resource Management and Localization
Main Types of Resources
Defiining Value Resouces
Defining Spring Arrays
Creating Image Resource
Alternate Resource Folders
Alternate Folder Name Rules
How Android Finds Resources
Dealing with Screen Orientation
Orientation Change and Activity Lifecycle
Developing for Tablets
Basics of Localization
Testing for Localization
Loading Localized String from Code
Intents and Intent Filters

Defining Menu Items

Menu XML File
Option Menu
IPopulating Menu Items from Resource
Manipulating Menu Items
Handling Menu Item Click Event
Context MenuLocation Services
Showing a Context Menu
Handling Context Menu Item Click
Showing Notification Messages


Popping a Toast
Advanced Toast
Status Bar Notification
Advantages of Status Bar Notification
Steps to Create a Status Bar Notification
Posting the Notification


Alert Dialog
Handling Button Click Events In Dialog 
Progress Dialog 
Setting Progress Amount On Horizontal Dialog

Advanced GUI Development

Spinner View
Creating a Spinner
Handling Item Selection Event
The ListView
Creating a Listview
Handling ListView Events
The Adapter Model
Adapter Class
Using an Adapter
The ArrayAdapter Class
Tab with Activity Content

Data Storage Options

Shared Prefereances
External Storage
Checking State of External Storage
Working with Files in External Storage
Shipping Files with the Application
Working with Raw Resource Files
Working with Asset Files

SQL Database Storage

Use of SQLIte 
Opening a Database Connection
Transaction Management
A Pattern for Connection and Transaction Handling
Compiled SQL Statement
Inserting Data
Updating Data
Deleting Data
Fetching Data
Example Queries
Iterating Over a Cursor
Reading Column Values from Cursor
Cursor Management
Binding Cursor to ListView

Network Programming

Checking Network Status
Communication Using HTTP Protocol
Creating a HttpClient Object
Making a GET Request
Making a POST Request
Setting Timeout
Using Basic Authentication
Using Custom Authentication

Web Services 

XML Parsing Options
Setting Up XML Pull Parser
JSon Parsing Options

Background Task Processing

The Handler Framework
What is Service
Why Use a Service
Service for Background Work
Creating a Service
Starting and Stopping a Service
Starting Long Running Work
Usability Guidelines

Multimedia Programming

Playing Audio
Playing from Raw Resource
Playing from a File or Network Stream
Stopping and Cleanup
Video Playback
Playing Video
Packaging and Distributing Applications
Pricing Options
Getting the Application Ready
About Signing the Application
Exporting and Signing the Application
Going to Android Market
Doing Maintenance