October 24, 2019

All times are Pacific Standard Time (UTC-08:00).
After the event, recordings of all sessions (Main Stage and Second Stage) will be available on the Android Developers YouTube Channel.
Only sessions on the Main Stage will be livestreamed during the event.

filter_list Filter:
Time Description _type _location _product
08:00-9:30

Registration and Breakfast

8:30-13:30

Sandbox

Sandbox: Demos and Office Hours - AM Topics

Meet and talk to the Android Team!

Stop by the 2nd floor for Q and A, demos, or just to chat. Topics and teams will change throughout the day, so plan your ADS agenda to get your most pressing questions answered. Special guests and speakers will be featured in the Speakers' Lounge throughout both days.

  • Accessibility
  • Android Enterprise
  • Android for Cars
  • Android Jetpack
  • Android Studio
  • Android Tablets and Foldables
  • Android TV
  • Android Testing
  • Android UI Toolkit
  • Android app compatibility
  • Audio
  • Architecture Components
  • Build Speed Clinic
  • CameraX
  • Android for Chrome OS
  • Google Play Policy
  • Jetpack Compose
  • Kotlin
  • Machine Learning on Android
  • Media
  • Nearby
  • Non-SDK API Usage
  • Play Academy
  • Power and Battery
  • Runtime Performance Clinic
  • Scoped Storage
  • Security
  • Wi-Fi

Android for Cars

Android Studio and Tooling

Android TV

Google Play

Jetpack

Kotlin

Performance

Platform

Second Floor

Sandbox Office Hours Second Floor Android for Cars Android Studio and Tooling Android TV Google Play Jetpack Kotlin Performance Platform
9:30-10:10

Session

Preparing for Scoped Storage

Roxanna Aliabadi, Zimuzo Ezeozue, Yacine Rezgui

Plan overview and best-practice guide to the new storage model in Android 10.

Platform

Main Stage

Session Main Stage Platform
9:30-10:10

Session

Navigating Your Way Around Customizable Delivery

Ben Weiss, Wojtek Kaliciński, Dom Elliott, Jason Liu

With app bundles and dynamic delivery, developers now have the option to make parts of their apps available based on various user states or even on-demand at runtime. This is a big departure from the single-APK world, and we have heard loud and clear that you would like to see more support for migrating to this new model.

During this session, we will announce new tools and libraries that address some of the developer feedback that we have been gathering since the original launch. You can expect a deep dive on testing dynamic feature modules, a simplified on-demand installation API using Jetpack and Kotlin, and a new way to manage dependencies between multiple modules.

Google Play

Second Stage

Session Second Stage Google Play
9:30-10:40

Codelab

Jetpack Compose Codelab

Jetpack

Codelabs Room

Codelab Codelabs Room Jetpack
10:10-10:20

Break

10:20-11:00

Session

Performance Myth Busters

Calin Juravle, Diana Wong, David Sehr, Eric Holk

Let's explore what myths we can bust about Android app performance! Are enums not OK? How many dex files is optimal? Is object pooling really a good thing? Can implementing Kotlin really impact app performance? Along with some best practices on performance profiling and benchmarking, we put these questions (and more!) to the test and find out which are true and which myths get...busted.

Performance

Main Stage

Session Main Stage Performance
10:20-11:00

Lightning Talk

Lightning Talks Round 1

  • Managing Companion Devices
  • What's New in C++/Native Support in Android Studio
  • Advanced Haptics: The When, What, and How of New Haptic APIs
  • Adopt Wide Color Gamut
  • Turning the Page: Migrating to ViewPager2

Platform

Android Studio and Tooling

Second Stage

Lightning Talk Second Stage Platform Android Studio and Tooling
10:45-11:50

Codelab

CameraX Codelab

Jetpack

Codelabs Room

Codelab Codelabs Room Jetpack
11:00-11:10

Break

11:10-11:30

Session

Secure Your Data - Deep Dive into Encryption and Security

Jon Markoff, Nicole Borrelli

Strategies for data encryption on Android using Jetpack Security. The key takeaways include: learn to encrypt data safely on device and use the AndroidKeyStore.

  • Outline the challenges with data-at-rest encryption.
  • Best practices for data encryption and key management.
  • Deep dive into why and how Jetpack Security library was built.

Jetpack

Platform

Main Stage

Session Main Stage Jetpack Platform
11:10-11:30

Session

Emulator in a Continuous Integration (CI) Environment

Lingfeng Yang, Hoi Lam

In this talk, we go over how Android Emulator can be utilized in a continuous integration environment. In particular, we go through recently launched functionalities such as:

  • The Emulator Docker image and how it can be deployed to vendors such as Google Cloud
  • Streaming emulator image from a remote server / computer to the developer’s workspace.

Expect to see an end-to-end demo of how the emulator can run in a cloud environment and fit into the development lifecycle.

Platform

Jetpack

Second Stage

Session Second Stage Platform Jetpack
11:30-11:35

Break

11:35-11:55

Session

