Authors: Larry Schiefer, Chiu-Ki Chan, Sriyank Siddhartha, Jim Wilson, John Sonmez, Yan Zhang, Richard Cirerol, Richard Warburton, Jon Flanders

Android is an open-source operating system maintained by Google that runs on over 80% of all mobile handsets today. Android provides an adaptive app framework that allows you to... Read more


The beginner courses in this path will give you a solid foundation in fundamental Android concepts. You’ll be introduced to fragments, intents, activities, and data binding before stepping into some of the basic layout concepts for Android apps.


Start Developing for Android

by Chiu-Ki Chan

Dec 9, 2015 / 1h 3m

Beginner • 1h 3m

Start Course

Build your very first Android app with this course! You will first learn how Android apps are structured, then download Android Studio to compile the Hello World app. You will then extend the Hello World app to learn core concepts such as drawables, dimens, styles, menu, and testing. The course concludes with a list of next steps for you to expand your Android knowledge.

Table of contents
  1. Introduction
    3m 28s
  2. Android Studio Installation
    9m 45s
  3. Building the Hello World App
    45m 22s
  4. Taking Your Next Steps
    5m 18s

Android Beginner Series: Understanding Android

by John Sonmez

Mar 8, 2013 / 2h 5m

Beginner • 2h 5m

Start Course

Have you wanted to learn about Android development, but perhaps you don't know where to start? Perhaps you are brand new to the world of programming and want to learn how to program quickly while doing something fun like developing an Android app? If so, this brand new course series might be just what you are looking for. This is the first course in a series of 4 courses designed to take you from knowing nothing about Android and very little about programming in general to building your own Android apps and games. Here is a breakdown of the courses: course 1: Understanding Android - this course; course 2: Creating Android Apps Without Code Using App Inventor; course 3: Just Enough Java To Build An Android App; course 4: Building a Simple Game In Android. In this first course, we take a look at the very basics of Android and learn exactly what Android is and how it works. This course will go over the design and history of Android. Then we'll take a look at what exactly an operating system is so that we can better understand the Android operating system and how it works. After that we'll go over Android applications and exactly what makes them unique. And we'll finish up the course by talking about all the different ways you can develop Android applications and how the Android app markets work. By the time you finish this course, you should have a solid foundation in Android fundamentals and be ready to start learning how to develop Android applications in the upcoming courses in this series. Whatever your level of programming experience, this course series will get you building your own apps and games in Android quickly, and we'll have fun doing it. And even if you are already an Android developer, you may find the in depth understanding of how Android works that you will learn from this course valuable.

Table of contents
  1. Welcome To Android
    26m 31s
  2. The Android Operating System
    25m 1s
  3. Anatomy Of An Android App
    27m 24s
  4. Ways To Develop Android Apps
    23m 14s
  5. Android App Markets
    23m 16s

Android Programming with Intents

by Jim Wilson

Nov 15, 2011 / 4h 14m

Intermediate • 4h 14m

Start Course

Three of the core components of an application - activities, services, and broadcast receivers - are activated through messages, called intents. Intent messaging is a facility for late run-time binding between components in the same or different applications. In this course you will learn how to work effectively with and capitalize on the many capabilities of the Android platform provided through intents.

Table of contents
  1. Android Late Binding and Intents
    37m 8s
  2. Component activation with intents
    1h 5m 41s
  3. Delegation and Callbacks through PendingIntents
    44m 51s
  4. IntentFilter data tests
    43m 4s
  5. Working with Platform Features Through Intents
    1h 3m 55s

Introduction to Testing in Java

by Richard Warburton

May 11, 2015 / 3h 54m

Beginner • 3h 54m

Start Course

This course introduces why you want to write automated tests for your code and how to implement this in Java, covering fundamentals of how to write simple tests using JUnit and Hamcrest, through Test Driven Development (TDD) and then explains how to structure your code and design in order to make testing easier.

