Advanced Programming for Android Using Android Studio

Course#: BSMB1000

About this Course

Course Type Course Code Duration
Mobile Development BSMBQL1000 3 Days

This Android Programming course teaches more advanced programming topics for the Android platform. Students will learn to use database and network in their programs. This Android Programming course is ideal for developers who want to take their Android skills to the next level.

Why Attend this Course?

What Makes this Course Stand Apart?

What you will Learn?

Advanced GUI topics like ListView, WebView and tabbed layout.
Working with files and SQL database.
Content provider
Network programming.
Performing tasks in the background.
Play audio and video.
Automate Unit test applications.
Package and sell applications.


Developers and architects who will be developing applications for Android devices.


To succeed fully in this course, students should be able to:

Program Java applications
Program basic Android applications

Course Outline

Chapter 1. The Development Environment

What Do We Need?
Setting Up the SDK
Setting Up the SDK – Bundle Install
Setting Up the SDK – Manual Install
Android Studio
Studio Welcome Dialog
Android Studio Projects
Android Studio Interface
Visual Designer
Gradle Build System
Modifying Android Project Settings
Virtualization and Android Studio
Create a Virtual Device
Creating a Project
Running Your Application
Run Configuration
Debugging an Application
Developing for Multiple Android Versions
Migrating to Android Studio from Eclipse

Chapter 2. Application Menu

Defining Menu Items
Menu XML File
Option Menu
Populating Menu Items from Resource
Manipulating Menu Items
Handling Menu Item Click Event
Context Menu
Showing a Context Menu
Handling Context Menu Item Click

Chapter 3. Showing Notification Messages

Popping a Toast
Controlling Toast Position With Gravity
Custom Toast View
Status Bar Notification
Normal Notification View
Advantages of Status Bar Notification
Steps to Create a Status Bar Notification
Posting the Notification
Using a Utility Method
Notification IDs
Notification Defaults and Flags
Notification.Builder Class
Using Dialogs
Handling Button Click Events
Setting Progress Amount

Chapter 4. Menus With Action Bar

Action Bar Overview
Enabling the Action Bar
Using an Existing Menu Definition
Adding Action Items
Handling Clicks on Action Items
Split Action Bar
Up Navigation
Using Action Views
Drop-down Navigation

Chapter 5. Advanced GUI Development

Spinner View
Creating a Spinner
Handling Item Selection Event
The ListView
Creating a ListView
Handling ListView Events
The Adapter Model
Custom Adapter Class
Example Adapter
Using an Adapter
Using a Custom Row Layout
Tabbed UI Layout
Configuring Action Bar for Tabs
The ActionBar.TabListener Interface
ViewPager Layout
Linking ViewPager and PagerAdapter
Linking Tabs and ViewPager Pages
WebView Methods

Chapter 6. Network Programming

Communication Using HTTP Protocol
Creating a HttpClient Object
Making a GET Request
Making a POST Request
Setting Timeout
Using Basic Authentication
Using Custom Authentication
XML Parsing Options
Setting Up XML Pull Parser
The Main Loop
Example XML Document
Example Parsing Code
Checking Network Status

Chapter 7. Background Task Processing

The Handler Framework
The Basic Approach
Creating a Handler
Posting a Message
Doing Background Work
Callback Methods of AsyncTask
Doing the Work
Starting Work
Getting Result from the Task
Updating GUI From the Task
Ending the Task
Implementing a Loader
Use LoaderManager to Initialize Loader
Implement LoaderCallbacks

Chapter 8. Data Storage

Data Storage Options
Data Privacy
Shared Preferences
Modifying Shared Preferences
Shared Preferences Example
Default Preferences
Editing Preferences
Example: Editing Preferences
Internal Storage
Example: Write to Internal Storage
Example: Read from Internal Storage
Private Directory
Cache Directory
Example: Writing to Cache File
External Storage
Checking State of External Storage
Working with Private External Storage
Example: Writing to External Storage
Shared External Storage
Shipping Files with the Application
Working with Raw Resource Files
Working with Asset Files