An opinionated guide to Dependency Injection on Android

Manuel Vivo, Daniel Santiago Rivera

Dagger has become the recommended way to do Dependency Injection on Android. However, there are many ways to use Dagger! Come hear why we recommend Dagger, the best practices including recommended setup in multi-module projects, and what plans we have to improve Dagger in Android so that you can create a solid, extensible solution for managing dependencies in your app that scales to large projects.

API Guidance

Main Stage

Session Main Stage API Guidance
11:35-11:55

Session

Demystify the Data in Android Studio Profilers

Shukang Zhou, Yi Yang

Profilers are a powerful tool in a developer's arsenal, but working with performance data can be intimidating at times. This session demystifies the profilers in Android Studio, discussing how to read and make use of data from memory heap dumps and CPU recordings to help you optimize the performance of your app.

Android Studio and Tooling

Second Stage

Session Second Stage Android Studio and Tooling
11:55-13:10

Lunch

11:55-12:15

Livestream exclusive

#AskAndroid: Kotlin and Coroutines

Answering questions you submit on Twitter using #AskAndroid.

Livestream exclusive
12:15-12:35

Livestream exclusive

#AskAndroid: Architecture components

Answering questions you submit on Twitter using #AskAndroid.

Livestream exclusive
13:10-13:30

Session

Shrinking Your App with R8

Søren Gjesse, Christoffer Adamsen

This talk dives into some of the details of how the R8 application shrinker shrinks apps to make it easier for developers to use R8.

Android Studio and Tooling

Main Stage

Session Main Stage Android Studio and Tooling
13:10-13:30

Session

How The Android Team Makes Widgets Accessible

Shailen Tuli, Qasid Sadiq, Lyla Fujiwara

In this intermediate level talk, we cover accessibility using real world examples. You’ll find out about accessibility in framework and androidX code, and learn about support for accessibility in Android widgets. Along the way, you’ll discover good patterns that can make your UIs shine for accessibility/

Platform

Second Stage

Session Second Stage Platform
13:10-13:30

Codelab

Open Codelabs

Jetpack

Codelabs Room

Codelab Codelabs Room Jetpack
13:30-13:35

Break

13:30-18:00

Sandbox

Sandbox: Demos and Office Hours - PM Topics

Meet and talk to the Android Team!

Stop by the 2nd floor for Q and A, demos, or just to chat. Topics and teams will change throughout the day, so plan your ADS agenda to get your most pressing questions answered. Special guests and speakers will be featured in the Speakers' Lounge throughout both days.

  • Activity Recognition
  • Android TV
  • Android for Cars
  • Android Framework
  • Android Tablets and Foldables
  • Android Vitals
  • ART and OpenJDK Libraries
  • Architecture Components
  • Build Speed Clinic
  • Camera
  • CameraX
  • Android for Chrome OS
  • Jetpack Compose
  • Dark Theme
  • Digital Wellbeing
  • Foreground Services
  • Gesture Navigation
  • Haptics
  • Android Jetpack
  • Kotlin
  • Material Design
  • Permissions
  • Play Academy
  • Profilers
  • Runtime Performance Clinic
  • System UI, Notifications
  • Windows and Activities

Android for Cars

Android Studio and Tooling

Android TV

Google Play

Jetpack

Kotlin

Performance

Platform

Second Floor

Sandbox Office Hours Second Floor Android for Cars Android Studio and Tooling Android TV Google Play Jetpack Kotlin Performance Platform
13:35-13:55

Session

Fragments: Past, Present, and Future

Ian Lake, Jeremy Woods

Fragments were one of the first APIs unbundled from the Android framework and have evolved significantly since their introduction. We will talk though the origins of Fragments, how our more recent changes have made them easier to work with, and give a glimpse into where Fragments are going and their place in 2019 and beyond.

Jetpack

Main Stage

Session Main Stage Jetpack
13:35-13:55

Lightning Talk

Lightning Talks Round 2

  • Android GSI for Developers
  • Pick Your USB Cables Wisely
  • Gaming Lightning Talk

Platform

Second Stage

Lightning Talk Second Stage Platform
13:35-15:00

Codelab

Testing Codelab

Jetpack

Codelabs Room

Codelab Codelabs Room Jetpack
13:55-14:00

Break

14:00-14:40

Session

Developing Themes with Style

Nick Butcher, Chris Banes

The Android theming system is powerful but easy to misuse. Proper use of it can make your layouts easier to maintain and support dark themes or implement material theming to systematically customize Material Design to better reflect your product’s brand.

This talk will start with a crash course in themes and styles and how to apply styling throughout your app while isolating theme dependent resources. We’ll then walk through applied examples of using the styling system to build material themed apps and dark themes.

UI

Main Stage

Session Main Stage UI
14:00-14:40

Session

Vitals Masterclass: Monitoring and Improving Real-World Stability and Performance

James Heather, Boris Farber