Table of contents
  1. Introduction
    15m 36s
  2. Testing Code
    38m 46s
  3. Writing Good Tests
    48m 19s
  4. Introducing Test Driven Development
    43m 51s
  5. Dependencies
    39m 44s
  6. Going Outside-in
    47m 48s

Exploring Android Studio

by Larry Schiefer

Oct 7, 2014 / 5h 39m

Beginner • 5h 39m

Start Course

Android Studio is the new Android application development IDE powered by the IntelliJ IDEA platform. The course will take you through downloading and setting up Android Studio on Windows, migrating to Android Studio from Eclipse, and developing Android applications and libraries. In this course, you will not only learn basic use of Android Studio, but also how to take advantage of its advanced features to provide more robust code and make you a more productive developer. Android Studio's new Gradle and Maven based build systems are covered so you know how to take advantage of the powerful build variant and dependency management they provide.

Table of contents
  1. Introduction
    14m 10s
  2. Setting Up Android Studio
    11m 13s
  3. Migrating to Android Studio
    19m 10s
  4. Android SDK Tools
    44m 23s
  5. Creating Apps With Android Studio
    48m 51s
  6. Building and Debugging With Android Studio
    16m 26s
  7. Library Projects With Android Studio
    19m 31s
  8. Building a Release Package
    12m 47s
  9. Advanced Features
    1h 13m 6s
  10. The Gradle Build System
    48m 8s
  11. The Android Gradle Plugin
    31m 26s

Android Fundamentals: SharedPreferences

by Sriyank Siddhartha

Aug 22, 2016 / 1h 38m

Beginner • 1h 38m

Start Course

SharedPereferences is an API that allows you to save a small collection of data persistently. This course, Android Fundamentals: SharedPreferences, is all about basics and fundamental concepts of SharedPreferences. First, you'll get an introduction to Android storage options. Next, you'll see how saving and retrieving data from SharedPreferences works. Finally, you'll use GSON to save and retrieve non-primitive data types. After completing this course, you'll know how to save, retrieve, and modify data both at the activity level and application level through your illustrative demo application.

Table of contents
  1. Course Overview
    1m 19s
  2. Introduction
    6m 22s
  3. Saving and Retrieving Data from SharedPreferences
    54m 55s
  4. Using GSON to Save and Retrieve Non-primitive Data Type
    35m 35s

Introduction to SQL

by Jon Flanders

Oct 11, 2013 / 3h 2m

Beginner • 3h 2m

Start Course

Structured Query Language (SQL) is a special purpose language for interacting with relational databases. In this course, Introduction to SQL (Update), you will learn the basics of Structured Query Language. First, you will learn how to query data and shape results. Next, you will focus on creating and modifying data in your tables. Finally, you will touch on how actually modify the tables themselves. By the end of this course, you'll understand the basics of how to create and use a relational database.

Table of contents
  1. Course Overview
    1m 30s
  2. Introduction
    11m 36s
  3. Understanding Basic SQL Syntax
    13m 1s
  4. Querying Data with the SELECT Statement
    25m 28s
  5. Filtering Results with the WHERE Clause
    36m 17s
  6. Shaping Results with ORDER BY and GROUP BY
    27m 8s
  7. Matching Different Data Tables with JOINs
    18m 58s
  8. Adding, Changing, and Removing Data
    20m 33s
  9. Creating Database Tables
    28m 12s

Android Fundamentals: Activities

by Sriyank Siddhartha

Aug 4, 2016 / 2h 43m

Beginner • 2h 43m

Start Course

Start developing Android apps and get a deeper knowledge of basic Android Components such as Activities in real quick time. In this course, Android Fundamentals: Activities, you'll be learning all about Activity and its related fundamental concepts. First, you'll get an introduction to Android Components and progressively cover the topic of Event Handling, Logcat, and also dive into the building block component of any Android apps. You'll be learning about Android Component Activity such as its lifecycle and its behavior on screen rotation. Finally you'll learn how to exchange data between activities. By the end of this course, you'll have a very strong foundation on the topic of android activities.

