Android Application Development
Course Summary
This course is a hands-on training on how to design and build mobile applications with Google's AndroidTM SDK. We have organised this course in a pragmatic form in order to get you quickly writing your first useful Android application, not a hello world one. In this course you will learn what is the life-cycle of an Android application, how to create proper User Interface, how to work with multiple screen resolutions, how to work with Android devices: sensors, GPS, Camera etc, Networking, Multimedia and much more. The lab exercises are executed on the emulator and on real devices, such as the Nexus One, Nexus S and Galaxy S phones as well as development board: panda board, beagle board and ODroid-T.
Objective
Upon completion of this course, you will be able to:
- Use the tools and API in the AndroidTM SDK.
- Understand the design principles and Android applications are structured.
- Design and develop advanced User Interface with Views, Layouts, Menu, Notifications, Background Services, Drawing, 2 and 3D animations, access the web, and much much more.
- Build applications based on the most important Android APIs, such as data storage, networking, telephony, location based services and Google Maps APIs, multimedia and 3D graphics, etc.
- Use the background services, thread and notifications.
- Deploy your application to the Android Market.
Course Duration
This course is taught in a 5 days, instructor-led training class, which amounts to a total of 40 hours of learning. The course is divided in 60% theory and 40% lab practices.
Audience
This course is intended to anyone interested in learning to develop Android applications. If you have an Android phone and a good idea for a mobile application, then this course is for you.
Prerequisite
Knowledge and experience with the Java programming language is required to get the most out of this training.
Course Content
Introduction to Android
- An Introduction to Android
- Android SDK Features
- What Does Android Run On?
- Why Develop for Mobile?
- Introducing the Development Framework
- Working with the Emulator
- Running Your Application on Android Phones
Designing Android Applications
- Application Fundamentals
- The Lifecycle of an Android Application
- Understanding Application Priority and Process States
- Managing Resources and Assets
- A Closer Look At Android Activities
- Security and Permissions
- The AndroidManifest.xml file
Resources, Content Providers, Adapters, Intents and Broadcast Receivers
- Understanding and Using Resources
- Understanding and Making Good Use of Content Providers
- Adapters - What are they? And, How to Use Them?
- Introducing Intents
- Listening for Broadcast with Broadcast Receivers
Designing and Creating User Interface
- User Interface Screen Elements
- Designing User Interface with Layouts
- Creating New Views
- Drawable Resources
- Resolution and Density Independence
- Creating Menus
- Creating Dialogs
- Handling User Interface Events
- Touchscreens
- Notifying the User
- Applying the Styles and Themes
- Adding Preferences
- Building Custom Components
- Application Widgets
- Home Screen Widgets
- Live Wallpaper
Data and Storage APIs
- Saving Application Data
- Creating and Saving Preferences
- Retrieving Shared Preferences
- Introducing the Preference Activity and Preference Framework
- Saving Activity State
- Accessing the SD Card
- Saving and Loading Files
- File Management Tools
- Introducing SQLite on Android
- Cursors and Content Values
- Revisiting Content Providers
- Writing Your Own Content Provider
- Native Android Content Providers
- Using Live Folders
Working in the Background
- Introducing Services
- Using Background Threads
- Revisiting Notifications
- Using Alarms
- Going Deeper into Inter-process Communication
Web Applications
- Web Apps Overview
- Building Web Apps in WebView
- Targeting Screens from Web Apps
- Best Practices for Web Apps
Android Search
- An Introduction to Android Search
- Activities and Search Key Interaction
- Implementing a Simple Suggestion Provider
- Implementing a Custom Suggestion Provider
- Using Action Keys and Application-specific Search Data
Graphics API
- Unveiling 2D Animation
- Advanced Canvas Drawing
- Introducing the Surface View
- Programming 3D Graphics with OpenGL ES
The Multimedia API
- Playing Audio and Video
- Recording Audio and Video
- Taking Pictures
- Adding New Media to the Media Store
- Raw Audio Manipulation
Bluetooth, Networks and WiFi
- Using Bluetooth
- Managing Network Connectivity
- Managing Your WiFi
- Push Notifications
Maps, GeoCoding and Location-Based Services
- Using Location-Based Services
- Configuring the Emulator to Test Location-Based Services
- Updating Locations in Emulator Location Providers
- Selecting a Location Provider
- Finding Your Current Location
- Using Proximity Alerts
- Using the GeoCoder
- Creating Map-Based Activities with Google Maps API
- Creating and Using Overlays
Exploring Android Security
- Understanding the Android Security Model
- Linux Kernel Security
- Introduction to Permissions
- Performing Runtime Security Checks
- Declaring and Enforcing Permissions
- Enforcing Permissions for Broadcast Intents
The Telephony API
- Launching the Dialer to Initiate Phone Calls
- Replacing the Native Dialer
- Accessing Phone and Network Properties and Status
- Monitoring Changes in Phone State, Phone Activity and Data Connections
- Introducing SMS and MMS
Debugging Android Applications
- Tools
- Debug and Test Settings
- Debugging Techniques
- Connecting to the Debugging Port
Working with the Android Market
- Becoming a Publisher
- Application Licensing
- Preparing Your Application for Sale
- Uploading Your Application
- User Experience on Android Market
- In-App Billing
- Market Filters
Advanced Topics
- Power Management: Using Wake Locks
- Exploring Android Text-to-Speech, Speech Recognition and Translate APIs
- Using AIDL to Support IPC for Services
- Using Internet Services
Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.