The Vitals section of the Play Console contains a huge amount of information about the health of developers' apps in the wild: crashes, ANRs, benchmarks against their peers' performance, and so on. This talk provides an in-depth look at best practices for using Vitals to detect, debug and fix problems with apps. Developers will leave with a better understanding of what Android Vitals is, and how to use it to improve the real-world performance of their apps.

Google Play

Second Stage

Session Second Stage Google Play
14:40-15:10

Afternoon Tea Break

15:10-15:30

Session

Android Studio: Debugging Tips n' Tricks

David Herman, Justin Nieto

Level up your debugging skills! We all spend so much time in the debugger, and this session teaches you about some of the powerful debugging features available in Android Studio. This talk should appeal to all, from beginners to experts and everybody in between. No matter your level, you'll take away something to help you chase bugs more effectively using Android Studio.

Android Studio and Tooling

Main Stage

Session Main Stage Android Studio and Tooling
15:10-15:30

Session

In-App Updates

Alessandro Dovis, Pietro Maggi, Amrit Sanjeev

Play's In-app updates API lets you prompt users to update your app while they are using the app, launched at Google I/O this year. This talk reviews what is new since then and explore ways that in-app updates can be used by your app.

Google Play

Second Stage

Session Second Stage Google Play
15:10-17:35

Codelab

Open Codelabs

Jetpack

Codelabs Room

Codelab Codelabs Room Jetpack
15:30-15:35

Break

15:35-15:55

Session

Java❤️ Kotlin, Happy Together 🎵

Murat Yener, Nicole Borrelli, Wenbo Zhu

Kotlin is awesome and you want to write all your code in it, but what about the thousands of lines of code already written in the Java programming language? Or, maybe you have a library or project that is written in Java and already has been used in so many Kotlin or Java projects.

In this talk, we will look at the best practices for writing Kotlin and Java code that works so seamlessly from the other that the only way to what language it is written in is to look at the source code.

Kotlin

Main Stage

Session Main Stage Kotlin
15:35-15:55

Session

On-device ML: Tackling Complex Use Cases with ML Kit

Julie Zhou, Shiyu Hu,

ML Kit makes it easy to integrate ML powered solutions into your apps, either through our turn-key Vision and Natural Language processing APIs or with your own custom TF Lite models. Not only can you easily tackle singular tasks like Text recognition, Face Detection or Language detection, but you can also create more complex user experiences by chaining multiple ML Kit APIs or using these in combination with your own custom models.

Platform

Second Stage

Session Second Stage Platform
15:55-16:00

Break

16:00-16:40

Session

Understanding Compose

Leland Richardson

This session covers the benefits of a declarative reactive UI system like Jetpack Compose and how it applies to real problems that Android developers have today. Additionally, this talk expands on the programming model of Jetpack Compose and some of its implementation details that help you understand how Compose works.

Jetpack

UI

Main Stage

Session Main Stage Jetpack UI
16:00-16:40

Lightning Talk

Lightning Talks Round 3

  • Supercharge Sharing to your App
  • Wait, there is a UX team on Android Studio?
  • Get Your App To Work At Work
  • Performance Analysis Using Systrace
  • The Digital Wellbeing Opportunity
  • 64-Bit Tips and Tricks

Android Studio and Tooling

Performance

Platform

UI

Second Stage

Lightning Talk Second Stage Android Studio and Tooling Performance Platform UI
16:40-16:50

Break

16:50-17:10

Session

Permissions on Android

Sara N-Marandi, Philip Moltmann

Permissions provide the means for apps to communicate to their users why they need access to the user's private data. In Android, we want to provide users control and transparency over their data, and have made a number of changes in Android 10 that bring greater restrictions to what data apps can access. We will review the changes in Android 10 and introduce new concepts we have been working on for future releases.

Platform

Main Stage

Session Main Stage Platform
16:50-17:10

Session

Google Play Billing: Required Updates and New Functionality

Neto Marin

There’s a direct correlation between a reliable, effortless purchase experience and resulting revenues. Designing for quality is even more important as the way users discover and purchase your one-time products and subscriptions changes.

In this session, we’ll show how you can increase purchase reliability and performance, while preparing for the future of “Purchase Anywhere”. We’ll cover RTDN, Play Developer APIs, refunded purchases, and frictionless subscriptions. We’ll show how Billing Library 2 makes updates easy and improves performance, as well as how to migrate from AIDL and Billing Library 1 before the deadline.

Google Play

Second Stage

Session Second Stage Google Play
17:10-17:15

Break

17:15-17:35

Session

Testing Coroutines on Android

Manuel Vivo, Sean McQuillan

Coroutines simplify the way we do async programming on Android. However, testing async code has never been an easy task. In this talk, we show you how to master test asynchronicity with coroutines to get that precious green check ✔️. Which questions do you have to ask yourself before writing a line of test code? How can you test coroutines that use Dispatchers.Main? What if you want to control the timing of your events? Why shouldn't you use Dispatchers.Unconfined? Come and learn how to test coroutines like a pro.

Kotlin

Main Stage

Session Main Stage Kotlin