Table of contents
  1. Course Overview
    1m 10s
  2. Introduction
  3. Getting Familiar with Building Blocks of Android
    18m 23s
  4. Using Activities to Listen to Events
    31m 57s
  5. Sharing Data Between Activities Using Explicit Intent
    27m 54s
  6. Exploring Activity Lifecycle
    33m 55s
  7. Understanding Activity Lifecycle in Context of Screen Rotation
    45m 36s

Android Fundamentals: Data Binding

by Richard Cirerol

Oct 6, 2015 / 1h 38m

Beginner • 1h 38m

Start Course

Binding data to views in Android can be an exercise in redundancy. We have typed the methods 'findViewById' and 'setText' many times and have consigned ourselves to the monotony. At Google I/O 2015, a new data binding library was announced that promises to free us from much of the boilerplate code we write for our views. Even in its beta release, the library is powerful and useful. The Data Binding Guide provided by Google teases the capabilities of this library. This course will explore the details of the data-binding library mixing both theory and practice. After finishing the course, you will have a solid foundation on how to use the data binding library to reduce your development time and increase your code clarity.

Table of contents
  1. Introduction
    8m 8s
  2. Simple Data Binding
    35m 1s
  3. Custom and Dynamic Binding
    25m 23s
  4. Observables
    20m 34s
  5. Pitfalls and Pro-tips
    9m 47s

Android Layout Fundamentals

by Chiu-Ki Chan

Jan 13, 2014 / 1h 39m

Intermediate • 1h 39m

Start Course

Android has four basic layout classes: LinearLayout, RelativeLayout, FrameLayout and TableLayout. How do they work? How to decide when to use which? This course goes into the details of each class, explains their various attributes, then demonstrates various tools and techniques to examine and optimize your layouts.

Table of contents
  1. Introduction
    15m 31s
  2. LinearLayout
    12m 25s
  3. RelativeLayout
    13m 56s
  4. FrameLayout
    6m 53s
  5. TableLayout
    11m 4s
  6. Choosing the Right Layout
    39m 21s

Android Fundamentals: Styles and Themes

by Sriyank Siddhartha

Oct 10, 2016 / 2h 46m

Beginner • 2h 46m

Start Course

An attractive user interface is the first impression of any application that the users come across. To provide a smooth, attractive, and consistent user-interface and design, the most important step that a developer should focus on is the themes and styles of the application. This course, Android Fundamentals: Styles and Themes, is all about how to apply styles to the views and widgets present in the android application, and choosing appropriate themes for an app. First, you will focus on how to apply styles to a View or ViewGroup, along with using the concept of inheritance for styling Views. Next, you'll go over customizing a theme for your application and which can help users identify the category of your application to some extent by just having a glance at it. Finally, you'll go over how best to handle some compatibility issues with your app for lower API level devices that will use it. When you are finished with this course, you'll have a better understanding of how to apply styles and themes to your Android applications.

Table of contents
  1. Course Overview
    1m 25s
  2. Introduction
    3m 13s
  3. Styling Views
    49m 28s
  4. Using the Concept of Inheritance for Styling Views
    35m 31s
  5. Applying Themes
    27m 17s
  6. Maintaining Backward Compatibility
    27m 7s
  7. Exploring Practical Usage of Styles and Themes
    22m 36s


In this section you’ll learn how to publish and monetize Android apps, then dive deeper into layout, UI/UX, and working with the Material Design Library.


Getting Started with Google Play In-app Billing

by Yan Zhang

Dec 29, 2015 / 1h 25m

Intermediate • 1h 25m

Start Course

In-app purchasing is a common and important way for monetizing apps. This course introduces you to integrating Google Play In-app Billing into Android apps in a comprehensive way. You can get the introduction of the whole image of In-app Billing, learn how the purchase flow works, purchase and consume in-app products, and test In-app Billing in a sandbox. The possible security issues are discussed and suggestions are given on how to deal with the problems. Finally, you will get inspiration on how to increase sales with In-app Billing.

