Course Contents
Android Overview and History
- Development and Evolution of Android
- What makes Android unique
Android Architecture
- the various layers that make up the Android stack
- how Android applications and services interface with the Linux kernel
- Java VMs (Virtual Machines) and the move to the Dalvik VM
- structure of the Android App framework
- Android Apps
Overview of the Android SDK
- tools and development philosophy
- supported platforms
- tools associated with the SDK
- versions of the Android SDK
Review of Object Oriented Programming and Java
Introduction and Overview of Eclipse and Java application development using Eclipse
Basic Android Application development and testing
- project creation and configuration
- understanding and using the manifest file
- laying out the user interface
- building and running an application on the Android Emulator
Key Android Concepts and associated Building Blocks
- Activities and the Activity lifecycle
- Intents
- Services
- Content Providers
- Broadcast Receivers
Principles of Designing, specifying and implementing the Android Graphical User Interface
- Overview of XML and use of XML to describe hierarchies of things
- Resources as an approach to describing user interfaces
- Describing Android interfaces in XML
- Views and layouts
- Tour of the Common UI components
- Gesture Driven Programming and the Handling user events
- An Introduction to Statecharts and the design and testing of user interfaces
Android from the Systems point of view
- File system
- Preferences
- Notifications
- Security model
- Where have all the Linux things gone?
- Console?
- Shell scripts?
- Linux tools and utilities?
- is there a root account?
User Interface Programming
- Using and working with
- Selection components
- Adapters
- Complex (Composite) UI components
- Menus and Dialogs
- Graphics and animation
- Designing and programming for efficiency
Multimedia Application Development
- Audio
- overview of different audio formats
- audio formats currently supported by Android
- overview of video formats
- video formats currently supported by Android
- implementing basic audio and video playback applications
Android Database Storage
- Overview of databases and SQL
- Overview of SQLite and how it differs from traditional databases such as PostgreSQL, MySQL etc.
- creating Android SQLite databases with SQLiteOpenHelper
- building and testing SQLite database applications
- SQL – inserts, updates, selects and deletes
Foundations of Accessing and Using Content Providers
- Overview of MIME types
- Searching for content
- Adding, changing, and removing content
- Creating and using content files
Threading
- Messages
- Handlers
Game Programming
- Introduction to Game Engines
Labs
Labs are designed for practical implementation of all topics being learned in class.
Week One:
Lab One: Installation of Eclipse and configuration of Android in Eclipse
Lab Two: Getting familiar with Eclipse Workspace and Creating first android project in eclipse
Lab Three: Writing a first Hello World! Program in Android
Week Two:
Lab Four: Overview of GUI and implementing GUI rich application (Part One)
Lab Five: Overview of GUI and implementing GUI rich application (Part Two)
Lab Six: Implementation of Intent and Notifications
Week Three:
Lab Seven: Using Sounds in Android Application
Lab Eight: Using Graphics and Animations in Android Application
Lab Nine: Implementing Data Storage Methods in Android
Week Four:
Lab Ten: Writing a Service and using Android Permissions
Lab Eleven: Using Content Providers
Lab Twelve: Implementing Handlers and getting familiar with Game Programming