Chapter 9. Content Provider

Use of URL
The Structure of Data
Creating a Content Provider
Implement the query() Method
Example query() Method
Implement the insert() Method
Example insert() Method
The update() and delete() Methods
Implement getType()
Registering a Provider
Writing a Data Consumer
Performing a Query
Example Query by a Consumer
Example: Inserting Record

Chapter 10. SQL Database Storage

Opening a Database Connection
Transaction Management
A Pattern for Connection and Transaction Handling
Creating Schema
Compiled SQL Statement
Inserting Data
Updating Data
Deleting Data
Fetching Data
Example Queries
Iterating Over a Cursor
Reading Column Values from Cursor
A Complete Example
Cursor Management
Binding Cursor to ListView
Custom Data Binding
Handling Item Click Event
Refreshing the ListView
Schema Creation Issues
Example Helper Class
Using the Helper Class

Chapter 11. Multimedia Programming

Recording Audio
Start Recording Audio
Stop Recording
Playing Audio
Playing from Raw Resource
Playing from a File or Network Stream
Stopping and Cleanup
Video Playback
Playing Video

Chapter 12. Background Services

What is a Service?
Creating a Service
Example Service Class
Starting and Stopping a Service
Starting Long Running Work
Sending Control Messages to a Service
Using IntentService
Usability Guidelines

Chapter 13. Broadcast Receiver

Developing a Broadcast Receiver Component
Registering a Receiver
Broadcasting a Custom Intent
Sticky Event Broadcasting

Chapter 14. Location Based Services

Guidelines for Obtaining Current Location
Obtaining Current Location from an Activity or Service
Reading Location Data
Other Considerations
Proximity Alert
Example Geocoding and Reverse Geocoding
Using MapView
Setting up the Project
Showing MapView from an Activity

Chapter 15. Android Telephony API

Common Uses of Telephony API
Making a Phone Call
Sending SMS Message
Call and Service State
Monitoring Call and Service State
Register the Listener
Getting Detail Phone Information

Chapter 16. Testing Applications

New Sources of Defects
Special Testing Considerations
Android Testing Framework
The Architecture
Testing in Android Studio Projects
Test Results in Android Studio
Test Case Class for an Activity
Test Case Initialization
Writing a Test Case Method
Service Test Case Class
Useful Methods of an Activity Test Case Class
Additional Assertion Function
The TouchUtils Class
Developing and Testing on a Device
Stress Test Monkey
Third Party Testing Tools

Chapter 17. Packaging and Distributing Applications

Pricing Options
Getting the Application Ready
About Signing the Application
Exporting and Signing the Application
Going to Google Play
Doing Maintenance

Chapter 18. What’s New in Android Lollipop (5.0)

Overview of Android Lollipop
Material Design
Notification Changes
Android Lollipop and Enterprise Users
“Document Centric” Applications
Job Scheduling
Android TV and Wearables
Android Studio
Other Miscellaneous Changes

Lab Exercises

Lab 1. Setting up the Development Environment
Lab 2. Working With Application Menu
Lab 3. Showing Notification Messages
Lab 4. Convert Menu for Action Bar
Lab 5. Custom ListView Adapter
Lab 6. Using a Spinner
Lab 7. Tabbed Interface
Lab 8. Network Programming
Lab 9. Performing Background Work
Lab 10. Using Loaders for Background Work
Lab 11. Working With File Storage
Lab 12. Caching Network Data on Disk
Lab 13. Content Provider and Consumer
Lab 14. Development Using SQLite Database
Lab 15. Play Audio Files
Lab 16. Develop a Simple Service
Lab 17. Developing Broadcast Receiver
Lab 18. Location Based Application
Lab 19. Using the Telephony API
Lab 20. Unit Testing an Application
Lab 21. Packaging and Installing Application


Start typing and press Enter to search