Table of contents
  1. Understanding Google Play Billing
    6m 28s
  2. Creating Digital Products in Google Play
    15m 54s
  3. Purchasing and Testing In-app Products
    42m 9s
  4. Securing Your In-app Billing
    13m 16s
  5. Increasing Your Sales
    7m 25s

Android Processes and Threads

by Larry Schiefer

Oct 4, 2013 / 1h 59m

Intermediate • 1h 59m

Start Course

At its core, Android is built to take advantage of multi-tasking operations, be it from separate applications or different operations within the same app. In addition to providing built in support for working with threads, Android provides a solid framework for inter-process communication and puts a twist on the way app processes are used. In this course you will learn about the way Android utilizes processes, how to take advantage of special app sharing features and explore the variety of ways in which threads can be used.

Table of contents
  1. Android Processes and Threads (Application Process Model)
    27m 23s
  2. Android Processes and Threads (Sharing User IDs and Processes)
    36m 23s
  3. Android Processes and Threads (Threads and Thread Options)
    56m 5s

Getting Started with Android Material Design

by Sriyank Siddhartha

Feb 8, 2016 / 4h 21m

Beginner • 4h 21m

Start Course

Curious about Android Material Design? This is the your final stop where you will get information regarding material design specifications and the related widgets being used with material design themes. The best part of this course is that you will learn to make several complete android demo apps from scratch - two major apps and several small apps - based on material design guidelines. Enhance your application user interface designing skills by implementing all new materialistic features introduced in Android Lollipop 5.0.

Table of contents
  1. Course Overview
    1m 14s
  2. Introduction
    10m 8s
  3. Understanding Material Design
    40m 33s
  4. Adding a Toolbar
    31m 46s
  5. Understanding Recycler and Card Views
    1h 2m 23s
  6. Working with Items and Layout in Recycler View
    30m 36s
  7. Implementing the Navigation Drawer
    31m 29s
  8. Using Animation
    53m 19s

Improving User Interface Design with Android Fragments

by Jim Wilson

Dec 11, 2012 / 3h 1m

Intermediate • 3h 1m

Start Course

Available to all Android platforms, 1.6 and above, Fragments now replace Activities as the primary canvas for UI design. Fragments address a number of key UI design issues. In this course we discuss how to use Fragments to improve your app’s adaptability to device differences, provider better UI modularization, enhance your app’s appearance, and improve your app’s usability by creating more context-aware user experiences.

Table of contents
  1. Fragment Basics
    44m 45s
  2. Fragment Transactions
    35m 45s
  3. Fragments lifecycle and specialization
    55m 22s
  4. Fragments and the ActionBar
    45m 38s

Android Dreams, Widgets and Notifications: Life Outside Your App

by Jim Wilson

Nov 19, 2013 / 3h 20m

Intermediate • 3h 20m

Start Course

Sometimes the best app experiences occur completely outside of your app. Users must often switch back and forth between a variety of tasks, which they can do much more effectively if they can interact with each app’s information without having to explicitly open the app. This course teaches you how to provide this incredible out-of-app user experience using Android dreams, widgets, and notifications. Dreams allow your app to display information or provide entertainment while the device is docked or charging. Widgets allow your app to provide an interactive user experience directly on the Android home screen. With notifications your app can provide information to the user through the status bar even when the user is using a different app; notifications can also gather information from the user and, when necessary, allow the user to jump directly to the appropriate screen within your app right from the status bar.

Table of contents
  1. Providing an Out-of-App Experience
    16m 51s
  2. Creating Engaging Notfications
    49m 5s
  3. Making Notfications Interactive
    46m 43s
  4. Creating Home Screen Widgets
    36m 35s
  5. Updating and Configuring Widgets
    51m 37s


The advanced courses here will teach you to create custom components for your apps before guiding you through the Android accessibility standards. You'll also be working with async services and programming custom notifications for the Android app bar.


Improving User Interaction with the Android ActionBar

by Jim Wilson

Sep 4, 2012 / 2h 35m

Intermediate • 2h 35m

Start Course

