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:
- A practical workbook: Advanced Android Development—Practicals
- A concept reference: Advanced Android Development—Concepts
- Slide decks (for optional use by instructors)
- Source code in GitHub for apps that developers create during the practical exercises
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 (V2), which prepares developers to take the exam for the Associate Android Developer certification.
How do I offer the course?
The course materials are available for instructors to freely use in classroom settings, or for any motivated developer to use for self-study.
Have more questions? Visit the Developer Training FAQ.
What does the course cover?
Advanced Android Development includes six teaching units:
- Unit 1: Expand the user experience
- Unit 2: Make your apps fast and small
- Unit 3: Make your apps accessible
- Unit 4: Add geo features to your apps
- Unit 5: Advanced graphics and views
- Unit 6: Architecture Components
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.
Lesson 13: Playing video
This lesson teaches you how to play video in your app, show and use video controllers, and play media files that are embedded in your app or streamed from the internet.
Unit 6: Architecture Components
This unit covers best practices for structuring an app in which each component has a clear role. You learn about the Android Architecture Components, which provide guidance and libraries for common tasks like lifecycle management and data persistence.
Lesson 14: Architecture Components
This lesson teaches you how to use the Room database to simplify the code that's needed for saving data in Android's SQLite database. You build an app that saves words in a Room database and lets the user add and delete words.
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.
Version 2 of Android Developer Fundamentals course available
Android Developer Fundamentals (V2), an update to the Android Developer Fundamentals course, is available as of September 2018. The course has been updated to reflect best practices for more recent versions of the Android framework and Android Studio.
Media lesson available
Architecture Components lesson available
An Architecture Components lesson is available as of March 2018. The lesson includes the Working with Architecture Components: Room, LiveData, ViewModel practical, in which you build an app that uses a Room database to save data with minimal database-connection code.