Advanced Android Development

Advanced Android Development is an instructor-led course created by the Google Developers Training team. Developers taking the course learn advanced Android programming concepts and build a variety of apps.

About the course

The course materials include:

Each lesson contains a slide deck, a concepts chapter, and one or more practical exercises. As developers work through the exercises, they create apps to practice and perfect the skills they're learning.

The Advanced Android Development course is intended for experienced developers who have Java programming experience and know the fundamentals of how to build an Android app using the Java language. The course is offered as an in-person course at selected colleges, facilitated by college faculty. The materials are also available online for self-study by experienced developers.

Advanced Android Development is a companion course to Android Developer Fundamentals, which prepares developers to take the exam for the Associate Android Developer certification.

How do I offer the course?

Advanced Android Development is offered as an elective course to undergraduates by selected universities and colleges in India. If you'd like to offer Advanced Android Development at your university or college, contact the Google Developers Training team at developer-training-info@google.com.

What does the course cover?

Advanced Android Development includes five teaching units:

Unit 1: Expand the user experience

This unit covers how to extend your apps to improve the user experience. Learn how to use fragments, widgets, and sensors.

Each lesson in Unit 1 is independent of the other lessons in this unit. For example, you can do the sensors lesson without completing the fragments and widgets lessons.

Lesson 1: Fragments

This lesson explains when, why, and how to use fragments. You learn how to include a fragment in your activity's UI, either by including it statically or dynamically. You also learn how an activity communicates with fragments. You implement a typical scenario for fragments by building an app that has a master/detail layout.

Lesson 2: App widgets

Learn about app widgets, which are miniature app views that appear on the Android home screen. Discover how to add widgets to your project, handle update requests, and make widgets interactive.

Lesson 3: Sensors

Learn how to use the Android sensor framework to get data from device sensors such as the accelerometer and geomagnetic field sensor. Build an app that responds to tilting the device.

Unit 2: Make your apps fast and small

This unit covers how to use tools to identify performance issues in your apps so you can make your apps run faster and more efficiently.

Lesson 4: Performance

This lesson explains why the performance of your Android app matters, and describes ways to optimize your app's performance.

You learn how to measure and improve rendering and memory performance, and you learn best practices for network calls, battery use, and data compression. You use the Android Profiler tools that come with Android Studio, plus command-line tools and tools on the device.

Unit 3: Make your apps accessible

This unit discusses how to localize your apps to other languages and how to make your apps accessible to users with disabilities.

Lesson 5: Localization

Learn how to provide support for different languages using string resources and the Translations Editor in Android Studio. You also learn how to show dates, times, numbers, currencies, and other information in formats for the user's chosen locale.

Lesson 6: Accessibility

Learn how to make your apps accessible to everyone, including people with disabilities. You explore the various accessibility options available in the Android plaform and learn ways to modify an app to make it more accessible.

Unit 4: Add geo features to your apps

This unit discusses how to extend your apps to add location functionality. It covers detecting and using the device location, using the Places API, and generating and showing maps.

Lesson 7: Location

Learn how to use Location Services APIs to get information about device location, receive periodic location updates, and turn geographic coordinates into physical addresses.

Lesson 8: Places

Learn how to detect the user's current place, such as a library, school, or train station, and how to enable your apps to search for places.

Lesson 9: Mapping

Learn how to integrate Google Maps into your apps and use features like location markers, map styling, Street View, and location tracking.

Unit 5: Advanced graphics and views

This unit covers how to create advanced graphics and custom views.

Lesson 10: Custom views

This lesson shows how to create a custom view that extends or replaces the functionality of views such as buttons and text fields. The custom view inherits the look and behavior of the parent view, and you can override the behavior or appearance attributes that you want to change.

Lesson 11: Canvas

Learn how to draw on a Canvas object, override the onDraw() method, and use clipping techniques to optimize drawing. In this lesson you create an app that uses a SurfaceView object to draw from a separate thread.

Lesson 12: Animations

This lesson explains how to create various types of animations in Android. You learn how to use property animations, group animations into sets, use interpolators, and experiment with physics-based animations.

Prerequisites

The Advanced Android Development course is intended for experienced developers who have Java programming experience and know the fundamentals of how to build an Android app using the Java language. This course assumes you have mastered the topics in Units 1 to 4 of the Android Developer Fundamentals course.

Specifically, this course assumes you know how to:

  • Install and use Android Studio.
  • Run apps from Android Studio on both a device and an emulator.
  • Create and use activities in Android.
  • Use views to create your app's user interface.
  • Enable user interaction through click handlers.
  • Create layouts using the Android Studio layout editor.
  • Create and use RecyclerViews.
  • Run tasks in the background.
  • Save data in Android shared preferences.
  • Save data in a local SQL database.