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.
The Advanced Android Development course materials include:
Each lesson contains one or more codelabs with hands-on coding exercises, plus a slide deck and a concepts chapter. As developers work through the codelabs, 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.
The course materials are available for instructors to freely use in classroom settings, or for any motivated developer to use for self-study.
What does the course cover?
Advanced Android Development includes six teaching units:
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.
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.
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 platform and learn ways to modify an app to make it more accessible.
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.
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.