The ActionBar incorporates a variety of previously disparate user interaction concepts into a single control. The ActionBar provides one-stop shopping for menu management, home and back behavior, tabbed displays, screen layout adaptability, and many more user interaction concepts. In this course we look at how to provide a rich user experience by taking full advantage of the ActionBar in your apps.

Table of contents
  1. Improving User Interaction with the Android ActionBar
    22m 18s
  2. Managing the ActionBar Layout
    39m 5s
  3. ActionBar Navigation
    1h 4m 38s
  4. ActionBar Interactivity
    29m 38s

Android Custom Components

by Chiu-Ki Chan

Jan 29, 2015 / 1h 39m

Intermediate • 1h 39m

Start Course

Android comes with many built-in components, but some tasks are best accomplished by rolling your own. We will start from a simple example of enhancing the TextView class, and finish with a complete custom view with its own size measurement, drawing function, and custom attributes. We will also discuss the best practices for custom views. What is the difference between a custom view and a fragment? How about a compound control? When to use which? By the end of the course, you will know not only how to create reusable custom components, but when to use them.

Table of contents
  1. Introduction
    4m 17s
  2. Extend a Simple View
    13m 1s
  3. Compound Control
    27m 23s
  4. onMeasure
    9m 52s
  5. onLayout
    10m 19s
  6. onDraw
    24m 6s
  7. dispatchDraw
    6m 54s
  8. Fragment vs. Custom View
    3m 47s

Android Fundamentals: Accessibility

by Jim Wilson

Nov 15, 2016 / 3h 3m

Intermediate • 3h 3m

Start Course

Many users have physical limitations that may make seeing the device display or interacting with the touchscreen difficult. Android provides a number of accessibility features and services and this course, Android Fundamentals: Accessibility, will serve as your guide to including these features in your apps. You'll start with an introduction to the goals of accessibility and how Android handles accessibility. Then, you'll get started making apps accessible by incorporating support for non-touch navigation and view descriptions, as well as seeing how to design and create apps that provide a single high-quality experience that works equally well for users with or without accessibility needs. You'll also get to see how to add some important accessibility features, such as Talkback support and d-pad navigation, to your custom views. Finally, you will go over the important relationship between testing and accessibility. By the end of this course, you'll be better able to build apps in such a way that they will be accessible to all users.

Table of contents
  1. Course Overview
    2m 8s
  2. Understanding Accessibility Basics
    12m 50s
  3. Making Your App Accessible
    39m 59s
  4. Designing for Accessibility
    51m 10s
  5. Creating Accessible CustomViews
    57m 36s
  6. Testing Accessibility
    19m 19s

Android Async Programming and Services

by Jim Wilson

Aug 22, 2011 / 3h 3m

Advanced • 3h 3m

Start Course

In this course you will learn how to use Android services and asynchronous processing to create applications that provide a more responsive user experience. Topics covered include Android Services, background processing, threading, asynchronous tasks, Started Services, Foreground Services, Notifications, Android Service lifecycle, and ExecutorService.

Table of contents
  1. Challenges to a responsive user experience
    48m 35s
  2. Implementing long-running operations as a service
    41m 3s
  3. Service lifecycle management
    46m 26s
  4. Interacting with services
    47m 4s

What you will learn

  • Activity lifecycle
  • Service lifecycle
  • Using Services
  • Layout files
  • Making components accessible from code
  • Storing complex data
  • Accessing data asynchronously
  • Customizing data display
  • Directory structure
  • Adapting to device differences
  • Globalization
  • Drawing resources
  • Fragment lifecycle
  • Dynamic Fragments
  • Backstack management
  • Defining Fragment UI Maintaining responsiveness during long-running tasks
  • Understanding the purpose of Context
  • Accessing system services
  • Permissions
  • Understanding the purpose of Intents
  • Handling URIs
  • Device Management
  • Development tools


Java Skill Path

Register for FREE. Get your Pluralsight IQ.

You’ll get unlimited access to adaptive skill assessments that help you validate your skills in as little as 5 minutes, and you'll get to see the Pluralsight platform first-hand.