CINXE.COM
Android storage use cases and best practices | Android Developers
<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Android Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#12b5cb"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/android/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500,600,700|Google+Sans+Text:400,400italic,500,500italic,600,600italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/css/app.css"> <link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/css/dark-theme.css" disabled> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/favicon.svg"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/touchicon-180.png"><link rel="canonical" href="https://developer.android.com/training/data-storage/use-cases"><link rel="search" type="application/opensearchdescription+xml" title="Android Developers" href="https://developer.android.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developer.android.com/training/data-storage/use-cases" /><link rel="alternate" hreflang="x-default" href="https://developer.android.com/training/data-storage/use-cases" /><link rel="alternate" hreflang="ar" href="https://developer.android.com/training/data-storage/use-cases?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developer.android.com/training/data-storage/use-cases?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developer.android.com/training/data-storage/use-cases?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developer.android.com/training/data-storage/use-cases?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developer.android.com/training/data-storage/use-cases?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developer.android.com/training/data-storage/use-cases?hl=fr" /><link rel="alternate" hreflang="de" href="https://developer.android.com/training/data-storage/use-cases?hl=de" /><link rel="alternate" hreflang="he" href="https://developer.android.com/training/data-storage/use-cases?hl=he" /><link rel="alternate" hreflang="hi" href="https://developer.android.com/training/data-storage/use-cases?hl=hi" /><link rel="alternate" hreflang="id" href="https://developer.android.com/training/data-storage/use-cases?hl=id" /><link rel="alternate" hreflang="it" href="https://developer.android.com/training/data-storage/use-cases?hl=it" /><link rel="alternate" hreflang="ja" href="https://developer.android.com/training/data-storage/use-cases?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developer.android.com/training/data-storage/use-cases?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developer.android.com/training/data-storage/use-cases?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developer.android.com/training/data-storage/use-cases?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developer.android.com/training/data-storage/use-cases?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developer.android.com/training/data-storage/use-cases?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developer.android.com/training/data-storage/use-cases?hl=th" /><link rel="alternate" hreflang="tr" href="https://developer.android.com/training/data-storage/use-cases?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developer.android.com/training/data-storage/use-cases?hl=vi" /><title>Android storage use cases and best practices | Android Developers</title> <meta property="og:title" content="Android storage use cases and best practices | Android Developers"><meta property="og:url" content="https://developer.android.com/training/data-storage/use-cases"><meta property="og:image" content="https://developer.android.com/static/images/social/android-developers.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Android storage use cases and best practices" } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="cyan" type="article" appearance layout="docs" display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="androidDevelopers" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup-dark-theme.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Android Developers"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-dropdown devsite-dropdown-full "> <a href="https://developer.android.com/get-started" track-metadata-eventdetail="https://developer.android.com/get-started" class="devsite-tabs-content gc-analytics-event android-dropdown-tab" track-type="nav" track-metadata-position="nav - essentials" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials" > Essentials </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Essentials" track-type="nav" track-metadata-eventdetail="https://developer.android.com/get-started" track-metadata-position="nav - essentials" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-dropdown android-dropdown-primary android-dropdown-studio"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Gemini in Android Studio</li> <li class="devsite-nav-description">Your AI development companion for Android development. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/gemini-in-android" track-type="nav" track-metadata-eventdetail="https://developer.android.com/gemini-in-android" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="gemini in android studio" tooltip class="button button-primary" > <div class="devsite-nav-item-title"> Learn more </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/studio" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="gemini in android studio" tooltip class="button button-white" > <div class="devsite-nav-item-title"> Get Android Studio </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-launch"> <li class="devsite-nav-title" role="heading" tooltip>Get started</li> <li class="devsite-nav-description">Start by creating your first app. Go deeper with our training courses or explore app development on your own. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/get-started/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/get-started/overview" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Hello world </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/courses" track-type="nav" track-metadata-eventdetail="https://developer.android.com/courses" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Training courses </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/get-started/codelabs" track-type="nav" track-metadata-eventdetail="https://developer.android.com/get-started/codelabs" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Tutorials </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/kotlin" track-type="nav" track-metadata-eventdetail="https://developer.android.com/kotlin" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Kotlin for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://play.google.com/console/about/guides/monetize/" track-type="nav" track-metadata-eventdetail="https://play.google.com/console/about/guides/monetize/" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Monetization with Play ↗️ </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-multiple-screens"> <li class="devsite-nav-title" role="heading" tooltip>Extend by device</li> <li class="devsite-nav-description">Build apps that give your users seamless experiences from phones to tablets, watches, and more. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/adaptive-apps" track-type="nav" track-metadata-eventdetail="https://developer.android.com/adaptive-apps" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Adaptive apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/wear" track-type="nav" track-metadata-eventdetail="https://developer.android.com/wear" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Wear OS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/cars" track-type="nav" track-metadata-eventdetail="https://developer.android.com/cars" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Android for Cars </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/tv" track-type="nav" track-metadata-eventdetail="https://developer.android.com/tv" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Android TV </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/chrome-os" track-type="nav" track-metadata-eventdetail="https://developer.android.com/chrome-os" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> ChromeOS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/multi-device-development" track-type="nav" track-metadata-eventdetail="https://developer.android.com/multi-device-development" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Cross-device SDK </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-platform"> <li class="devsite-nav-title" role="heading" tooltip>Build by category</li> <li class="devsite-nav-description">Learn to build for your use case by following Google's prescriptive and opinionated guidance. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/games" track-type="nav" track-metadata-eventdetail="https://developer.android.com/games" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Games </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/media" track-type="nav" track-metadata-eventdetail="https://developer.android.com/media" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Camera & Media </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/social-and-messaging" track-type="nav" track-metadata-eventdetail="https://developer.android.com/social-and-messaging" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Social & messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/health-and-fitness" track-type="nav" track-metadata-eventdetail="https://developer.android.com/health-and-fitness" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Health & Fitness </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/productivity" track-type="nav" track-metadata-eventdetail="https://developer.android.com/productivity" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Productivity </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/work/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/work/overview" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Enterprise apps </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-stars"> <li class="devsite-nav-title" role="heading" tooltip>Get the latest</li> <li class="devsite-nav-description">Stay in touch with the latest releases throughout the year, join our preview programs, and give us your feedback. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/latest-updates" track-type="nav" track-metadata-eventdetail="https://developer.android.com/latest-updates" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Latest updates </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/latest-updates/experimental" track-type="nav" track-metadata-eventdetail="https://developer.android.com/latest-updates/experimental" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Experimental updates </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/studio/preview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio/preview" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Android Studio preview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/jetpack/androidx/versions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/androidx/versions" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Jetpack & Compose libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/wearables/versions/4" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/wearables/versions/4" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Wear OS preview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design-for-safety/privacy-sandbox" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design-for-safety/privacy-sandbox" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Privacy Sandbox </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-dropdown-full "> <a href="https://developer.android.com/design" track-metadata-eventdetail="https://developer.android.com/design" class="devsite-tabs-content gc-analytics-event android-dropdown-tab" track-type="nav" track-metadata-position="nav - design & plan" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Design & Plan" track-name="design & plan" > Design & Plan </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Design & Plan" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design" track-metadata-position="nav - design & plan" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Design & Plan" track-name="design & plan" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-layout"> <li class="devsite-nav-title" role="heading" tooltip>UI Design</li> <li class="devsite-nav-description">Design a beautiful user interface using Android best practices.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Design for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/mobile" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/mobile" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Mobile </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/large-screens" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/large-screens" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Large screens (e.g., tablets) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/widget" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/widget" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Widgets </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/wear" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/wear" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Wear OS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/tv" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/tv" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Android TV </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-design"> <li class="devsite-nav-title" role="heading" tooltip>Architecture</li> <li class="devsite-nav-description">Design robust, testable, and maintainable app logic and services.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/topic/architecture/intro" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/architecture/intro" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Introduction </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/topic/libraries/view-binding" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/libraries/view-binding" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/navigation/navigation-principles" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/navigation/navigation-principles" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Navigation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/topic/modularization" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/modularization" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Modularization </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/testing/fundamentals" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/testing/fundamentals" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Testing </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-vitals"> <li class="devsite-nav-title" role="heading" tooltip>Quality</li> <li class="devsite-nav-description">Plan for app quality and align with Play store guidelines.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality/core-value" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/core-value" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> Core value </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality/user-experience" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/user-experience" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> User experience </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality/technical" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/technical" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> Technical quality </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality/privacy-and-security" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/privacy-and-security" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> Security </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-security-2"> <li class="devsite-nav-title" role="heading" tooltip>Security</li> <li class="devsite-nav-description">Safeguard users against threats and ensure a secure Android experience.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/security" track-type="nav" track-metadata-eventdetail="https://developer.android.com/security" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="security" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/privacy-and-security/about" track-type="nav" track-metadata-eventdetail="https://developer.android.com/privacy-and-security/about" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="security" tooltip > <div class="devsite-nav-item-title"> Privacy </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/identity" track-type="nav" track-metadata-eventdetail="https://developer.android.com/identity" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="security" tooltip > <div class="devsite-nav-item-title"> Identity </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/security/fraud-prevention" track-type="nav" track-metadata-eventdetail="https://developer.android.com/security/fraud-prevention" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="security" tooltip > <div class="devsite-nav-item-title"> Fraud prevention </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-earth"> <li class="devsite-nav-title" role="heading" tooltip>Build for Billions</li> <li class="devsite-nav-description">Create the best experience for entry-level devices</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/build-for-billions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/build-for-billions" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="build for billions" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/docs/quality-guidelines/build-for-billions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/docs/quality-guidelines/build-for-billions" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="build for billions" tooltip > <div class="devsite-nav-item-title"> About new markets </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/androidgo" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/androidgo" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="build for billions" tooltip > <div class="devsite-nav-item-title"> Android (Go edition) </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-dropdown-full devsite-active "> <a href="https://developer.android.com/develop" track-metadata-eventdetail="https://developer.android.com/develop" class="devsite-tabs-content gc-analytics-event android-dropdown-tab" track-type="nav" track-metadata-position="nav - develop" track-metadata-module="primary nav" aria-label="Develop, selected" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" > Develop </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Develop" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop" track-metadata-position="nav - develop" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-dropdown android-dropdown-primary android-dropdown-ai"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Build AI experiences</li> <li class="devsite-nav-description">Build AI-powered Android apps with Gemini APIs and more. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/ai" track-type="nav" track-metadata-eventdetail="https://developer.android.com/ai" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="build ai experiences" tooltip class="button button-primary" > <div class="devsite-nav-item-title"> Get started </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-flag"> <li class="devsite-nav-title" role="heading" tooltip>Core areas</li> <li class="devsite-nav-description">Get the samples and docs for the features you need.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/samples" track-type="nav" track-metadata-eventdetail="https://developer.android.com/samples" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Samples </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quick-guides" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quick-guides" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Try Quick Guidesᵇᵉᵗᵃ </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/develop/ui" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop/ui" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> User interfaces </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/permissions/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/permissions/overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Permissions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/develop/background-work" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop/background-work" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Background work </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/data" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/data" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Data and files </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/develop#core-areas" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop#core-areas" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> All core areas ⤵️ </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-tools-2"> <li class="devsite-nav-title" role="heading" tooltip>Tools and workflow</li> <li class="devsite-nav-description">Use the IDE to write and build your app, or create your own pipeline.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/studio/write" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio/write" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Write and debug code </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/build/gradle-build-overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/build/gradle-build-overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Build projects </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/testing" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/testing" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Test your app </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/topic/performance/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/performance/overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Performance </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/tools" track-type="nav" track-metadata-eventdetail="https://developer.android.com/tools" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Command-line tools </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/reference/tools/gradle-api" track-type="nav" track-metadata-eventdetail="https://developer.android.com/reference/tools/gradle-api" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Gradle plugin API </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-multiple-screens"> <li class="devsite-nav-title" role="heading" tooltip>Device tech</li> <li class="devsite-nav-description">Write code for form factors. Connect devices and share data.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/large-screens/get-started-with-large-screens" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/large-screens/get-started-with-large-screens" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Large screens (e.g., tablets) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/wearables" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/wearables" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Wear OS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/health-and-fitness/guides" track-type="nav" track-metadata-eventdetail="https://developer.android.com/health-and-fitness/guides" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Android Health </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/connectivity/cross-device-sdk/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/connectivity/cross-device-sdk/overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Cross-device SDK </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/cars" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/cars" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Android for Cars </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/tv" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/tv" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Android TV </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/chrome-os/intro" track-type="nav" track-metadata-eventdetail="https://developer.android.com/chrome-os/intro" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> ChromeOS </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-core-library"> <li class="devsite-nav-title" role="heading" tooltip>Libraries</li> <li class="devsite-nav-description">Browse API reference documentation with all the details.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/reference/packages" track-type="nav" track-metadata-eventdetail="https://developer.android.com/reference/packages" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Android platform </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/jetpack/androidx/explorer" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/androidx/explorer" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Jetpack libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/jetpack/androidx/releases/compose" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/androidx/releases/compose" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Compose libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/android/reference/packages" track-type="nav" track-metadata-eventdetail="https://developers.google.com/android/reference/packages" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Google Play services ↗️ </div> </a> </li> <li class="devsite-nav-item"> <a href="https://play.google.com/sdks" track-type="nav" track-metadata-eventdetail="https://play.google.com/sdks" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Google Play SDK index ↗️ </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://developer.android.com/distribute" track-metadata-eventdetail="https://developer.android.com/distribute" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - google play" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Google Play" track-name="google play" > Google Play </a> </tab> <tab > <a href="https://developer.android.com/community" track-metadata-eventdetail="https://developer.android.com/community" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > Community </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Android Developers" tenant-name="Android Developers" > <form class="devsite-search-form" action="https://developer.android.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-appearance-selector></devsite-appearance-selector> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="https://developer.android.com/studio" data-category="Site-Wide Custom Events" data-label="Site header link" > Android Studio </a> <devsite-user enable-profiles id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developer.android.com/develop" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Develop </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab class="devsite-active"> <a href="https://developer.android.com/guide" track-metadata-eventdetail="https://developer.android.com/guide" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://developer.android.com/reference" track-metadata-eventdetail="https://developer.android.com/reference" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://developer.android.com/samples" track-metadata-eventdetail="https://developer.android.com/samples" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" > Samples </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="androidDevelopers" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup-dark-theme.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Android Developers"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/get-started" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Essentials" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Essentials </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials" > <span class="devsite-nav-text" tooltip menu="Essentials"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Essentials"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/design" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Design & Plan" track-name="design & plan" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Design & Plan" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Design & Plan </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Design & Plan" track-name="design & plan" > <span class="devsite-nav-text" tooltip menu="Design & Plan"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Design & Plan"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/develop" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Develop" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Develop </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" > <span class="devsite-nav-text" tooltip menu="Develop"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Develop"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/guide" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/distribute" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Google Play" track-name="google play" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Play </span> </a> </li> <li class="devsite-nav-item"> <a href="/community" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Community </span> </a> </li> <li class="devsite-nav-item"> <a href="/studio" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Studio" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android Studio </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide" ><span class="devsite-nav-text" tooltip>Developer guides</span></a></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App basics</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/get-started/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /get-started/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/get-started/overview" ><span class="devsite-nav-text" tooltip>Build your first app</span></a></li><li class="devsite-nav-item"><a href="/guide/components/fundamentals" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/fundamentals" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/fundamentals" ><span class="devsite-nav-text" tooltip>App fundamentals</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App resources</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/resources/providing-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/providing-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/providing-resources" ><span class="devsite-nav-text" tooltip>About app resources</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/runtime-changes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/runtime-changes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/runtime-changes" ><span class="devsite-nav-text" tooltip>Handle configuration changes</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Localization</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/resources/localization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/localization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/localization" ><span class="devsite-nav-text" tooltip>Localize your app</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/pseudolocales" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/pseudolocales" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/pseudolocales" ><span class="devsite-nav-text" tooltip>Test your app with pseudolocales</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/internationalization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/internationalization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/internationalization" ><span class="devsite-nav-text" tooltip>Unicode and internationalization support</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/multilingual-support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/multilingual-support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/multilingual-support" ><span class="devsite-nav-text" tooltip>Language and locale resolution</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/app-languages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/app-languages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/app-languages" ><span class="devsite-nav-text" tooltip>Per-app language preferences</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/guide/topics/resources/complex-xml-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/complex-xml-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/complex-xml-resources" ><span class="devsite-nav-text" tooltip>Complex XML resources</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Resource types</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/resources/available-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/available-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/available-resources" ><span class="devsite-nav-text" tooltip>About resource types</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/animation-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/animation-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/animation-resource" ><span class="devsite-nav-text" tooltip>Animation</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/color-list-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/color-list-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/color-list-resource" ><span class="devsite-nav-text" tooltip>Color state list</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/drawable-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/drawable-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/drawable-resource" ><span class="devsite-nav-text" tooltip>Drawable</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/layout-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/layout-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/layout-resource" ><span class="devsite-nav-text" tooltip>Layout</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/menu-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/menu-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/menu-resource" ><span class="devsite-nav-text" tooltip>Menu</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/string-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/string-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/string-resource" ><span class="devsite-nav-text" tooltip>String</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/style-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/style-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/style-resource" ><span class="devsite-nav-text" tooltip>Style</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/font-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/font-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/font-resource" ><span class="devsite-nav-text" tooltip>Font</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/resources/more-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/resources/more-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/resources/more-resources" ><span class="devsite-nav-text" tooltip>More types</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App manifest file</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/manifest/manifest-intro" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/manifest-intro" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/manifest-intro" ><span class="devsite-nav-text" tooltip>About app manifests</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/action-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/action-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/action-element" ><span class="devsite-nav-text" tooltip><action></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/activity-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/activity-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/activity-element" ><span class="devsite-nav-text" tooltip><activity></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/activity-alias-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/activity-alias-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/activity-alias-element" ><span class="devsite-nav-text" tooltip><activity-alias></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/application-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/application-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/application-element" ><span class="devsite-nav-text" tooltip><application></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/category-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/category-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/category-element" ><span class="devsite-nav-text" tooltip><category></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/compatible-screens-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/compatible-screens-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/compatible-screens-element" ><span class="devsite-nav-text" tooltip><compatible-screens></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/data-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/data-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/data-element" ><span class="devsite-nav-text" tooltip><data></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/grant-uri-permission-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/grant-uri-permission-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/grant-uri-permission-element" ><span class="devsite-nav-text" tooltip><grant-uri-permission></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/instrumentation-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/instrumentation-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/instrumentation-element" ><span class="devsite-nav-text" tooltip><instrumentation></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/intent-filter-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/intent-filter-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/intent-filter-element" ><span class="devsite-nav-text" tooltip><intent-filter></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/layout-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/layout-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/layout-element" ><span class="devsite-nav-text" tooltip><layout></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/manifest-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/manifest-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/manifest-element" ><span class="devsite-nav-text" tooltip><manifest></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/meta-data-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/meta-data-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/meta-data-element" ><span class="devsite-nav-text" tooltip><meta-data></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/path-permission-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/path-permission-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/path-permission-element" ><span class="devsite-nav-text" tooltip><path-permission></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/permission-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/permission-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/permission-element" ><span class="devsite-nav-text" tooltip><permission></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/permission-group-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/permission-group-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/permission-group-element" ><span class="devsite-nav-text" tooltip><permission-group></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/permission-tree-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/permission-tree-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/permission-tree-element" ><span class="devsite-nav-text" tooltip><permission-tree></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/profileable-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/profileable-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/profileable-element" ><span class="devsite-nav-text" tooltip><profileable></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/property-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/property-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/property-element" ><span class="devsite-nav-text" tooltip><property></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/provider-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/provider-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/provider-element" ><span class="devsite-nav-text" tooltip><provider></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/queries-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/queries-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/queries-element" ><span class="devsite-nav-text" tooltip><queries></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/receiver-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/receiver-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/receiver-element" ><span class="devsite-nav-text" tooltip><receiver></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/service-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/service-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/service-element" ><span class="devsite-nav-text" tooltip><service></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/supports-gl-texture-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/supports-gl-texture-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/supports-gl-texture-element" ><span class="devsite-nav-text" tooltip><supports-gl-texture></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/supports-screens-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/supports-screens-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/supports-screens-element" ><span class="devsite-nav-text" tooltip><supports-screens></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/uses-configuration-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/uses-configuration-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/uses-configuration-element" ><span class="devsite-nav-text" tooltip><uses-configuration></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/uses-feature-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/uses-feature-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/uses-feature-element" ><span class="devsite-nav-text" tooltip><uses-feature></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/uses-library-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/uses-library-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/uses-library-element" ><span class="devsite-nav-text" tooltip><uses-library></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/uses-native-library-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/uses-native-library-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/uses-native-library-element" ><span class="devsite-nav-text" tooltip><uses-native-library></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/uses-permission-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/uses-permission-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/uses-permission-element" ><span class="devsite-nav-text" tooltip><uses-permission></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/uses-permission-sdk-23-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/uses-permission-sdk-23-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/uses-permission-sdk-23-element" ><span class="devsite-nav-text" tooltip><uses-permission-sdk-23></span></a></li><li class="devsite-nav-item"><a href="/guide/topics/manifest/uses-sdk-element" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/manifest/uses-sdk-element" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/manifest/uses-sdk-element" ><span class="devsite-nav-text" tooltip><uses-sdk></span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Devices</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Device compatibility</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/practices/compatibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/practices/compatibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/practices/compatibility" ><span class="devsite-nav-text" tooltip>About device compatibility</span></a></li><li class="devsite-nav-item"><a href="/guide/practices/screens_support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/practices/screens_support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/practices/screens_support" ><span class="devsite-nav-text" tooltip>About screen compatibility</span></a></li><li class="devsite-nav-item"><a href="/guide/practices/device-compatibility-mode" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/practices/device-compatibility-mode" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/practices/device-compatibility-mode" ><span class="devsite-nav-text" tooltip>Device compatibility mode</span></a></li><li class="devsite-nav-item"><a href="/training/multiscreen/screendensities" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/multiscreen/screendensities" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/multiscreen/screendensities" ><span class="devsite-nav-text" tooltip>Support different pixel densities</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Multiple APK support</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/google/play/publishing/multiple-apks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/publishing/multiple-apks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/publishing/multiple-apks" ><span class="devsite-nav-text" tooltip>About multiple APKs</span></a></li><li class="devsite-nav-item"><a href="/training/multiple-apks/api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/multiple-apks/api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/multiple-apks/api" ><span class="devsite-nav-text" tooltip>Create multiple APKs for different API levels</span></a></li><li class="devsite-nav-item"><a href="/training/multiple-apks/screensize" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/multiple-apks/screensize" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/multiple-apks/screensize" ><span class="devsite-nav-text" tooltip>Create multiple APKs for different screen sizes</span></a></li><li class="devsite-nav-item"><a href="/training/multiple-apks/texture" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/multiple-apks/texture" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/multiple-apks/texture" ><span class="devsite-nav-text" tooltip>Create multiple APKs for different GL textures</span></a></li><li class="devsite-nav-item"><a href="/training/multiple-apks/multiple" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/multiple-apks/multiple" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/multiple-apks/multiple" ><span class="devsite-nav-text" tooltip>Create multiple APKs with several dimensions</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/basics/supporting-devices/languages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/basics/supporting-devices/languages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/basics/supporting-devices/languages" ><span class="devsite-nav-text" tooltip>Support different languages and cultures</span></a></li><li class="devsite-nav-item"><a href="/training/basics/supporting-devices/platforms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/basics/supporting-devices/platforms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/basics/supporting-devices/platforms" ><span class="devsite-nav-text" tooltip>Support different platform versions</span></a></li><li class="devsite-nav-item"><a href="/google/play/filters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/filters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/filters" ><span class="devsite-nav-text" tooltip>Filters on Google Play</span></a></li><li class="devsite-nav-item"><a href="/google/play/requirements/64-bit" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/requirements/64-bit" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/requirements/64-bit" ><span class="devsite-nav-text" tooltip>64-bit Support</span></a></li><li class="devsite-nav-item"><a href="/guide/practices/page-sizes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/practices/page-sizes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/practices/page-sizes" ><span class="devsite-nav-text" tooltip>Support 16 KB page sizes</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Large screens — tablets, foldables, ChromeOS</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/large-screens" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens" ><span class="devsite-nav-text" tooltip>Get started with large screens</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Large screen ready</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/large-screens/tier_3_overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/tier_3_overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/tier_3_overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/configuration_and_continuity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/configuration_and_continuity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/configuration_and_continuity" ><span class="devsite-nav-text" tooltip>Configuration and continuity</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/camera_preview_and_media_projection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/camera_preview_and_media_projection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/camera_preview_and_media_projection" ><span class="devsite-nav-text" tooltip>Camera preview and media projection</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/multi-window_mode_and_multi-resume" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/multi-window_mode_and_multi-resume" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/multi-window_mode_and_multi-resume" ><span class="devsite-nav-text" tooltip>Multi-window mode and multi-resume</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/input-compatibility-large-screens" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/input-compatibility-large-screens" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/input-compatibility-large-screens" ><span class="devsite-nav-text" tooltip>Input compatibility on large screens</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Large screen optimized</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/large-screens/tier_2_overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/tier_2_overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/tier_2_overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/ux" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/ux" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/ux" ><span class="devsite-nav-text" tooltip>UX</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/migrate-to-responsive-layouts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/migrate-to-responsive-layouts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/migrate-to-responsive-layouts" ><span class="devsite-nav-text" tooltip>Migrate your UI to responsive layouts</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Large screen differentiated</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/large-screens/tier_1_overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/tier_1_overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/tier_1_overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/foldable-postures-and-states" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/foldable-postures-and-states" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/foldable-postures-and-states" ><span class="devsite-nav-text" tooltip>Foldable postures and states</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/create-a-note-taking-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/create-a-note-taking-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/create-a-note-taking-app" ><span class="devsite-nav-text" tooltip>Create a note-taking app</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/support-advanced-stylus-features" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/support-advanced-stylus-features" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/support-advanced-stylus-features" ><span class="devsite-nav-text" tooltip>Support advanced stylus features</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/guide/topics/large-screens/large-screen-cookbook" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/large-screens/large-screen-cookbook" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/large-screens/large-screen-cookbook" ><span class="devsite-nav-text" tooltip>Large screen cookbook</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/wearables" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/wearables" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/wearables" ><span class="devsite-nav-text" tooltip>Wear OS ⍈</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android TV</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv" ><span class="devsite-nav-text" tooltip>In this guide</span></a></li><li class="devsite-nav-item"><a href="/design/ui/tv" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /design/ui/tv" track-type="bookNav" track-name="click" track-metadata-eventdetail="/design/ui/tv" ><span class="devsite-nav-text" tooltip>Design TV UI ⍈</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Getting started</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/get-started" ><span class="devsite-nav-text" tooltip>In this guide</span></a></li><li class="devsite-nav-item"><a href="/training/tv/get-started/create" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/get-started/create" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/get-started/create" ><span class="devsite-nav-text" tooltip>Create and run a TV app</span></a></li><li class="devsite-nav-item"><a href="/training/tv/get-started/hardware" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/get-started/hardware" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/get-started/hardware" ><span class="devsite-nav-text" tooltip>Handle TV hardware</span></a></li><li class="devsite-nav-item"><a href="/training/tv/get-started/controllers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/get-started/controllers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/get-started/controllers" ><span class="devsite-nav-text" tooltip>Manage TV controllers</span></a></li><li class="devsite-nav-item"><a href="/training/tv/get-started/onscreen-keyboard" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/get-started/onscreen-keyboard" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/get-started/onscreen-keyboard" ><span class="devsite-nav-text" tooltip>On-screen keyboard</span></a></li><li class="devsite-nav-item"><a href="/training/tv/get-started/navigation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/get-started/navigation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/get-started/navigation" ><span class="devsite-nav-text" tooltip>Create TV navigation</span></a></li><li class="devsite-nav-item"><a href="/training/tv/get-started/multitasking" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/get-started/multitasking" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/get-started/multitasking" ><span class="devsite-nav-text" tooltip>Multitasking on TV</span></a></li><li class="devsite-nav-item"><a href="/training/tv/get-started/google-tv" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/get-started/google-tv" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/get-started/google-tv" ><span class="devsite-nav-text" tooltip>Best practices for driving engagement on Google TV</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build TV playback apps</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/playback" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback" ><span class="devsite-nav-text" tooltip>In this guide</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Building UI with Compose</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/playback/compose" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/compose" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/compose" ><span class="devsite-nav-text" tooltip>In this guide</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/compose/browse" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/compose/browse" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/compose/browse" ><span class="devsite-nav-text" tooltip>Create a catalog browser</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/compose/details" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/compose/details" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/compose/details" ><span class="devsite-nav-text" tooltip>Build a details screen</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Building UI with the Leanback UI toolkit (discouraged)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/playback/leanback" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/leanback" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/leanback" ><span class="devsite-nav-text" tooltip>In this guide</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/leanback/browse" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/leanback/browse" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/leanback/browse" ><span class="devsite-nav-text" tooltip>Create a catalog browser</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/leanback/card" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/leanback/card" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/leanback/card" ><span class="devsite-nav-text" tooltip>Provide a card view</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/leanback/details" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/leanback/details" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/leanback/details" ><span class="devsite-nav-text" tooltip>Build a details view</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/leanback/transport-controls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/leanback/transport-controls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/leanback/transport-controls" ><span class="devsite-nav-text" tooltip>Use transport controls</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/leanback/onboarding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/leanback/onboarding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/leanback/onboarding" ><span class="devsite-nav-text" tooltip>Introduce first-time users to your app</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/leanback/guided-step" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/leanback/guided-step" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/leanback/guided-step" ><span class="devsite-nav-text" tooltip>Add a guided step</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/leanback/layouts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/leanback/layouts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/leanback/layouts" ><span class="devsite-nav-text" tooltip>Build TV layouts</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/leanback/migrate-to-compose" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/leanback/migrate-to-compose" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/leanback/migrate-to-compose" ><span class="devsite-nav-text" tooltip>Migrate to Compose for TV</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/tv/playback/ambient-mode" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/ambient-mode" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/ambient-mode" ><span class="devsite-nav-text" tooltip>Ambient mode</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/controls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/controls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/controls" ><span class="devsite-nav-text" tooltip>Playback controls on TV</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/media-session" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/media-session" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/media-session" ><span class="devsite-nav-text" tooltip>Implement a media session</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/now-playing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/now-playing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/now-playing" ><span class="devsite-nav-text" tooltip>Background playback in a Now Playing card</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/audio-capabilities" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/audio-capabilities" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/audio-capabilities" ><span class="devsite-nav-text" tooltip>Audio capabilities</span></a></li><li class="devsite-nav-item"><a href="/training/tv/playback/framerate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/playback/framerate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/playback/framerate" ><span class="devsite-nav-text" tooltip>Match content frame rate</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Help users find content on TV</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/discovery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery" ><span class="devsite-nav-text" tooltip>About finding TV content</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Recommend TV content</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/discovery/recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/recommendations" ><span class="devsite-nav-text" tooltip>About recommending TV content</span></a></li><li class="devsite-nav-item"><a href="/training/tv/discovery/recommendations-channel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/recommendations-channel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/recommendations-channel" ><span class="devsite-nav-text" tooltip>Channels on the home screen</span></a></li><li class="devsite-nav-item"><a href="/training/tv/discovery/video-programs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/video-programs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/video-programs" ><span class="devsite-nav-text" tooltip>Video program attributes</span></a></li><li class="devsite-nav-item"><a href="/training/tv/discovery/audio-programs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/audio-programs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/audio-programs" ><span class="devsite-nav-text" tooltip>Audio program attributes</span></a></li><li class="devsite-nav-item"><a href="/training/tv/discovery/game-programs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/game-programs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/game-programs" ><span class="devsite-nav-text" tooltip>Game program attributes</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Watch Next</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/discovery/watch-next-add-programs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/watch-next-add-programs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/watch-next-add-programs" ><span class="devsite-nav-text" tooltip>Add programs</span></a></li><li class="devsite-nav-item"><a href="/training/tv/discovery/watch-next-programs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/watch-next-programs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/watch-next-programs" ><span class="devsite-nav-text" tooltip>Attributes</span></a></li><li class="devsite-nav-item"><a href="/training/tv/discovery/guidelines-app-developers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/guidelines-app-developers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/guidelines-app-developers" ><span class="devsite-nav-text" tooltip>Guidelines for app developers</span></a></li><li class="devsite-nav-item"><a href="/training/tv/discovery/guidelines-tv-providers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/guidelines-tv-providers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/guidelines-tv-providers" ><span class="devsite-nav-text" tooltip>Guidelines for TV providers</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/tv/discovery/preview-videos" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/preview-videos" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/preview-videos" ><span class="devsite-nav-text" tooltip>Preview videos</span></a></li><li class="devsite-nav-item"><a href="/training/tv/discovery/recommendations-row" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/recommendations-row" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/recommendations-row" ><span class="devsite-nav-text" tooltip>Recommendations in Android N and earlier</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/tv/discovery/searchable" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/searchable" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/searchable" ><span class="devsite-nav-text" tooltip>Make TV apps searchable</span></a></li><li class="devsite-nav-item"><a href="/training/tv/discovery/in-app-search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/discovery/in-app-search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/discovery/in-app-search" ><span class="devsite-nav-text" tooltip>Search within TV Apps</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build TV games</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/games" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/games" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/games" ><span class="devsite-nav-text" tooltip>About TV games</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build TV input services</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/tif" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/tif" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/tif" ><span class="devsite-nav-text" tooltip>About TV input services</span></a></li><li class="devsite-nav-item"><a href="/training/tv/tif/tvinput" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/tif/tvinput" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/tif/tvinput" ><span class="devsite-nav-text" tooltip>Develop a TV input service</span></a></li><li class="devsite-nav-item"><a href="/training/tv/tif/channel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/tif/channel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/tif/channel" ><span class="devsite-nav-text" tooltip>Work with channel data</span></a></li><li class="devsite-nav-item"><a href="/training/tv/tif/ui" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/tif/ui" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/tif/ui" ><span class="devsite-nav-text" tooltip>Manage TV user interaction</span></a></li><li class="devsite-nav-item"><a href="/training/tv/tif/time-shifting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/tif/time-shifting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/tif/time-shifting" ><span class="devsite-nav-text" tooltip>Support time-shifting</span></a></li><li class="devsite-nav-item"><a href="/training/tv/tif/content-recording" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/tif/content-recording" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/tif/content-recording" ><span class="devsite-nav-text" tooltip>Support content recording</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>TV Accessibility</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/tv/accessibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/accessibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/accessibility" ><span class="devsite-nav-text" tooltip>Accessibility best practices</span></a></li><li class="devsite-nav-item"><a href="/training/tv/accessibility/talkback" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/accessibility/talkback" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/accessibility/talkback" ><span class="devsite-nav-text" tooltip>TalkBack evaluation examples</span></a></li><li class="devsite-nav-item"><a href="/training/tv/accessibility/talkback-support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/accessibility/talkback-support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/accessibility/talkback-support" ><span class="devsite-nav-text" tooltip>Support TalkBack in TV apps</span></a></li><li class="devsite-nav-item"><a href="/training/tv/accessibility/system-caption-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/accessibility/system-caption-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/accessibility/system-caption-settings" ><span class="devsite-nav-text" tooltip>Adopt system caption settings</span></a></li><li class="devsite-nav-item"><a href="/training/tv/accessibility/custom-views" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/accessibility/custom-views" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/accessibility/custom-views" ><span class="devsite-nav-text" tooltip>Custom view accessibility support</span></a></li><li class="devsite-nav-item"><a href="/training/tv/accessibility/custom-views-sample" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/accessibility/custom-views-sample" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/accessibility/custom-views-sample" ><span class="devsite-nav-text" tooltip>Custom view accessibility sample</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/tv/publishing/checklist" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/publishing/checklist" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/publishing/checklist" ><span class="devsite-nav-text" tooltip>TV Apps checklist</span></a></li><li class="devsite-nav-item"><a href="/training/tv/publishing/distribute" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/tv/publishing/distribute" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/tv/publishing/distribute" ><span class="devsite-nav-text" tooltip>Distribute to Android TV</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Releases</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/tv/release/12" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /tv/release/12" track-type="bookNav" track-name="click" track-metadata-eventdetail="/tv/release/12" ><span class="devsite-nav-text" tooltip>Android 12 for TV</span></a></li><li class="devsite-nav-item"><a href="/tv/release/13" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /tv/release/13" track-type="bookNav" track-name="click" track-metadata-eventdetail="/tv/release/13" ><span class="devsite-nav-text" tooltip>Android 13 for TV</span></a></li><li class="devsite-nav-item"><a href="/tv/release/14" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /tv/release/14" track-type="bookNav" track-name="click" track-metadata-eventdetail="/tv/release/14" ><span class="devsite-nav-text" tooltip>Android 14 for TV</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android for Cars</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/cars" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars" ><span class="devsite-nav-text" tooltip>About Android for Cars</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/training/cars/whats-new" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/whats-new" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/whats-new" ><span class="devsite-nav-text" tooltip>What's new</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="/docs/quality-guidelines/car-app-quality" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/quality-guidelines/car-app-quality" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/quality-guidelines/car-app-quality" ><span class="devsite-nav-text" tooltip>Car app quality</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build media apps for cars</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/cars/media" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/media" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/media" ><span class="devsite-nav-text" tooltip>Build media apps for cars</span></a></li><li class="devsite-nav-item"><a href="/training/cars/media/auto" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/media/auto" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/media/auto" ><span class="devsite-nav-text" tooltip>Add support for Android Auto</span></a></li><li class="devsite-nav-item"><a href="/training/cars/media/automotive-os" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/media/automotive-os" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/media/automotive-os" ><span class="devsite-nav-text" tooltip>Add support for Android Automotive OS</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/cars/messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/messaging" ><span class="devsite-nav-text" tooltip>Build messaging apps for Android Auto</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build point of interest, internet of things, and navigation apps for cars</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/cars/apps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/apps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/apps" ><span class="devsite-nav-text" tooltip>Using the Android for Cars App Library</span></a></li><li class="devsite-nav-item"><a href="/training/cars/apps/poi" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/apps/poi" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/apps/poi" ><span class="devsite-nav-text" tooltip>Build point of interest apps for cars</span></a></li><li class="devsite-nav-item"><a href="/training/cars/apps/iot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/apps/iot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/apps/iot" ><span class="devsite-nav-text" tooltip>Build internet of things apps for cars</span></a></li><li class="devsite-nav-item"><a href="/training/cars/apps/navigation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/apps/navigation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/apps/navigation" ><span class="devsite-nav-text" tooltip>Build navigation apps for cars</span></a></li><li class="devsite-nav-item"><a href="/training/cars/apps/coarse-location" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/apps/coarse-location" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/apps/coarse-location" ><span class="devsite-nav-text" tooltip>Get coarse location</span></a></li><li class="devsite-nav-item"><a href="/training/cars/apps/auto" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/apps/auto" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/apps/auto" ><span class="devsite-nav-text" tooltip>Add support for Android Auto</span></a></li><li class="devsite-nav-item"><a href="/training/cars/apps/automotive-os" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/apps/automotive-os" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/apps/automotive-os" ><span class="devsite-nav-text" tooltip>Add support for Android Automotive OS</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build parked apps for Android Automotive OS</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/cars/parked" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/parked" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/parked" ><span class="devsite-nav-text" tooltip>About parked apps</span></a></li><li class="devsite-nav-item"><a href="/training/cars/parked/video" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/parked/video" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/parked/video" ><span class="devsite-nav-text" tooltip>Build video apps</span></a></li><li class="devsite-nav-item"><a href="/training/cars/parked/games" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/parked/games" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/parked/games" ><span class="devsite-nav-text" tooltip>Build games</span></a></li><li class="devsite-nav-item"><a href="/training/cars/parked/browser" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/parked/browser" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/parked/browser" ><span class="devsite-nav-text" tooltip>Build browsers</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Test Android apps for cars</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/cars/testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/testing" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/training/cars/testing/dhu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/testing/dhu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/testing/dhu" ><span class="devsite-nav-text" tooltip>Test using the Desktop Head Unit</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Test using the Android Automotive OS emulator</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/cars/testing/emulator" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/testing/emulator" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/testing/emulator" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/training/cars/testing/emulator/distant-display" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/testing/emulator/distant-display" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/testing/emulator/distant-display" ><span class="devsite-nav-text" tooltip>Test using the distant display emulator</span></a></li><li class="devsite-nav-item"><a href="/training/cars/testing/emulator/configurable" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/testing/emulator/configurable" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/testing/emulator/configurable" ><span class="devsite-nav-text" tooltip>Test using the configurable emulator</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-preview"><a href="/training/cars/testing/aaos-on-pixel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/testing/aaos-on-pixel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/testing/aaos-on-pixel" ><span class="devsite-nav-text" tooltip>Test using Android Automotive OS on Pixel Tablet</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-preview"><a href="/training/cars/car-ready-mobile-apps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/car-ready-mobile-apps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/car-ready-mobile-apps" ><span class="devsite-nav-text" tooltip>Car ready mobile apps</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/training/cars/distribute" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/distribute" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/distribute" ><span class="devsite-nav-text" tooltip>Distribute Android apps for cars</span></a></li><li class="devsite-nav-item"><a href="/training/cars/google-services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/google-services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/google-services" ><span class="devsite-nav-text" tooltip>Google Play services for cars</span></a></li><li class="devsite-nav-item"><a href="/training/cars/notifications" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/cars/notifications" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/cars/notifications" ><span class="devsite-nav-text" tooltip>Notifications on Android Automotive OS</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>ChromeOS devices</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/chrome-os/intro" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /chrome-os/intro" track-type="bookNav" track-name="click" track-metadata-eventdetail="/chrome-os/intro" ><span class="devsite-nav-text" tooltip>About ChromeOS</span></a></li><li class="devsite-nav-item"><a href="/topic/arc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc" ><span class="devsite-nav-text" tooltip>Building apps for ChromeOS</span></a></li><li class="devsite-nav-item"><a href="/topic/arc/optimizing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc/optimizing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc/optimizing" ><span class="devsite-nav-text" tooltip>Optimizing Apps for ChromeOS</span></a></li><li class="devsite-nav-item"><a href="/topic/arc/development-environment" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc/development-environment" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc/development-environment" ><span class="devsite-nav-text" tooltip>Preparing your development environment</span></a></li><li class="devsite-nav-item"><a href="/topic/arc/manifest" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc/manifest" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc/manifest" ><span class="devsite-nav-text" tooltip>App Manifest Compatibility for Chromebooks</span></a></li><li class="devsite-nav-item"><a href="/topic/arc/device-support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc/device-support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc/device-support" ><span class="devsite-nav-text" tooltip>ChromeOS Device Support for Apps</span></a></li><li class="devsite-nav-item"><a href="/topic/arc/differences" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc/differences" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc/differences" ><span class="devsite-nav-text" tooltip>App Rendering Differences on Chromebooks</span></a></li><li class="devsite-nav-item"><a href="/topic/arc/window-management" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc/window-management" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc/window-management" ><span class="devsite-nav-text" tooltip>Window management</span></a></li><li class="devsite-nav-item"><a href="/topic/arc/adapting-games" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc/adapting-games" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc/adapting-games" ><span class="devsite-nav-text" tooltip>Adapting Games on ChromeOS</span></a></li><li class="devsite-nav-item"><a href="/topic/arc/animation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc/animation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc/animation" ><span class="devsite-nav-text" tooltip>Smooth animation on ChromeOS</span></a></li><li class="devsite-nav-item"><a href="/topic/arc/tests" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/arc/tests" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/arc/tests" ><span class="devsite-nav-text" tooltip>Test Cases for Android Apps on ChromeOS</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Cross device SDK</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/connectivity/cross-device-sdk/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/connectivity/cross-device-sdk/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/connectivity/cross-device-sdk/overview" ><span class="devsite-nav-text" tooltip>About the Cross device SDK</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/connectivity/cross-device-sdk/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/connectivity/cross-device-sdk/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/connectivity/cross-device-sdk/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/connectivity/cross-device-sdk/device-discovery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/connectivity/cross-device-sdk/device-discovery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/connectivity/cross-device-sdk/device-discovery" ><span class="devsite-nav-text" tooltip>Device discovery API</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/connectivity/cross-device-sdk/secure-connection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/connectivity/cross-device-sdk/secure-connection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/connectivity/cross-device-sdk/secure-connection" ><span class="devsite-nav-text" tooltip>Secure connection API</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/connectivity/cross-device-sdk/sessions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/connectivity/cross-device-sdk/sessions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/connectivity/cross-device-sdk/sessions" ><span class="devsite-nav-text" tooltip>Sessions API</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/connectivity/cross-device-sdk/testing-debugging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/connectivity/cross-device-sdk/testing-debugging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/connectivity/cross-device-sdk/testing-debugging" ><span class="devsite-nav-text" tooltip>Test and debug</span></a></li><li class="devsite-nav-item"><a href="/reference/crossdevice/packages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /reference/crossdevice/packages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/reference/crossdevice/packages" ><span class="devsite-nav-text" tooltip>API Reference</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/develop/devices/assistant/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/devices/assistant/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/devices/assistant/overview" ><span class="devsite-nav-text" tooltip>Google Assistant ⍈</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android (Go edition)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/androidgo" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/androidgo" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/androidgo" ><span class="devsite-nav-text" tooltip>About Android Go edition</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/androidgo/develop" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/androidgo/develop" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/androidgo/develop" ><span class="devsite-nav-text" tooltip>Develop for Android (Go edition)</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/androidgo/test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/androidgo/test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/androidgo/test" ><span class="devsite-nav-text" tooltip>Test Android Go apps</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Optimize for Android (Go edition)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/androidgo/optimize" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/androidgo/optimize" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/androidgo/optimize" ><span class="devsite-nav-text" tooltip>Approach</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/androidgo/optimize-memory" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/androidgo/optimize-memory" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/androidgo/optimize-memory" ><span class="devsite-nav-text" tooltip>Optimize app memory</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/androidgo/optimize-startup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/androidgo/optimize-startup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/androidgo/optimize-startup" ><span class="devsite-nav-text" tooltip>Improve startup latency</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/androidgo/optimize-size" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/androidgo/optimize-size" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/androidgo/optimize-size" ><span class="devsite-nav-text" tooltip>Reduce app size</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/guide/topics/androidgo/best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/androidgo/best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/androidgo/best-practices" ><span class="devsite-nav-text" tooltip>Best practices</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App architecture</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/architecture/intro" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture/intro" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture/intro" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Guide to app architecture</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/architecture" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture" ><span class="devsite-nav-text" tooltip>About app architecture</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>UI layer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/architecture/ui-layer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture/ui-layer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture/ui-layer" ><span class="devsite-nav-text" tooltip>About the UI layer</span></a></li><li class="devsite-nav-item"><a href="/topic/architecture/ui-layer/events" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture/ui-layer/events" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture/ui-layer/events" ><span class="devsite-nav-text" tooltip>UI events</span></a></li><li class="devsite-nav-item"><a href="/topic/architecture/ui-layer/stateholders" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture/ui-layer/stateholders" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture/ui-layer/stateholders" ><span class="devsite-nav-text" tooltip>State holders and UI state</span></a></li><li class="devsite-nav-item"><a href="/topic/architecture/ui-layer/state-production" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture/ui-layer/state-production" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture/ui-layer/state-production" ><span class="devsite-nav-text" tooltip>State production</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/topic/architecture/domain-layer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture/domain-layer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture/domain-layer" ><span class="devsite-nav-text" tooltip>Domain layer</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Data layer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/architecture/data-layer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture/data-layer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture/data-layer" ><span class="devsite-nav-text" tooltip>About the data layer</span></a></li><li class="devsite-nav-item"><a href="/topic/architecture/data-layer/offline-first" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture/data-layer/offline-first" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture/data-layer/offline-first" ><span class="devsite-nav-text" tooltip>Offline first</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/topic/architecture/recommendations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/architecture/recommendations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/architecture/recommendations" ><span class="devsite-nav-text" tooltip>Architecture recommendations</span></a></li><li class="devsite-nav-item"><a href="/courses/pathways/android-architecture" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /courses/pathways/android-architecture" track-type="bookNav" track-name="click" track-metadata-eventdetail="/courses/pathways/android-architecture" ><span class="devsite-nav-text" tooltip>Learning pathway</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Modularization</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/modularization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/modularization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/modularization" ><span class="devsite-nav-text" tooltip>About modularization</span></a></li><li class="devsite-nav-item"><a href="/topic/modularization/patterns" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/modularization/patterns" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/modularization/patterns" ><span class="devsite-nav-text" tooltip>Common patterns</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Recipes</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation/navigation-multi-module" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/navigation-multi-module" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/navigation-multi-module" ><span class="devsite-nav-text" tooltip>Navigation</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Architecture components</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>UI layer libraries</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>View binding</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/view-binding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/view-binding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/view-binding" ><span class="devsite-nav-text" tooltip>About view binding</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/view-binding/migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/view-binding/migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/view-binding/migration" ><span class="devsite-nav-text" tooltip>Migrate from Kotlin synthetics to view binding</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Data binding library</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/data-binding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/data-binding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/data-binding" ><span class="devsite-nav-text" tooltip>About data binding</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/data-binding/start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/data-binding/start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/data-binding/start" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/data-binding/expressions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/data-binding/expressions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/data-binding/expressions" ><span class="devsite-nav-text" tooltip>Layouts and binding expressions</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/data-binding/observability" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/data-binding/observability" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/data-binding/observability" ><span class="devsite-nav-text" tooltip>Work with observable data objects</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/data-binding/generated-binding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/data-binding/generated-binding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/data-binding/generated-binding" ><span class="devsite-nav-text" tooltip>Generated binding classes</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/data-binding/binding-adapters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/data-binding/binding-adapters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/data-binding/binding-adapters" ><span class="devsite-nav-text" tooltip>Binding adapters</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/data-binding/architecture" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/data-binding/architecture" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/data-binding/architecture" ><span class="devsite-nav-text" tooltip>Bind layout views to Architecture Components</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/data-binding/two-way" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/data-binding/two-way" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/data-binding/two-way" ><span class="devsite-nav-text" tooltip>Two-way data binding</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Lifecycle-aware components</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Lifecycles</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/architecture/lifecycle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/lifecycle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/lifecycle" ><span class="devsite-nav-text" tooltip>Handle lifecycles</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/compose" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/compose" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/compose" ><span class="devsite-nav-text" tooltip>Integrate with Compose</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>ViewModel</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/architecture/viewmodel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/viewmodel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/viewmodel" ><span class="devsite-nav-text" tooltip>About ViewModel</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/viewmodel/viewmodel-factories" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/viewmodel/viewmodel-factories" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/viewmodel/viewmodel-factories" ><span class="devsite-nav-text" tooltip>Create ViewModels with dependencies</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/viewmodel/viewmodel-apis" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/viewmodel/viewmodel-apis" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/viewmodel/viewmodel-apis" ><span class="devsite-nav-text" tooltip>ViewModel Scoping APIs</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/viewmodel/viewmodel-savedstate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/viewmodel/viewmodel-savedstate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/viewmodel/viewmodel-savedstate" ><span class="devsite-nav-text" tooltip>Saved State module for ViewModel</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/viewmodel/viewmodel-cheatsheet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/viewmodel/viewmodel-cheatsheet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/viewmodel/viewmodel-cheatsheet" ><span class="devsite-nav-text" tooltip>ViewModel APIs cheat sheet</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/livedata" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/livedata" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/livedata" ><span class="devsite-nav-text" tooltip>LiveData</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/saving-states" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/saving-states" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/saving-states" ><span class="devsite-nav-text" tooltip>Save UI states</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/coroutines" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/coroutines" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/coroutines" ><span class="devsite-nav-text" tooltip>Use Kotlin coroutines with lifecycle-aware components</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Paging Library</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging/v3-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging/v3-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging/v3-overview" ><span class="devsite-nav-text" tooltip>About paging</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging/v3-paged-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging/v3-paged-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging/v3-paged-data" ><span class="devsite-nav-text" tooltip>Load and display paged data</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging/v3-network-db" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging/v3-network-db" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging/v3-network-db" ><span class="devsite-nav-text" tooltip>Page from network and database</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging/v3-transform" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging/v3-transform" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging/v3-transform" ><span class="devsite-nav-text" tooltip>Transform data streams</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging/load-state" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging/load-state" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging/load-state" ><span class="devsite-nav-text" tooltip>Manage and present loading states</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging/test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging/test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging/test" ><span class="devsite-nav-text" tooltip>Test your Paging implementation</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging/v3-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging/v3-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging/v3-migration" ><span class="devsite-nav-text" tooltip>Migrate to Paging 3</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Paging 2</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging" ><span class="devsite-nav-text" tooltip>About Paging 2</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging/ui" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging/ui" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging/ui" ><span class="devsite-nav-text" tooltip>Display paged lists</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/paging/data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/paging/data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/paging/data" ><span class="devsite-nav-text" tooltip>Load paged data</span></a></li></ul></div></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Data layer libraries</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/architecture/datastore" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/datastore" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/datastore" ><span class="devsite-nav-text" tooltip>DataStore</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>WorkManager</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager" ><span class="devsite-nav-text" tooltip>About WorkManager</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/basics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/basics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/basics" ><span class="devsite-nav-text" tooltip>Getting Started</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>How-To Guides</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/how-to/define-work" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/how-to/define-work" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/how-to/define-work" ><span class="devsite-nav-text" tooltip>Defining your WorkRequests</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/how-to/states-and-observation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/how-to/states-and-observation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/how-to/states-and-observation" ><span class="devsite-nav-text" tooltip>Work states</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/how-to/managing-work" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/how-to/managing-work" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/how-to/managing-work" ><span class="devsite-nav-text" tooltip>Managing work</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/how-to/intermediate-progress" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/how-to/intermediate-progress" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/how-to/intermediate-progress" ><span class="devsite-nav-text" tooltip>Observing intermediate Worker progress</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/how-to/chain-work" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/how-to/chain-work" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/how-to/chain-work" ><span class="devsite-nav-text" tooltip>Chaining work together</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/how-to/testing-worker-impl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/how-to/testing-worker-impl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/how-to/testing-worker-impl" ><span class="devsite-nav-text" tooltip>Testing Worker implementation</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/how-to/integration-testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/how-to/integration-testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/how-to/integration-testing" ><span class="devsite-nav-text" tooltip>Integration tests with WorkManager</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/how-to/debugging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/how-to/debugging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/how-to/debugging" ><span class="devsite-nav-text" tooltip>Debugging WorkManager</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Advanced Concepts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/advanced/custom-configuration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/advanced/custom-configuration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/advanced/custom-configuration" ><span class="devsite-nav-text" tooltip>Configuration and Initialization</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Threading in WorkManager</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/advanced/threading" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/advanced/threading" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/advanced/threading" ><span class="devsite-nav-text" tooltip>About threading in WorkManager</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/advanced/worker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/advanced/worker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/advanced/worker" ><span class="devsite-nav-text" tooltip>Threading in Worker</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/advanced/coroutineworker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/advanced/coroutineworker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/advanced/coroutineworker" ><span class="devsite-nav-text" tooltip>Threading in CoroutineWorker</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/advanced/rxworker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/advanced/rxworker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/advanced/rxworker" ><span class="devsite-nav-text" tooltip>Threading in RxWorker</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/advanced/listenableworker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/advanced/listenableworker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/advanced/listenableworker" ><span class="devsite-nav-text" tooltip>Threading in ListenableWorker</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/advanced/long-running" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/advanced/long-running" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/advanced/long-running" ><span class="devsite-nav-text" tooltip>Support for long-running workers</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/migrating-fb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/migrating-fb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/migrating-fb" ><span class="devsite-nav-text" tooltip>Migrating from Firebase JobDispatcher</span></a></li><li class="devsite-nav-item"><a href="/topic/libraries/architecture/workmanager/migrating-gcm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/architecture/workmanager/migrating-gcm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/architecture/workmanager/migrating-gcm" ><span class="devsite-nav-text" tooltip>Migrating from GCMNetworkManager</span></a></li></ul></div></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App entry points</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Activities</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/components/activities/intro-activities" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/activities/intro-activities" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/activities/intro-activities" ><span class="devsite-nav-text" tooltip>Introduction to activities</span></a></li><li class="devsite-nav-item"><a href="/guide/components/activities/activity-lifecycle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/activities/activity-lifecycle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/activities/activity-lifecycle" ><span class="devsite-nav-text" tooltip>The activity lifecycle</span></a></li><li class="devsite-nav-item"><a href="/guide/components/activities/state-changes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/activities/state-changes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/activities/state-changes" ><span class="devsite-nav-text" tooltip>Activity state changes</span></a></li><li class="devsite-nav-item"><a href="/guide/components/activities/testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/activities/testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/activities/testing" ><span class="devsite-nav-text" tooltip>Test your app's activities</span></a></li><li class="devsite-nav-item"><a href="/guide/components/activities/tasks-and-back-stack" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/activities/tasks-and-back-stack" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/activities/tasks-and-back-stack" ><span class="devsite-nav-text" tooltip>Tasks and the back stack</span></a></li><li class="devsite-nav-item"><a href="/guide/components/activities/process-lifecycle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/activities/process-lifecycle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/activities/process-lifecycle" ><span class="devsite-nav-text" tooltip>Processes and app lifecycle</span></a></li><li class="devsite-nav-item"><a href="/guide/components/activities/parcelables-and-bundles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/activities/parcelables-and-bundles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/activities/parcelables-and-bundles" ><span class="devsite-nav-text" tooltip>Parcelables and bundles</span></a></li><li class="devsite-nav-item"><a href="/guide/components/loaders" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/loaders" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/loaders" ><span class="devsite-nav-text" tooltip>Loaders</span></a></li><li class="devsite-nav-item"><a href="/guide/components/activities/recents" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/activities/recents" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/activities/recents" ><span class="devsite-nav-text" tooltip>Recents screen</span></a></li><li class="devsite-nav-item"><a href="/guide/components/activities/background-starts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/activities/background-starts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/activities/background-starts" ><span class="devsite-nav-text" tooltip>Restrictions on starting activities from the background</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App shortcuts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/ui/shortcuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/ui/shortcuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/ui/shortcuts" ><span class="devsite-nav-text" tooltip>About app shortcuts</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/ui/shortcuts/creating-shortcuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/ui/shortcuts/creating-shortcuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/ui/shortcuts/creating-shortcuts" ><span class="devsite-nav-text" tooltip>Create shortcuts</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/ui/shortcuts/adding-capabilities" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/ui/shortcuts/adding-capabilities" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/ui/shortcuts/adding-capabilities" ><span class="devsite-nav-text" tooltip>Add capabilities</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/ui/shortcuts/managing-shortcuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/ui/shortcuts/managing-shortcuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/ui/shortcuts/managing-shortcuts" ><span class="devsite-nav-text" tooltip>Manage shortcuts</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/ui/shortcuts/best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/ui/shortcuts/best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/ui/shortcuts/best-practices" ><span class="devsite-nav-text" tooltip>Best practices for shortcuts</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App navigation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation/principles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/principles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/principles" ><span class="devsite-nav-text" tooltip>Principles of navigation</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Navigation component</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/navcontroller" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/navcontroller" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/navcontroller" ><span class="devsite-nav-text" tooltip>Navigation controller</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Design your navigation graph</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation/design" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/dialog-destinations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/dialog-destinations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/dialog-destinations" ><span class="devsite-nav-text" tooltip>Dialog destinations</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/activity-destinations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/activity-destinations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/activity-destinations" ><span class="devsite-nav-text" tooltip>Activity destinations</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/nested-graphs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/nested-graphs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/nested-graphs" ><span class="devsite-nav-text" tooltip>Nested graphs</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/deep-link" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/deep-link" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/deep-link" ><span class="devsite-nav-text" tooltip>Deep links</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/add-new" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/add-new" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/add-new" ><span class="devsite-nav-text" tooltip>New destination types</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/type-safety" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/type-safety" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/type-safety" ><span class="devsite-nav-text" tooltip>Type safety</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/encapsulate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/encapsulate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/encapsulate" ><span class="devsite-nav-text" tooltip>Encapsulate your code</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/actions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/actions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/actions" ><span class="devsite-nav-text" tooltip>Global actions</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/kotlin-dsl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/kotlin-dsl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/kotlin-dsl" ><span class="devsite-nav-text" tooltip>Fragments and the Kotlin DSL</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/design/editor" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/design/editor" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/design/editor" ><span class="devsite-nav-text" tooltip>Use the Navigation editor</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use your navigation graph</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation/use-graph/navigate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/use-graph/navigate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/use-graph/navigate" ><span class="devsite-nav-text" tooltip>Navigate to a destination</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/use-graph/navoptions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/use-graph/navoptions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/use-graph/navoptions" ><span class="devsite-nav-text" tooltip>Navigate with options</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/use-graph/safe-args" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/use-graph/safe-args" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/use-graph/safe-args" ><span class="devsite-nav-text" tooltip>Safe args</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/use-graph/pass-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/use-graph/pass-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/use-graph/pass-data" ><span class="devsite-nav-text" tooltip>Pass data between destinations</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/use-graph/animate-transitions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/use-graph/animate-transitions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/use-graph/animate-transitions" ><span class="devsite-nav-text" tooltip>Animate transitions between destinations</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/use-graph/conditional" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/use-graph/conditional" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/use-graph/conditional" ><span class="devsite-nav-text" tooltip>Conditional navigation</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/use-graph/programmatic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/use-graph/programmatic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/use-graph/programmatic" ><span class="devsite-nav-text" tooltip>Interact programmatically with the Navigation component</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>The back stack</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation/backstack" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/backstack" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/backstack" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/backstack/dialog" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/backstack/dialog" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/backstack/dialog" ><span class="devsite-nav-text" tooltip>Dialogs and the back stack</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/backstack/circular" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/backstack/circular" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/backstack/circular" ><span class="devsite-nav-text" tooltip>Circular navigation and the back stack</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/backstack/multi-back-stacks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/backstack/multi-back-stacks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/backstack/multi-back-stacks" ><span class="devsite-nav-text" tooltip>Multiple back stacks</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Integrations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation/integrations/feature-modules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/integrations/feature-modules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/integrations/feature-modules" ><span class="devsite-nav-text" tooltip>Navigate with feature modules</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/integrations/multi-module" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/integrations/multi-module" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/integrations/multi-module" ><span class="devsite-nav-text" tooltip>Multi-module projects</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/integrations/ui" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/integrations/ui" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/integrations/ui" ><span class="devsite-nav-text" tooltip>Connect UI components to NavController</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/guide/navigation/migrate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/migrate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/migrate" ><span class="devsite-nav-text" tooltip>Migrate to the Navigation component</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/testing" ><span class="devsite-nav-text" tooltip>Test navigation</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Custom back navigation</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation/custom-back" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/custom-back" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/custom-back" ><span class="devsite-nav-text" tooltip>Custom back navigation</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/custom-back/predictive-back-gesture" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/custom-back/predictive-back-gesture" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/custom-back/predictive-back-gesture" ><span class="devsite-nav-text" tooltip>Predictive back gesture</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/custom-back/support-animations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/custom-back/support-animations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/custom-back/support-animations" ><span class="devsite-nav-text" tooltip>Add support for predictive back animations</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Responsive design</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation/responsive/config-changes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/responsive/config-changes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/responsive/config-changes" ><span class="devsite-nav-text" tooltip>Handling configuration changes</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/responsive/form-factors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/responsive/form-factors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/responsive/form-factors" ><span class="devsite-nav-text" tooltip>Design for different form factors</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Swipe between views</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/navigation/advanced/swipe-view-2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/advanced/swipe-view-2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/advanced/swipe-view-2" ><span class="devsite-nav-text" tooltip>Swipe views using ViewPager2</span></a></li><li class="devsite-nav-item"><a href="/guide/navigation/advanced/swipe-view" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/navigation/advanced/swipe-view" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/navigation/advanced/swipe-view" ><span class="devsite-nav-text" tooltip>Swipe views using ViewPager</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Fragments</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/fragments" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments" ><span class="devsite-nav-text" tooltip>About fragments</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/create" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/create" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/create" ><span class="devsite-nav-text" tooltip>Create a fragment</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/fragmentmanager" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/fragmentmanager" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/fragmentmanager" ><span class="devsite-nav-text" tooltip>Fragment manager</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/transactions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/transactions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/transactions" ><span class="devsite-nav-text" tooltip>Fragment transactions</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/animate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/animate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/animate" ><span class="devsite-nav-text" tooltip>Animate transitions between fragments</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/lifecycle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/lifecycle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/lifecycle" ><span class="devsite-nav-text" tooltip>Fragment lifecycle</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/saving-state" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/saving-state" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/saving-state" ><span class="devsite-nav-text" tooltip>Saving state with fragments</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/communicate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/communicate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/communicate" ><span class="devsite-nav-text" tooltip>Communicate with fragments</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/appbar" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/appbar" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/appbar" ><span class="devsite-nav-text" tooltip>Working with the app bar</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/dialogs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/dialogs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/dialogs" ><span class="devsite-nav-text" tooltip>Displaying dialogs with DialogFragment</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/debugging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/debugging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/debugging" ><span class="devsite-nav-text" tooltip>Debug your fragments</span></a></li><li class="devsite-nav-item"><a href="/guide/fragments/test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/fragments/test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/fragments/test" ><span class="devsite-nav-text" tooltip>Test your fragments</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App links</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/app-links" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/app-links" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/app-links" ><span class="devsite-nav-text" tooltip>About app links</span></a></li><li class="devsite-nav-item"><a href="/training/app-links/deep-linking" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/app-links/deep-linking" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/app-links/deep-linking" ><span class="devsite-nav-text" tooltip>Enabling links to app content</span></a></li><li class="devsite-nav-item"><a href="/training/app-links/verify-android-applinks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/app-links/verify-android-applinks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/app-links/verify-android-applinks" ><span class="devsite-nav-text" tooltip>Verify app links</span></a></li><li class="devsite-nav-item"><a href="/training/app-links/instant-app-links" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/app-links/instant-app-links" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/app-links/instant-app-links" ><span class="devsite-nav-text" tooltip>Create app links for instant apps</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Interact with other apps</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/basics/intents" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/basics/intents" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/basics/intents" ><span class="devsite-nav-text" tooltip>About interacting with other apps</span></a></li><li class="devsite-nav-item"><a href="/guide/components/intents-filters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/intents-filters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/intents-filters" ><span class="devsite-nav-text" tooltip>About intents and intent filters</span></a></li><li class="devsite-nav-item"><a href="/guide/components/intents-common" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/components/intents-common" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/components/intents-common" ><span class="devsite-nav-text" tooltip>About common intents</span></a></li><li class="devsite-nav-item"><a href="/training/basics/intents/sending" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/basics/intents/sending" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/basics/intents/sending" ><span class="devsite-nav-text" tooltip>Send users to another app</span></a></li><li class="devsite-nav-item"><a href="/training/basics/intents/result" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/basics/intents/result" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/basics/intents/result" ><span class="devsite-nav-text" tooltip>Get a result from an activity</span></a></li><li class="devsite-nav-item"><a href="/training/basics/intents/filters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/basics/intents/filters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/basics/intents/filters" ><span class="devsite-nav-text" tooltip>Allow other apps to start your activity</span></a></li><li class="devsite-nav-item"><a href="/training/basics/intents/limit-play-loading" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/basics/intents/limit-play-loading" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/basics/intents/limit-play-loading" ><span class="devsite-nav-text" tooltip>Limit loading in on-device Android containers</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Package visibility</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/package-visibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/package-visibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/package-visibility" ><span class="devsite-nav-text" tooltip>About package visibility</span></a></li><li class="devsite-nav-item"><a href="/training/package-visibility/automatic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/package-visibility/automatic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/package-visibility/automatic" ><span class="devsite-nav-text" tooltip>Know which packages are visible automatically</span></a></li><li class="devsite-nav-item"><a href="/training/package-visibility/declaring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/package-visibility/declaring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/package-visibility/declaring" ><span class="devsite-nav-text" tooltip>Declare package visibility needs</span></a></li><li class="devsite-nav-item"><a href="/training/package-visibility/use-cases" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/package-visibility/use-cases" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/package-visibility/use-cases" ><span class="devsite-nav-text" tooltip>Fulfill common use cases</span></a></li><li class="devsite-nav-item"><a href="/training/package-visibility/testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/package-visibility/testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/package-visibility/testing" ><span class="devsite-nav-text" tooltip>Test package visibility</span></a></li></ul></div></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Dependency injection</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/dependency-injection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection" ><span class="devsite-nav-text" tooltip>About dependency injection</span></a></li><li class="devsite-nav-item"><a href="/training/dependency-injection/manual" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection/manual" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection/manual" ><span class="devsite-nav-text" tooltip>Manual dependency injection</span></a></li><li class="devsite-nav-item"><a href="/training/dependency-injection/hilt-android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection/hilt-android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection/hilt-android" ><span class="devsite-nav-text" tooltip>Dependency injection with Hilt</span></a></li><li class="devsite-nav-item"><a href="/training/dependency-injection/hilt-multi-module" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection/hilt-multi-module" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection/hilt-multi-module" ><span class="devsite-nav-text" tooltip>Hilt in multi-module apps</span></a></li><li class="devsite-nav-item"><a href="/training/dependency-injection/hilt-jetpack" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection/hilt-jetpack" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection/hilt-jetpack" ><span class="devsite-nav-text" tooltip>Use Hilt with other Jetpack libraries</span></a></li><li class="devsite-nav-item"><a href="/training/dependency-injection/hilt-testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection/hilt-testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection/hilt-testing" ><span class="devsite-nav-text" tooltip>Hilt testing guide</span></a></li><li class="devsite-nav-item"><a href="/training/dependency-injection/hilt-cheatsheet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection/hilt-cheatsheet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection/hilt-cheatsheet" ><span class="devsite-nav-text" tooltip>Hilt and Dagger annotations cheat sheet</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Dagger</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/dependency-injection/dagger-basics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection/dagger-basics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection/dagger-basics" ><span class="devsite-nav-text" tooltip>Dagger basics</span></a></li><li class="devsite-nav-item"><a href="/training/dependency-injection/dagger-android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection/dagger-android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection/dagger-android" ><span class="devsite-nav-text" tooltip>Using Dagger in Android apps</span></a></li><li class="devsite-nav-item"><a href="/training/dependency-injection/dagger-multi-module" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/dependency-injection/dagger-multi-module" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/dependency-injection/dagger-multi-module" ><span class="devsite-nav-text" tooltip>Using Dagger in multi-module apps</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/topic/libraries/app-startup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/libraries/app-startup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/libraries/app-startup" ><span class="devsite-nav-text" tooltip>App Startup</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Play</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/google/play/billing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/billing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/billing" ><span class="devsite-nav-text" tooltip>Google Play Billing ⍈</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore" ><span class="devsite-nav-text" tooltip>Google Play Core libraries</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Engage SDK</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/playcore/engage/preview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/preview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/preview" ><span class="devsite-nav-text" tooltip>Engage SDK Developer Preview</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage" ><span class="devsite-nav-text" tooltip>About Engage SDK</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/watch" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/watch" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/watch" ><span class="devsite-nav-text" tooltip>Engage SDK Watch integration guide</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/listen" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/listen" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/listen" ><span class="devsite-nav-text" tooltip>Engage SDK Listen integration guide</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/read" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/read" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/read" ><span class="devsite-nav-text" tooltip>Engage SDK Read integration guide</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/shopping" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/shopping" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/shopping" ><span class="devsite-nav-text" tooltip>Engage SDK Shopping integration guide</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/food" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/food" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/food" ><span class="devsite-nav-text" tooltip>Engage SDK Food integration guide</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/social" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/social" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/social" ><span class="devsite-nav-text" tooltip>Engage SDK Social integration guide</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/travel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/travel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/travel" ><span class="devsite-nav-text" tooltip>Engage SDK Travel integration guide</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/healthandfitness" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/healthandfitness" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/healthandfitness" ><span class="devsite-nav-text" tooltip>Engage SDK Health & Fitness integration guide</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/otherverticals" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/otherverticals" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/otherverticals" ><span class="devsite-nav-text" tooltip>Engage SDK Other Verticals integration guide</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/workflow" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/workflow" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/workflow" ><span class="devsite-nav-text" tooltip>Engage SDK integration workflow</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/publish" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/publish" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/publish" ><span class="devsite-nav-text" tooltip>Engage SDK Cluster publishing guidelines</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/faq" ><span class="devsite-nav-text" tooltip>Engage SDK Frequently asked questions</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/release" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/release" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/release" ><span class="devsite-nav-text" tooltip>Engage SDK Release Notes</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/engage/samples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/engage/samples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/engage/samples" ><span class="devsite-nav-text" tooltip>Engage SDK Sample Apps</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Play Points</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/playpoints" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playpoints" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playpoints" ><span class="devsite-nav-text" tooltip>About Play Points</span></a></li><li class="devsite-nav-item"><a href="/guide/playpoints/create-products" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playpoints/create-products" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playpoints/create-products" ><span class="devsite-nav-text" tooltip>Create products and promotions</span></a></li><li class="devsite-nav-item"><a href="/guide/playpoints/deliver-items" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playpoints/deliver-items" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playpoints/deliver-items" ><span class="devsite-nav-text" tooltip>Detect and deliver products</span></a></li><li class="devsite-nav-item"><a href="/guide/playpoints/test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playpoints/test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playpoints/test" ><span class="devsite-nav-text" tooltip>Test products</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Play Asset Delivery</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/playcore/asset-delivery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/asset-delivery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/asset-delivery" ><span class="devsite-nav-text" tooltip>About Play Asset Delivery</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/asset-delivery/integrate-java" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/asset-delivery/integrate-java" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/asset-delivery/integrate-java" ><span class="devsite-nav-text" tooltip>Integrate asset delivery (Kotlin and Java)</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/asset-delivery/integrate-native" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/asset-delivery/integrate-native" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/asset-delivery/integrate-native" ><span class="devsite-nav-text" tooltip>Integrate asset delivery (native)</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/asset-delivery/integrate-unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/asset-delivery/integrate-unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/asset-delivery/integrate-unity" ><span class="devsite-nav-text" tooltip>Integrate asset delivery (Unity)</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/asset-delivery/texture-compression" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/asset-delivery/texture-compression" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/asset-delivery/texture-compression" ><span class="devsite-nav-text" tooltip>Target texture compression formats</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/asset-delivery/test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/asset-delivery/test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/asset-delivery/test" ><span class="devsite-nav-text" tooltip>Test asset delivery</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Play Feature Delivery</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/playcore/feature-delivery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/feature-delivery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/feature-delivery" ><span class="devsite-nav-text" tooltip>About Play Feature Delivery</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/feature-delivery/install-time" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/feature-delivery/install-time" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/feature-delivery/install-time" ><span class="devsite-nav-text" tooltip>Configure install-time delivery</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/feature-delivery/conditional" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/feature-delivery/conditional" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/feature-delivery/conditional" ><span class="devsite-nav-text" tooltip>Configure conditional delivery</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/feature-delivery/on-demand" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/feature-delivery/on-demand" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/feature-delivery/on-demand" ><span class="devsite-nav-text" tooltip>Configure on-demand delivery</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/feature-delivery/ux-guidelines" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/feature-delivery/ux-guidelines" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/feature-delivery/ux-guidelines" ><span class="devsite-nav-text" tooltip>On-demand delivery best practices</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/feature-delivery/instant" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/feature-delivery/instant" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/feature-delivery/instant" ><span class="devsite-nav-text" tooltip>Configure instant delivery</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/feature-delivery/additional-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/feature-delivery/additional-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/feature-delivery/additional-resources" ><span class="devsite-nav-text" tooltip>Additional resources</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>In-app reviews</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/playcore/in-app-review" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-review" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-review" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/in-app-review/kotlin-java" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-review/kotlin-java" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-review/kotlin-java" ><span class="devsite-nav-text" tooltip>Integrate in-app reviews (Kotlin or Java)</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/in-app-review/native" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-review/native" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-review/native" ><span class="devsite-nav-text" tooltip>Integrate in-app reviews (Native)</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/in-app-review/unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-review/unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-review/unity" ><span class="devsite-nav-text" tooltip>Integrate in-app reviews (Unity)</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/in-app-review/test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-review/test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-review/test" ><span class="devsite-nav-text" tooltip>Test in-app reviews</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>In-app updates</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/playcore/in-app-updates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-updates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-updates" ><span class="devsite-nav-text" tooltip>About in-app updates</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/in-app-updates/kotlin-java" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-updates/kotlin-java" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-updates/kotlin-java" ><span class="devsite-nav-text" tooltip>Support in-app updates (Kotlin or Java)</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/in-app-updates/native" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-updates/native" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-updates/native" ><span class="devsite-nav-text" tooltip>Support in-app updates (Native)</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/in-app-updates/unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-updates/unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-updates/unity" ><span class="devsite-nav-text" tooltip>Support in-app updates (Unity)</span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/in-app-updates/test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/in-app-updates/test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/in-app-updates/test" ><span class="devsite-nav-text" tooltip>Test in-app updates</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-beta"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Play as you Download</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/google/play/play-as-you-download" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/play-as-you-download" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/play-as-you-download" ><span class="devsite-nav-text" tooltip>About Play as you Download</span></a></li><li class="devsite-nav-item"><a href="/google/play/play-as-you-download/best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/play-as-you-download/best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/play-as-you-download/best-practices" ><span class="devsite-nav-text" tooltip>Best practices</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Play Instant</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/google-play-instant/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/overview" ><span class="devsite-nav-text" tooltip>About Google Play Instant</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Get started with instant apps</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/google-play-instant/getting-started/instant-enabled-app-bundle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/getting-started/instant-enabled-app-bundle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/getting-started/instant-enabled-app-bundle" ><span class="devsite-nav-text" tooltip>Create an instant-enabled app bundle</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/best-practices/apps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/best-practices/apps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/best-practices/apps" ><span class="devsite-nav-text" tooltip>UX best practices for apps</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Get started with instant games</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/google-play-instant/getting-started/game-instant-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/getting-started/game-instant-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/getting-started/game-instant-app" ><span class="devsite-nav-text" tooltip>About instant games</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/getting-started/game-unity-plugin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/getting-started/game-unity-plugin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/getting-started/game-unity-plugin" ><span class="devsite-nav-text" tooltip>Unity plugin</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/best-practices/games" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/best-practices/games" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/best-practices/games" ><span class="devsite-nav-text" tooltip>UX best practices for games</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/feature-module-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/feature-module-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/feature-module-migration" ><span class="devsite-nav-text" tooltip>Migrate to Android App Bundles</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/getting-started/cloud-delivery-assets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/getting-started/cloud-delivery-assets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/getting-started/cloud-delivery-assets" ><span class="devsite-nav-text" tooltip>Implement cloud delivery of assets</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/getting-started/support-play-games-services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/getting-started/support-play-games-services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/getting-started/support-play-games-services" ><span class="devsite-nav-text" tooltip>Support Google Play Games Services</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/instant-play-games" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/instant-play-games" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/instant-play-games" ><span class="devsite-nav-text" tooltip>Instant Play games</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/instant-play-games-checklist" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/instant-play-games-checklist" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/instant-play-games-checklist" ><span class="devsite-nav-text" tooltip>Instant Play games checklist</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/guides/reduce-module-size" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/guides/reduce-module-size" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/guides/reduce-module-size" ><span class="devsite-nav-text" tooltip>Reduce the size of your instant app or game</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/guides/advertising" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/guides/advertising" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/guides/advertising" ><span class="devsite-nav-text" tooltip>Add ads to your instant app or game</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/guides/multiple-entry-points" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/guides/multiple-entry-points" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/guides/multiple-entry-points" ><span class="devsite-nav-text" tooltip>Provide multiple entry points</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Integrate with Firebase</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/topic/google-play-instant/guides/analytics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/guides/analytics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/guides/analytics" ><span class="devsite-nav-text" tooltip>Add Google Analytics for Firebase to your instant app</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/guides/dynamic-links" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/guides/dynamic-links" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/guides/dynamic-links" ><span class="devsite-nav-text" tooltip>Use Firebase Dynamic Links with instant apps</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/tech-requirements" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/tech-requirements" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/tech-requirements" ><span class="devsite-nav-text" tooltip>Technical requirements checklist</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://play.google.com/about/other-programs/android-instant-apps/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://play.google.com/about/other-programs/android-instant-apps/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://play.google.com/about/other-programs/android-instant-apps/" ><span class="devsite-nav-text" tooltip>Google Play Instant policy</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Resources</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-external"><a href="https://developers.google.com/android/reference/com/google/android/gms/instantapps/package-summary" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://developers.google.com/android/reference/com/google/android/gms/instantapps/package-summary" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://developers.google.com/android/reference/com/google/android/gms/instantapps/package-summary" ><span class="devsite-nav-text" tooltip>Reference</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/samples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/samples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/samples" ><span class="devsite-nav-text" tooltip>Code samples</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/release-notes" ><span class="devsite-nav-text" tooltip>SDK release notes</span></a></li><li class="devsite-nav-item"><a href="/topic/google-play-instant/instant-app-intents" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/google-play-instant/instant-app-intents" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/google-play-instant/instant-app-intents" ><span class="devsite-nav-text" tooltip>Instant App Intents</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Support</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-external"><a href="https://issuetracker.google.com/issues?q=status:open%20componentid:316045" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://issuetracker.google.com/issues?q=status:open%20componentid:316045" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://issuetracker.google.com/issues?q=status:open%20componentid:316045" ><span class="devsite-nav-text" tooltip>Known issues</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://stackoverflow.com/questions/tagged/android-instant-apps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://stackoverflow.com/questions/tagged/android-instant-apps" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://stackoverflow.com/questions/tagged/android-instant-apps" ><span class="devsite-nav-text" tooltip>StackOverflow</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/google/play/developer-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/developer-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/developer-api" ><span class="devsite-nav-text" tooltip>Play Developer APIs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Play Install Referrer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/google/play/installreferrer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/installreferrer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/installreferrer" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Play Install Referrer Library</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/google/play/installreferrer/library" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/installreferrer/library" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/installreferrer/library" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/reference/com/android/installreferrer/packages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /reference/com/android/installreferrer/packages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/reference/com/android/installreferrer/packages" ><span class="devsite-nav-text" tooltip>Reference ⍈</span></a></li><li class="devsite-nav-item"><a href="/google/play/installreferrer/release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/installreferrer/release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/installreferrer/release-notes" ><span class="devsite-nav-text" tooltip>Release notes</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/google/play/installreferrer/igetinstallreferrerservice" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/installreferrer/igetinstallreferrerservice" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/installreferrer/igetinstallreferrerservice" ><span class="devsite-nav-text" tooltip>Play Install Referrer API</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/google/play/integrity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/integrity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/integrity" ><span class="devsite-nav-text" tooltip>Play Integrity API ⍈</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Play Requirements</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/distribute/play-policies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /distribute/play-policies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/distribute/play-policies" ><span class="devsite-nav-text" tooltip>Play Policies ⍈</span></a></li><li class="devsite-nav-item"><a href="/google/play/requirements/target-sdk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/requirements/target-sdk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/requirements/target-sdk" ><span class="devsite-nav-text" tooltip>Meet the target API level requirement</span></a></li><li class="devsite-nav-item"><a href="/google/play/requirements/64-bit" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/requirements/64-bit" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/requirements/64-bit" ><span class="devsite-nav-text" tooltip>Support 64-bit architectures ⍈</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Application Licensing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/google/play/licensing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/licensing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/licensing" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/google/play/licensing/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/licensing/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/licensing/overview" ><span class="devsite-nav-text" tooltip>Licensing Overview</span></a></li><li class="devsite-nav-item"><a href="/google/play/licensing/setting-up" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/licensing/setting-up" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/licensing/setting-up" ><span class="devsite-nav-text" tooltip>Setting Up for Licensing</span></a></li><li class="devsite-nav-item"><a href="/google/play/licensing/server-side-verification" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/licensing/server-side-verification" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/licensing/server-side-verification" ><span class="devsite-nav-text" tooltip>Adding Server-Side Verification</span></a></li><li class="devsite-nav-item"><a href="/google/play/licensing/client-side-verification" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/licensing/client-side-verification" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/licensing/client-side-verification" ><span class="devsite-nav-text" tooltip>Adding Client-Side Verification</span></a></li><li class="devsite-nav-item"><a href="/google/play/licensing/licensing-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/licensing/licensing-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/licensing/licensing-reference" ><span class="devsite-nav-text" tooltip>Licensing Reference</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/google/play/expansion-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/expansion-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/expansion-files" ><span class="devsite-nav-text" tooltip>APK Expansion Files</span></a></li><li class="devsite-nav-item"><a href="/google/play/app-updates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/app-updates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/app-updates" ><span class="devsite-nav-text" tooltip>App updates</span></a></li><li class="devsite-nav-item"><a href="/google/play/release-audience-restriction" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /google/play/release-audience-restriction" track-type="bookNav" track-name="click" track-metadata-eventdetail="/google/play/release-audience-restriction" ><span class="devsite-nav-text" tooltip>Release audience restriction</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Core areas</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/develop/ui" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui" ><span class="devsite-nav-text" tooltip>User interfaces ⍈</span></a></li><li class="devsite-nav-item"><a href="/media/audio-and-video" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /media/audio-and-video" track-type="bookNav" track-name="click" track-metadata-eventdetail="/media/audio-and-video" ><span class="devsite-nav-text" tooltip>Audio & video ⍈</span></a></li><li class="devsite-nav-item"><a href="/develop/background-work/services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/background-work/services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/background-work/services" ><span class="devsite-nav-text" tooltip>Services ⍈</span></a></li><li class="devsite-nav-item"><a href="/develop/background-work/background-tasks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/background-work/background-tasks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/background-work/background-tasks" ><span class="devsite-nav-text" tooltip>Background tasks ⍈</span></a></li><li class="devsite-nav-item"><a href="/develop/background-work/services/alarms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/background-work/services/alarms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/background-work/services/alarms" ><span class="devsite-nav-text" tooltip>Alarms ⍈</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Permissions</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/permissions/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/permissions/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/permissions/overview" ><span class="devsite-nav-text" tooltip>About permissions</span></a></li><li class="devsite-nav-item"><a href="/training/permissions/declaring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/permissions/declaring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/permissions/declaring" ><span class="devsite-nav-text" tooltip>Declare app permissions</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Request app permissions</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/permissions/requesting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/permissions/requesting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/permissions/requesting" ><span class="devsite-nav-text" tooltip>Request runtime permissions</span></a></li><li class="devsite-nav-item"><a href="/training/permissions/requesting-special" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/permissions/requesting-special" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/permissions/requesting-special" ><span class="devsite-nav-text" tooltip>Request special permissions</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/permissions/explaining-access" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/permissions/explaining-access" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/permissions/explaining-access" ><span class="devsite-nav-text" tooltip>Explain access to more sensitive information</span></a></li><li class="devsite-nav-item"><a href="/training/permissions/usage-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/permissions/usage-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/permissions/usage-notes" ><span class="devsite-nav-text" tooltip>App permissions best practices</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/permissions/default-handlers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/permissions/default-handlers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/permissions/default-handlers" ><span class="devsite-nav-text" tooltip>Permissions used only in default handlers</span></a></li><li class="devsite-nav-item"><a href="/training/permissions/restrict-interactions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/permissions/restrict-interactions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/permissions/restrict-interactions" ><span class="devsite-nav-text" tooltip>Restrict interactions with other apps</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/permissions/defining" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/permissions/defining" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/permissions/defining" ><span class="devsite-nav-text" tooltip>Define custom permissions</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App data and files</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/data" ><span class="devsite-nav-text" tooltip>About app data and files</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage" ><span class="devsite-nav-text" tooltip>About storage</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/app-specific" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/app-specific" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/app-specific" ><span class="devsite-nav-text" tooltip>Save to app-specific storage</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Save to shared storage</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/data-storage/shared" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/shared" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/shared" ><span class="devsite-nav-text" tooltip>About shared storage</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/shared/media" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/shared/media" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/shared/media" ><span class="devsite-nav-text" tooltip>Media</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/shared/photopicker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/shared/photopicker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/shared/photopicker" ><span class="devsite-nav-text" tooltip>Photo picker</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/shared/documents-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/shared/documents-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/shared/documents-files" ><span class="devsite-nav-text" tooltip>Documents and other files</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/shared/datasets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/shared/datasets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/shared/datasets" ><span class="devsite-nav-text" tooltip>Datasets</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/data-storage/manage-all-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/manage-all-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/manage-all-files" ><span class="devsite-nav-text" tooltip>Manage all files on a storage device</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/shared-preferences" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/shared-preferences" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/shared-preferences" ><span class="devsite-nav-text" tooltip>Save key-value data</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Save data in a local database</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/data-storage/room" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room" ><span class="devsite-nav-text" tooltip>About the local database</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/defining-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/defining-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/defining-data" ><span class="devsite-nav-text" tooltip>Define data using entities</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/accessing-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/accessing-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/accessing-data" ><span class="devsite-nav-text" tooltip>Access data using DAOs</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/relationships" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/relationships" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/relationships" ><span class="devsite-nav-text" tooltip>Define relationships between objects</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/async-queries" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/async-queries" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/async-queries" ><span class="devsite-nav-text" tooltip>Write asynchronous DAO queries</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/creating-views" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/creating-views" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/creating-views" ><span class="devsite-nav-text" tooltip>Create views into a database</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/prepopulate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/prepopulate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/prepopulate" ><span class="devsite-nav-text" tooltip>Prepopulate your database</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/migrating-db-versions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/migrating-db-versions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/migrating-db-versions" ><span class="devsite-nav-text" tooltip>Migrate your database</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/testing-db" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/testing-db" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/testing-db" ><span class="devsite-nav-text" tooltip>Test and debug your database</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/referencing-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/referencing-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/referencing-data" ><span class="devsite-nav-text" tooltip>Reference complex data</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/sqlite-room-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/sqlite-room-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/sqlite-room-migration" ><span class="devsite-nav-text" tooltip>Migrate from SQLite to Room</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/room/room-kmp-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/room/room-kmp-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/room/room-kmp-migration" ><span class="devsite-nav-text" tooltip>Migrate to Room Kotlin Multiplatform</span></a></li><li class="devsite-nav-item"><a href="/training/data-storage/sqlite" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/sqlite" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/sqlite" ><span class="devsite-nav-text" tooltip>Save data using SQLite</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/data-storage/use-cases" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/data-storage/use-cases" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/data-storage/use-cases" ><span class="devsite-nav-text" tooltip>Storage use cases and best practices</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Sharing data</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/sharing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sharing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sharing" ><span class="devsite-nav-text" tooltip>About sharing data</span></a></li><li class="devsite-nav-item"><a href="/training/sharing/send" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sharing/send" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sharing/send" ><span class="devsite-nav-text" tooltip>Sending simple data to other apps</span></a></li><li class="devsite-nav-item"><a href="/training/sharing/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sharing/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sharing/receive" ><span class="devsite-nav-text" tooltip>Receiving simple data from other apps</span></a></li><li class="devsite-nav-item"><a href="/training/sharing/direct-share-targets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sharing/direct-share-targets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sharing/direct-share-targets" ><span class="devsite-nav-text" tooltip>Provide Direct Share targets</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Sharing files</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/secure-file-sharing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/secure-file-sharing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/secure-file-sharing" ><span class="devsite-nav-text" tooltip>About sharing files</span></a></li><li class="devsite-nav-item"><a href="/training/secure-file-sharing/setup-sharing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/secure-file-sharing/setup-sharing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/secure-file-sharing/setup-sharing" ><span class="devsite-nav-text" tooltip>Setting up file sharing</span></a></li><li class="devsite-nav-item"><a href="/training/secure-file-sharing/share-file" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/secure-file-sharing/share-file" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/secure-file-sharing/share-file" ><span class="devsite-nav-text" tooltip>Sharing a file</span></a></li><li class="devsite-nav-item"><a href="/training/secure-file-sharing/request-file" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/secure-file-sharing/request-file" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/secure-file-sharing/request-file" ><span class="devsite-nav-text" tooltip>Requesting a shared file</span></a></li><li class="devsite-nav-item"><a href="/training/secure-file-sharing/retrieve-info" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/secure-file-sharing/retrieve-info" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/secure-file-sharing/retrieve-info" ><span class="devsite-nav-text" tooltip>Retrieving file information</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Printing files</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/printing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/printing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/printing" ><span class="devsite-nav-text" tooltip>About printing</span></a></li><li class="devsite-nav-item"><a href="/training/printing/photos" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/printing/photos" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/printing/photos" ><span class="devsite-nav-text" tooltip>Printing photos</span></a></li><li class="devsite-nav-item"><a href="/training/printing/html-docs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/printing/html-docs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/printing/html-docs" ><span class="devsite-nav-text" tooltip>Printing HTML documents</span></a></li><li class="devsite-nav-item"><a href="/training/printing/custom-docs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/printing/custom-docs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/printing/custom-docs" ><span class="devsite-nav-text" tooltip>Printing custom documents</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Content providers</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/providers/content-providers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/providers/content-providers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/providers/content-providers" ><span class="devsite-nav-text" tooltip>About content providers</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/providers/content-provider-basics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/providers/content-provider-basics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/providers/content-provider-basics" ><span class="devsite-nav-text" tooltip>Content provider basics</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/providers/content-provider-creating" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/providers/content-provider-creating" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/providers/content-provider-creating" ><span class="devsite-nav-text" tooltip>Creating a content provider</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/providers/document-provider" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/providers/document-provider" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/providers/document-provider" ><span class="devsite-nav-text" tooltip>Open files using storage access framework</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/providers/create-document-provider" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/providers/create-document-provider" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/providers/create-document-provider" ><span class="devsite-nav-text" tooltip>Create a custom document provider</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/providers/cloud-media-provider" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/providers/cloud-media-provider" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/providers/cloud-media-provider" ><span class="devsite-nav-text" tooltip>Create a cloud media provider</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/guide/topics/data/install-location" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/data/install-location" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/data/install-location" ><span class="devsite-nav-text" tooltip>App install location</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>User data and identity</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/user-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/user-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/user-data" ><span class="devsite-nav-text" tooltip>About user data</span></a></li><li class="devsite-nav-item"><a href="/training/sign-in" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in" ><span class="devsite-nav-text" tooltip>Add sign-in workflow</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Credential Manager</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/sign-in/passkeys" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in/passkeys" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in/passkeys" ><span class="devsite-nav-text" tooltip>Sign in your user</span></a></li><li class="devsite-nav-item"><a href="/training/sign-in/credential-manager" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in/credential-manager" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in/credential-manager" ><span class="devsite-nav-text" tooltip>Integrate with Sign in with Google</span></a></li><li class="devsite-nav-item"><a href="/training/sign-in/fido2-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in/fido2-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in/fido2-migration" ><span class="devsite-nav-text" tooltip>Migrate from FIDO2</span></a></li><li class="devsite-nav-item"><a href="/training/sign-in/smart-lock-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in/smart-lock-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in/smart-lock-migration" ><span class="devsite-nav-text" tooltip>Migrate from Smart Lock</span></a></li><li class="devsite-nav-item"><a href="/training/sign-in/legacy-gsi-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in/legacy-gsi-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in/legacy-gsi-migration" ><span class="devsite-nav-text" tooltip>Migrate from legacy Google Sign-In</span></a></li><li class="devsite-nav-item"><a href="/training/sign-in/credential-manager-webview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in/credential-manager-webview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in/credential-manager-webview" ><span class="devsite-nav-text" tooltip>Integrate with WebView</span></a></li><li class="devsite-nav-item"><a href="/training/sign-in/credential-provider" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in/credential-provider" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in/credential-provider" ><span class="devsite-nav-text" tooltip>Integrate with your credential provider solution</span></a></li><li class="devsite-nav-item"><a href="/training/sign-in/privileged-apps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in/privileged-apps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in/privileged-apps" ><span class="devsite-nav-text" tooltip>Make calls on behalf of other parties for privileged apps</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Autofill framework</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/text/autofill" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/text/autofill" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/text/autofill" ><span class="devsite-nav-text" tooltip>About autofill</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/text/autofill-optimize" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/text/autofill-optimize" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/text/autofill-optimize" ><span class="devsite-nav-text" tooltip>Optimize your app for autofill</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/text/autofill-services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/text/autofill-services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/text/autofill-services" ><span class="devsite-nav-text" tooltip>Build autofill services</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/text/ime-autofill" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/text/ime-autofill" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/text/ime-autofill" ><span class="devsite-nav-text" tooltip>Integrate autofill with keyboards</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/sign-in/biometric-auth" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/sign-in/biometric-auth" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/sign-in/biometric-auth" ><span class="devsite-nav-text" tooltip>Show a biometric authentication dialog</span></a></li><li class="devsite-nav-item"><a href="/training/articles/app-set-id" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/articles/app-set-id" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/articles/app-set-id" ><span class="devsite-nav-text" tooltip>Identify developer-owned apps</span></a></li><li class="devsite-nav-item"><a href="/training/articles/ad-id" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/articles/ad-id" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/articles/ad-id" ><span class="devsite-nav-text" tooltip>Get a user-resettable advertising ID</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/providers/calendar-provider" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/providers/calendar-provider" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/providers/calendar-provider" ><span class="devsite-nav-text" tooltip>About the calendar provider</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Contacts provider</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/providers/contacts-provider" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/providers/contacts-provider" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/providers/contacts-provider" ><span class="devsite-nav-text" tooltip>About the contacts provider</span></a></li><li class="devsite-nav-item"><a href="/training/contacts-provider/retrieve-names" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/contacts-provider/retrieve-names" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/contacts-provider/retrieve-names" ><span class="devsite-nav-text" tooltip>Retrieving a list of contacts</span></a></li><li class="devsite-nav-item"><a href="/training/contacts-provider/retrieve-details" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/contacts-provider/retrieve-details" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/contacts-provider/retrieve-details" ><span class="devsite-nav-text" tooltip>Retrieving details for a contact</span></a></li><li class="devsite-nav-item"><a href="/training/contacts-provider/modify-data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/contacts-provider/modify-data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/contacts-provider/modify-data" ><span class="devsite-nav-text" tooltip>Modifying contacts using intents</span></a></li><li class="devsite-nav-item"><a href="/training/contacts-provider/display-contact-badge" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/contacts-provider/display-contact-badge" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/contacts-provider/display-contact-badge" ><span class="devsite-nav-text" tooltip>Displaying the quick contact badge</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/guide/topics/data/account-transfer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/data/account-transfer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/data/account-transfer" ><span class="devsite-nav-text" tooltip>Account transfer</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Data backup</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/data/backup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/data/backup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/data/backup" ><span class="devsite-nav-text" tooltip>About backup</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/data/autobackup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/data/autobackup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/data/autobackup" ><span class="devsite-nav-text" tooltip>Back up user data</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/data/keyvaluebackup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/data/keyvaluebackup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/data/keyvaluebackup" ><span class="devsite-nav-text" tooltip>Back up key-value pairs</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/data/testingbackup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/data/testingbackup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/data/testingbackup" ><span class="devsite-nav-text" tooltip>Test backup and restore</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/training/articles/user-data-ids" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/articles/user-data-ids" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/articles/user-data-ids" ><span class="devsite-nav-text" tooltip>Best practices for unique identifiers</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Remember and authenticate users</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/id-auth" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/id-auth" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/id-auth" ><span class="devsite-nav-text" tooltip>About authentication</span></a></li><li class="devsite-nav-item"><a href="/training/id-auth/identify" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/id-auth/identify" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/id-auth/identify" ><span class="devsite-nav-text" tooltip>Remember your user</span></a></li><li class="devsite-nav-item"><a href="/training/id-auth/authenticate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/id-auth/authenticate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/id-auth/authenticate" ><span class="devsite-nav-text" tooltip>Authenticate to OAuth2 services</span></a></li><li class="devsite-nav-item"><a href="/training/id-auth/custom_auth" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/id-auth/custom_auth" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/id-auth/custom_auth" ><span class="devsite-nav-text" tooltip>Create a custom account type</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/media/camera/get-started-with-camera" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /media/camera/get-started-with-camera" track-type="bookNav" track-name="click" track-metadata-eventdetail="/media/camera/get-started-with-camera" ><span class="devsite-nav-text" tooltip>Add camera capabilities to your app ⍈</span></a></li><li class="devsite-nav-item"><a href="/develop/sensors-and-location/location" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/sensors-and-location/location" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/sensors-and-location/location" ><span class="devsite-nav-text" tooltip>User location ⍈</span></a></li><li class="devsite-nav-item"><a href="/develop/sensors-and-location/sensors/sensors_overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/sensors-and-location/sensors/sensors_overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/sensors-and-location/sensors/sensors_overview" ><span class="devsite-nav-text" tooltip>Sensors ⍈</span></a></li><li class="devsite-nav-item"><a href="/develop/connectivity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/connectivity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/connectivity" ><span class="devsite-nav-text" tooltip>Connectivity ⍈</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Renderscript</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/renderscript/compute" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/compute" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/compute" ><span class="devsite-nav-text" tooltip>About Renderscript</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/advanced" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/advanced" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/advanced" ><span class="devsite-nav-text" tooltip>Advanced RenderScript</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Migrate from RenderScript</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/renderscript/migrate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/migrate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/migrate" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/migrate/migrate-gles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/migrate/migrate-gles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/migrate/migrate-gles" ><span class="devsite-nav-text" tooltip>Migrate scripts to OpenGL ES 3.1</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/migrate/migrate-vulkan" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/migrate/migrate-vulkan" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/migrate/migrate-vulkan" ><span class="devsite-nav-text" tooltip>Migrate scripts to Vulkan</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Runtime API reference</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/overview" ><span class="devsite-nav-text" tooltip>About Runtime API</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_value_types" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_value_types" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_value_types" ><span class="devsite-nav-text" tooltip>Numerical types</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_object_types" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_object_types" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_object_types" ><span class="devsite-nav-text" tooltip>Object types</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_convert" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_convert" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_convert" ><span class="devsite-nav-text" tooltip>Conversion functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_math" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_math" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_math" ><span class="devsite-nav-text" tooltip>Mathematical constants and functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_vector_math" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_vector_math" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_vector_math" ><span class="devsite-nav-text" tooltip>Vector math functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_matrix" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_matrix" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_matrix" ><span class="devsite-nav-text" tooltip>Matrix functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_quaternion" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_quaternion" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_quaternion" ><span class="devsite-nav-text" tooltip>Quaternion functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_atomic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_atomic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_atomic" ><span class="devsite-nav-text" tooltip>Atomic update functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_time" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_time" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_time" ><span class="devsite-nav-text" tooltip>Time functions and types</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_allocation_data" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_allocation_data" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_allocation_data" ><span class="devsite-nav-text" tooltip>Allocation data access functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_object_info" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_object_info" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_object_info" ><span class="devsite-nav-text" tooltip>Object characteristics functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_for_each" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_for_each" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_for_each" ><span class="devsite-nav-text" tooltip>Kernel invocation functions and types</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_io" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_io" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_io" ><span class="devsite-nav-text" tooltip>Input/output functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_debug" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_debug" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_debug" ><span class="devsite-nav-text" tooltip>Debugging functions</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference/rs_graphics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference/rs_graphics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference/rs_graphics" ><span class="devsite-nav-text" tooltip>Graphics functions and types</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/renderscript/reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/renderscript/reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/renderscript/reference" ><span class="devsite-nav-text" tooltip>Index</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android app bundles</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/app-bundle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/app-bundle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/app-bundle" ><span class="devsite-nav-text" tooltip>About app bundles</span></a></li><li class="devsite-nav-item"><a href="/guide/app-bundle/configure-base" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/app-bundle/configure-base" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/app-bundle/configure-base" ><span class="devsite-nav-text" tooltip>Configure the base module</span></a></li><li class="devsite-nav-item"><a href="/guide/app-bundle/test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/app-bundle/test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/app-bundle/test" ><span class="devsite-nav-text" tooltip>Build and test your app bundle</span></a></li><li class="devsite-nav-item"><a href="/guide/app-bundle/code-transparency" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/app-bundle/code-transparency" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/app-bundle/code-transparency" ><span class="devsite-nav-text" tooltip>Add code transparency</span></a></li><li class="devsite-nav-item"><a href="/guide/app-bundle/app-bundle-format" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/app-bundle/app-bundle-format" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/app-bundle/app-bundle-format" ><span class="devsite-nav-text" tooltip>About the app bundle format</span></a></li><li class="devsite-nav-item"><a href="/guide/app-bundle/faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/app-bundle/faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/app-bundle/faq" ><span class="devsite-nav-text" tooltip>Frequently asked questions</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build for enterprise</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/work" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work" ><span class="devsite-nav-text" tooltip>About enterprise apps</span></a></li><li class="devsite-nav-item"><a href="/work/guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/guide" ><span class="devsite-nav-text" tooltip>Developer guide</span></a></li><li class="devsite-nav-item"><a href="/work/managed-profiles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/managed-profiles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/managed-profiles" ><span class="devsite-nav-text" tooltip>Work profiles</span></a></li><li class="devsite-nav-item"><a href="/work/managed-configurations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/managed-configurations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/managed-configurations" ><span class="devsite-nav-text" tooltip>Set up managed configurations</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App feedback</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/work/app-feedback/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/app-feedback/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/app-feedback/overview" ><span class="devsite-nav-text" tooltip>Send app feedback to EMMs</span></a></li><li class="devsite-nav-item"><a href="/work/app-feedback/testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/app-feedback/testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/app-feedback/testing" ><span class="devsite-nav-text" tooltip>Test app feedback</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/work/contacts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/contacts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/contacts" ><span class="devsite-nav-text" tooltip>Work contacts</span></a></li><li class="devsite-nav-item"><a href="/work/device-management-policy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/device-management-policy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/device-management-policy" ><span class="devsite-nav-text" tooltip>Device management policies</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Device management</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/work/dpc/build-dpc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/build-dpc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/build-dpc" ><span class="devsite-nav-text" tooltip>Build a device policy controller</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Dedicated devices</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/work/dpc/dedicated-devices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/dedicated-devices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/dedicated-devices" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/work/dpc/dedicated-devices/lock-task-mode" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/dedicated-devices/lock-task-mode" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/dedicated-devices/lock-task-mode" ><span class="devsite-nav-text" tooltip>Lock task mode</span></a></li><li class="devsite-nav-item"><a href="/work/dpc/dedicated-devices/multiple-users" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/dedicated-devices/multiple-users" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/dedicated-devices/multiple-users" ><span class="devsite-nav-text" tooltip>Multiple users</span></a></li><li class="devsite-nav-item"><a href="/work/dpc/dedicated-devices/cookbook" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/dedicated-devices/cookbook" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/dedicated-devices/cookbook" ><span class="devsite-nav-text" tooltip>Cookbook</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/work/dpc/device-management" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/device-management" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/device-management" ><span class="devsite-nav-text" tooltip>Device control</span></a></li><li class="devsite-nav-item"><a href="/work/dpc/network-telephony" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/network-telephony" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/network-telephony" ><span class="devsite-nav-text" tooltip>Networking and telephony</span></a></li><li class="devsite-nav-item"><a href="/work/dpc/security" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/security" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/security" ><span class="devsite-nav-text" tooltip>Security</span></a></li><li class="devsite-nav-item"><a href="/work/dpc/system-updates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/system-updates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/system-updates" ><span class="devsite-nav-text" tooltip>System updates</span></a></li><li class="devsite-nav-item"><a href="/work/dpc/logging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/dpc/logging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/dpc/logging" ><span class="devsite-nav-text" tooltip>Network activity logging</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android versions</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/work/versions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions" ><span class="devsite-nav-text" tooltip>About the versions</span></a></li><li class="devsite-nav-item"><a href="/work/versions/android-15" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions/android-15" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions/android-15" ><span class="devsite-nav-text" tooltip>Android 15</span></a></li><li class="devsite-nav-item"><a href="/work/versions/android-14" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions/android-14" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions/android-14" ><span class="devsite-nav-text" tooltip>Android 14</span></a></li><li class="devsite-nav-item"><a href="/work/versions/android-13" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions/android-13" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions/android-13" ><span class="devsite-nav-text" tooltip>Android 13</span></a></li><li class="devsite-nav-item"><a href="/work/versions/android-12" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions/android-12" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions/android-12" ><span class="devsite-nav-text" tooltip>Android 12</span></a></li><li class="devsite-nav-item"><a href="/work/versions/android-11" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions/android-11" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions/android-11" ><span class="devsite-nav-text" tooltip>Android 11</span></a></li><li class="devsite-nav-item"><a href="/work/versions/android-10" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions/android-10" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions/android-10" ><span class="devsite-nav-text" tooltip>Android 10</span></a></li><li class="devsite-nav-item"><a href="/work/versions/android-9.0" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions/android-9.0" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions/android-9.0" ><span class="devsite-nav-text" tooltip>Android 9</span></a></li><li class="devsite-nav-item"><a href="/work/versions/android-8.0" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions/android-8.0" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions/android-8.0" ><span class="devsite-nav-text" tooltip>Android 8.0</span></a></li><li class="devsite-nav-item"><a href="/work/versions/android-7.0" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/versions/android-7.0" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/versions/android-7.0" ><span class="devsite-nav-text" tooltip>Android 7.0</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/work/device-admin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /work/device-admin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/work/device-admin" ><span class="devsite-nav-text" tooltip>Device administration</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Best practices</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Testing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing" ><span class="devsite-nav-text" tooltip>Test apps on Android</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Fundamentals</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing/fundamentals" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/fundamentals" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/fundamentals" ><span class="devsite-nav-text" tooltip>Fundamentals of testing Android apps</span></a></li><li class="devsite-nav-item"><a href="/training/testing/fundamentals/what-to-test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/fundamentals/what-to-test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/fundamentals/what-to-test" ><span class="devsite-nav-text" tooltip>What to test in Android</span></a></li><li class="devsite-nav-item"><a href="/training/testing/fundamentals/test-doubles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/fundamentals/test-doubles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/fundamentals/test-doubles" ><span class="devsite-nav-text" tooltip>Using test doubles in Android</span></a></li><li class="devsite-nav-item"><a href="/training/testing/fundamentals/strategies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/fundamentals/strategies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/fundamentals/strategies" ><span class="devsite-nav-text" tooltip>Testing strategies</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Local tests</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing/local-tests" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/local-tests" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/local-tests" ><span class="devsite-nav-text" tooltip>Build local tests</span></a></li><li class="devsite-nav-item"><a href="/training/testing/local-tests/robolectric" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/local-tests/robolectric" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/local-tests/robolectric" ><span class="devsite-nav-text" tooltip>Robolectric</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Instrumented tests</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing/instrumented-tests" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/instrumented-tests" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/instrumented-tests" ><span class="devsite-nav-text" tooltip>Build instrumented tests</span></a></li><li class="devsite-nav-item"><a href="/training/testing/instrumented-tests/stability" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/instrumented-tests/stability" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/instrumented-tests/stability" ><span class="devsite-nav-text" tooltip>Big test stability</span></a></li><li class="devsite-nav-item"><a href="/training/testing/instrumented-tests/performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/instrumented-tests/performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/instrumented-tests/performance" ><span class="devsite-nav-text" tooltip>Performance testing</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>AndroidX test libraries</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing/instrumented-tests/androidx-test-libraries/test-setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/instrumented-tests/androidx-test-libraries/test-setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/instrumented-tests/androidx-test-libraries/test-setup" ><span class="devsite-nav-text" tooltip>Set up project for AndroidX Test</span></a></li><li class="devsite-nav-item"><a href="/training/testing/instrumented-tests/androidx-test-libraries/rules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/instrumented-tests/androidx-test-libraries/rules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/instrumented-tests/androidx-test-libraries/rules" ><span class="devsite-nav-text" tooltip>JUnit4 rules with AndroidX Test</span></a></li><li class="devsite-nav-item"><a href="/training/testing/instrumented-tests/androidx-test-libraries/runner" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/instrumented-tests/androidx-test-libraries/runner" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/instrumented-tests/androidx-test-libraries/runner" ><span class="devsite-nav-text" tooltip>AndroidJUnitRunner</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>UI tests</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing/ui-tests" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/ui-tests" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/ui-tests" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/training/testing/ui-tests/behavior" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/ui-tests/behavior" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/ui-tests/behavior" ><span class="devsite-nav-text" tooltip>Behavior UI tests</span></a></li><li class="devsite-nav-item"><a href="/training/testing/ui-tests/screenshot" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/ui-tests/screenshot" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/ui-tests/screenshot" ><span class="devsite-nav-text" tooltip>Screenshot tests</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Continuous integration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing/continuous-integration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/continuous-integration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/continuous-integration" ><span class="devsite-nav-text" tooltip>Basics</span></a></li><li class="devsite-nav-item"><a href="/training/testing/continuous-integration/automation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/continuous-integration/automation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/continuous-integration/automation" ><span class="devsite-nav-text" tooltip>Types of automation</span></a></li><li class="devsite-nav-item"><a href="/training/testing/continuous-integration/features" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/continuous-integration/features" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/continuous-integration/features" ><span class="devsite-nav-text" tooltip>Common features</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Espresso</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing/espresso" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso" ><span class="devsite-nav-text" tooltip>Espresso</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/basics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/basics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/basics" ><span class="devsite-nav-text" tooltip>Espresso basics</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/setup" ><span class="devsite-nav-text" tooltip>Espresso setup instructions</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/cheat-sheet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/cheat-sheet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/cheat-sheet" ><span class="devsite-nav-text" tooltip>Espresso cheat sheet</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/idling-resource" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/idling-resource" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/idling-resource" ><span class="devsite-nav-text" tooltip>Espresso idling resources</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/intents" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/intents" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/intents" ><span class="devsite-nav-text" tooltip>Espresso-Intents</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/lists" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/lists" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/lists" ><span class="devsite-nav-text" tooltip>Espresso lists</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/multiprocess" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/multiprocess" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/multiprocess" ><span class="devsite-nav-text" tooltip>Multiprocess Espresso</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/recipes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/recipes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/recipes" ><span class="devsite-nav-text" tooltip>Espresso recipes</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/web" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/web" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/web" ><span class="devsite-nav-text" tooltip>Espresso Web</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/accessibility-checking" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/accessibility-checking" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/accessibility-checking" ><span class="devsite-nav-text" tooltip>Accessibility checking</span></a></li><li class="devsite-nav-item"><a href="/training/testing/espresso/additional-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/espresso/additional-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/espresso/additional-resources" ><span class="devsite-nav-text" tooltip>Additional Resources for Espresso</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Testing different screen sizes</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing/different-screens" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/different-screens" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/different-screens" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/training/testing/different-screens/tools" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/different-screens/tools" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/different-screens/tools" ><span class="devsite-nav-text" tooltip>Libraries and tools</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Testing other components</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/training/testing/other-components/content-providers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/other-components/content-providers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/other-components/content-providers" ><span class="devsite-nav-text" tooltip>Test content providers</span></a></li><li class="devsite-nav-item"><a href="/training/testing/other-components/services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/other-components/services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/other-components/services" ><span class="devsite-nav-text" tooltip>Test your service</span></a></li><li class="devsite-nav-item"><a href="/training/testing/other-components/ui-automator" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /training/testing/other-components/ui-automator" track-type="bookNav" track-name="click" track-metadata-eventdetail="/training/testing/other-components/ui-automator" ><span class="devsite-nav-text" tooltip>Write automated tests with UI Automator</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/topic/performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /topic/performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/topic/performance" ><span class="devsite-nav-text" tooltip>Performance ⍈</span></a></li><li class="devsite-nav-item"><a href="/guide/topics/ui/accessibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/ui/accessibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/ui/accessibility" ><span class="devsite-nav-text" tooltip>Accessibility ⍈</span></a></li><li class="devsite-nav-item"><a href="/privacy-and-security/about" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-and-security/about" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-and-security/about" ><span class="devsite-nav-text" tooltip>Privacy ⍈</span></a></li><li class="devsite-nav-item"><a href="/privacy-and-security/security-tips" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-and-security/security-tips" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-and-security/security-tips" ><span class="devsite-nav-text" tooltip>Security ⍈</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>SDKs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/guide/practices/sdk-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/practices/sdk-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/practices/sdk-best-practices" ><span class="devsite-nav-text" tooltip>SDK best practices</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item"><a href="/games/guides" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/guides" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/guides" ><span class="devsite-nav-text" tooltip>Games ⍈</span></a></li> <li class="devsite-nav-item"><a href="/health-and-fitness/guides/health-connect" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /health-and-fitness/guides/health-connect" track-type="bookNav" track-name="click" track-metadata-eventdetail="/health-and-fitness/guides/health-connect" ><span class="devsite-nav-text" tooltip>Health Connect ⍈</span></a></li> <li class="devsite-nav-item"><a href="/health-and-fitness/guides/health-services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /health-and-fitness/guides/health-services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/health-and-fitness/guides/health-services" ><span class="devsite-nav-text" tooltip>Health Services on Wear OS ⍈</span></a></li> </ul> <ul class="devsite-nav-list" menu="Essentials" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Gemini in Android Studio </span> </span> </li> <li class="devsite-nav-item"> <a href="/gemini-in-android" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn more" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Learn more </span> </a> </li> <li class="devsite-nav-item"> <a href="/studio" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get Android Studio" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Get Android Studio </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Get started </span> </span> </li> <li class="devsite-nav-item"> <a href="/get-started/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Hello world" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Hello world </span> </a> </li> <li class="devsite-nav-item"> <a href="/courses" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Training courses" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Training courses </span> </a> </li> <li class="devsite-nav-item"> <a href="/get-started/codelabs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tutorials" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Tutorials </span> </a> </li> <li class="devsite-nav-item"> <a href="/kotlin" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Kotlin for Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Kotlin for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="https://play.google.com/console/about/guides/monetize/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Monetization with Play ↗️" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Monetization with Play ↗️ </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Extend by device </span> </span> </li> <li class="devsite-nav-item"> <a href="/adaptive-apps" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Adaptive apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Adaptive apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/wear" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Wear OS </span> </a> </li> <li class="devsite-nav-item"> <a href="/cars" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android for Cars" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android for Cars </span> </a> </li> <li class="devsite-nav-item"> <a href="/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android TV" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android TV </span> </a> </li> <li class="devsite-nav-item"> <a href="/chrome-os" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ChromeOS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > ChromeOS </span> </a> </li> <li class="devsite-nav-item"> <a href="/multi-device-development" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cross-device SDK" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cross-device SDK </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build by category </span> </span> </li> <li class="devsite-nav-item"> <a href="/games" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Games" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Games </span> </a> </li> <li class="devsite-nav-item"> <a href="/media" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Camera & Media" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Camera & Media </span> </a> </li> <li class="devsite-nav-item"> <a href="/social-and-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Social & messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Social & messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/health-and-fitness" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Health & Fitness" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Health & Fitness </span> </a> </li> <li class="devsite-nav-item"> <a href="/productivity" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Productivity" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Productivity </span> </a> </li> <li class="devsite-nav-item"> <a href="/work/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Enterprise apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Enterprise apps </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Get the latest </span> </span> </li> <li class="devsite-nav-item"> <a href="/latest-updates" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Latest updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Latest updates </span> </a> </li> <li class="devsite-nav-item"> <a href="/latest-updates/experimental" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Experimental updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Experimental updates </span> </a> </li> <li class="devsite-nav-item"> <a href="/studio/preview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Studio preview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android Studio preview </span> </a> </li> <li class="devsite-nav-item"> <a href="/jetpack/androidx/versions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Jetpack & Compose libraries" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Jetpack & Compose libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/wearables/versions/4" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS preview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Wear OS preview </span> </a> </li> <li class="devsite-nav-item"> <a href="/design-for-safety/privacy-sandbox" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Privacy Sandbox" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Privacy Sandbox </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Design & Plan" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > UI Design </span> </span> </li> <li class="devsite-nav-item"> <a href="/design/ui" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Design for Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Design for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/mobile" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Mobile" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Mobile </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/large-screens" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Large screens (e.g., tablets)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Large screens (e.g., tablets) </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/widget" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Widgets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Widgets </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/wear" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Wear OS </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android TV" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android TV </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Architecture </span> </span> </li> <li class="devsite-nav-item"> <a href="/topic/architecture/intro" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Introduction" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Introduction </span> </a> </li> <li class="devsite-nav-item"> <a href="/topic/libraries/view-binding" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Libraries" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/navigation/navigation-principles" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Navigation" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Navigation </span> </a> </li> <li class="devsite-nav-item"> <a href="/topic/modularization" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Modularization" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Modularization </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/testing/fundamentals" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Testing" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Testing </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Quality </span> </span> </li> <li class="devsite-nav-item"> <a href="/quality" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/quality/core-value" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Core value" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Core value </span> </a> </li> <li class="devsite-nav-item"> <a href="/quality/user-experience" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: User experience" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > User experience </span> </a> </li> <li class="devsite-nav-item"> <a href="/quality/technical" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Technical quality" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Technical quality </span> </a> </li> <li class="devsite-nav-item"> <a href="/quality/privacy-and-security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Security </span> </span> </li> <li class="devsite-nav-item"> <a href="/security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/privacy-and-security/about" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Privacy" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Privacy </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Identity" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Identity </span> </a> </li> <li class="devsite-nav-item"> <a href="/security/fraud-prevention" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Fraud prevention" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Fraud prevention </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build for Billions </span> </span> </li> <li class="devsite-nav-item"> <a href="/build-for-billions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/quality-guidelines/build-for-billions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: About new markets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > About new markets </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/topics/androidgo" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android (Go edition)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android (Go edition) </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Develop" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build AI experiences </span> </span> </li> <li class="devsite-nav-item"> <a href="/ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get started" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Get started </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Core areas </span> </span> </li> <li class="devsite-nav-item"> <a href="/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> </a> </li> <li class="devsite-nav-item"> <a href="/quick-guides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Try Quick Guidesᵇᵉᵗᵃ" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Try Quick Guidesᵇᵉᵗᵃ </span> </a> </li> <li class="devsite-nav-item"> <a href="/develop/ui" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: User interfaces" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > User interfaces </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/topics/permissions/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Permissions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Permissions </span> </a> </li> <li class="devsite-nav-item"> <a href="/develop/background-work" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Background work" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Background work </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/topics/data" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data and files" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data and files </span> </a> </li> <li class="devsite-nav-item"> <a href="/develop#core-areas" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: All core areas ⤵️" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > All core areas ⤵️ </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Tools and workflow </span> </span> </li> <li class="devsite-nav-item"> <a href="/studio/write" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Write and debug code" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Write and debug code </span> </a> </li> <li class="devsite-nav-item"> <a href="/build/gradle-build-overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build projects" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build projects </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/testing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test your app" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Test your app </span> </a> </li> <li class="devsite-nav-item"> <a href="/topic/performance/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Performance </span> </a> </li> <li class="devsite-nav-item"> <a href="/tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Command-line tools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Command-line tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference/tools/gradle-api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gradle plugin API" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gradle plugin API </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Device tech </span> </span> </li> <li class="devsite-nav-item"> <a href="/guide/topics/large-screens/get-started-with-large-screens" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Large screens (e.g., tablets)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Large screens (e.g., tablets) </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/wearables" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Wear OS </span> </a> </li> <li class="devsite-nav-item"> <a href="/health-and-fitness/guides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Health" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android Health </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/topics/connectivity/cross-device-sdk/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cross-device SDK" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cross-device SDK </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/cars" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android for Cars" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android for Cars </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android TV" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android TV </span> </a> </li> <li class="devsite-nav-item"> <a href="/chrome-os/intro" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ChromeOS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > ChromeOS </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Libraries </span> </span> </li> <li class="devsite-nav-item"> <a href="/reference/packages" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android platform" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android platform </span> </a> </li> <li class="devsite-nav-item"> <a href="/jetpack/androidx/explorer" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Jetpack libraries" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Jetpack libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="/jetpack/androidx/releases/compose" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compose libraries" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compose libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/android/reference/packages" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play services ↗️" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Play services ↗️ </span> </a> </li> <li class="devsite-nav-item"> <a href="https://play.google.com/sdks" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play SDK index ↗️" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Play SDK index ↗️ </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-banner devsite-banner-announcement nocontent" background="blue" > <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> DataStore offers a more modern way of storing local data. You should use DataStore instead of SharedPreferences. Read the <a href="/topic/libraries/architecture/datastore">DataStore</a> guide for more information. </div> </div> </div> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developer.android.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Android Developers" > Android Developers </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developer.android.com/develop" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Develop </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developer.android.com/guide" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="" > Guides </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <h1 class="devsite-page-title" tabindex="-1"> Android storage use cases and best practices </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <devsite-recommendations-dropdown class="nocontent"></devsite-recommendations-dropdown> <div class="devsite-article-body clearfix "> <p>To give users more control over their files and limit file clutter, Android 10 introduced a new storage paradigm for apps called <a href="/training/data-storage#scoped-storage">scoped storage</a>. Scoped storage changes the way apps store and access files on a device's external storage. To help you migrate your app to support scoped storage, follow the best practices for common storage use cases that are outlined in this guide. The use cases are organized into two categories: <a href="#handle-media-files">handling media files</a> and <a href="#handle-non-media-files">handling non-media files</a>.</p> <p>In many cases, your app creates files that other apps don't need to access, or shouldn't access. The system provides <a href="#handle-app-specific-files">app-specific storage locations</a> to manage such files.</p> <p>To learn more about how to store and access files on Android, see the <a href="/training/data-storage">storage training guides</a>.</p> <h2 id="handle-media-files" data-text="Handle media files" tabindex="-1">Handle media files</h2> <p>This section describes some of the common use cases for handling media files (video, image, and audio files) and explains the high-level approach that your app can use. The following table summarizes each of these use cases, and links to the each of sections that contain further details.</p> <table> <tr> <th>Use case</th> <th>Summary</th> </tr> <tr> <td><a href="#show-all-files-media">Show all image or video files</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#show-all-folder">Show images or videos from a particular folder</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#access-photo-locations">Access location information from photos</a></td> <td>Use one approach if your app uses scoped storage. Use a different approach if your app opts out of scoped storage.</td> </tr> <tr> <td><a href="#download-media-files">Define storage location for new downloads</a></td> <td>Use one approach if your app uses scoped storage. Use a different approach if your app opts out of scoped storage.</td> </tr> <tr> <td><a href="#export-media-files-to-device">Export user media files to a device</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#modify-delete-media">Modify or delete multiple media files in a single operation</a></td> <td>Use one approach for Android 11. For Android 10, opt out of scoped storage and use the approach for Android 9 and lower instead.</td> </tr> <tr> <td><a href="#import-image-media">Import a single image that already exists</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#capture-image-media">Capture a single image</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#share-media-all">Share media files with other apps</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#share-media-specific">Share media files with a specific app</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#access-file-paths">Access files from code or libraries that use direct file paths</a></td> <td>Use one approach for Android 11. For Android 10, opt out of scoped storage and use the approach for Android 9 and lower instead.</td> </tr> </table> <h3 id="show-all-files-media" data-text="Show image or video files from multiple folders" tabindex="-1">Show image or video files from multiple folders</h3> <p><a href="/training/data-storage/shared/media#query-collection">Query a media collection</a> using the <a href="/reference/android/content/ContentResolver#query(android.net.Uri,%20java.lang.String%5B%5D,%20java.lang.String,%20java.lang.String%5B%5D,%20java.lang.String,%20android.os.CancellationSignal)"><code translate="no" dir="ltr">query()</code></a> API. To filter or sort the media files, adjust the <code translate="no" dir="ltr">projection</code>, <code translate="no" dir="ltr">selection</code>, <code translate="no" dir="ltr">selectionArgs</code>, and <code translate="no" dir="ltr">sortOrder</code> parameters.</p> <h3 id="show-all-folder" data-text="Show images or videos from a particular folder" tabindex="-1">Show images or videos from a particular folder</h3> <p>Use this approach:</p> <ol> <li>Following the best practices outlined in <a href="/training/permissions/requesting">Request App Permissions</a>, request the <a href="/reference/android/Manifest.permission#READ_EXTERNAL_STORAGE"><code translate="no" dir="ltr">READ_EXTERNAL_STORAGE</code></a> permission.</li> <li>Retrieve media files based on the value of <a href="/reference/kotlin/android/provider/MediaStore.MediaColumns#data"><code translate="no" dir="ltr">MediaColumns.DATA</code></a>, which contains the absolute filesystem path to the media item on disk.</li> </ol> <div class="note"> <p><b>Note:</b> When you access an existing media file, you can use the value of the <a href="/reference/android/provider/MediaStore.MediaColumns#DATA"><code translate="no" dir="ltr">DATA</code></a> column in your logic. That's because this value has a valid file path. However, don't assume that the file is always available. Be prepared to handle any file-based I/O errors that could occur.</p> <p>To create or update a media file, on the other hand, don't use the <code translate="no" dir="ltr">DATA</code> column. Instead, use the <code translate="no" dir="ltr">DISPLAY_NAME</code> and <code translate="no" dir="ltr">RELATIVE_PATH</code> columns.</p> </div> <h3 id="access-photo-locations" data-text="Access location information from photos" tabindex="-1">Access location information from photos</h3> <p>If your app uses scoped storage, follow the steps in the <a href="/training/data-storage/shared/media#location-info-photos">Location information in photographs</a> section of the media storage guide.</p> <aside class="note"><strong>Note:</strong><span> As described on the <a href="/training/data-storage/shared/media#media-location-permission">Access media files from shared storage</a> page, apps that target Android 10 or higher need the <a href="/reference/android/Manifest.permission#ACCESS_MEDIA_LOCATION"><code translate="no" dir="ltr">ACCESS_MEDIA_LOCATION</code></a> permission to read unredacted location information in images accessed using the <a href="/reference/android/provider/MediaStore"><code translate="no" dir="ltr">MediaStore</code></a> API.</span></aside> <h3 id="download-media-files" data-text="Define storage location for new downloads" tabindex="-1">Define storage location for new downloads</h3> <p>If your app uses scoped storage, be mindful of the location where you choose to store media files that you download.</p> <p>If other apps require access to files, consider using <a href="/training/data-storage/shared/media#well-defined-collections">well-defined media collections</a> for downloads or document collections.</p> <aside class="note"><strong>Note:</strong><span> Files stored in an <a href="/training/data-storage/app-specific#external">app-specific directory on external storage</a> aren't accessible to other apps on Android 11 or higher, regardless of target SDK level.</span></aside> <p>On Android 11 and higher, the files inside of your external app-specific directory aren't accessible to other apps, even if you use <a href="/reference/android/app/DownloadManager"><code translate="no" dir="ltr">DownloadManager</code></a> to fetch these files.</p> <h3 id="export-media-files-to-device" data-text="Export user media files to a device" tabindex="-1">Export user media files to a device</h3> <p>Define a proper default location to store user media files:</p> <ul> <li>Allow users to choose whether to make their media files readable by other apps or not, using <a href="/training/data-storage/app-specific">app-specific-storage</a> or <a href="/training/data-storage/shared/media">shared storage</a>.</li> <li>Allow users to export files from <a href="/reference/android/content/Context#getExternalFilesDirs(java.lang.String)">app-specific directories</a> to a more generally accessible location. Use <a href="/training/data-storage/shared/media#well-defined-collections">MediaStore's images, video, and audio collections</a> to export media files to the device's gallery.</li> </ul> <aside class="note"><strong>Note:</strong><span> To avoid cluttering, use generally accessible locations like <a href="/reference/android/os/Environment#getExternalStoragePublicDirectory(java.lang.String)"><code translate="no" dir="ltr">externalStoragePublicDirectory()</code></a> or <a href="/reference/android/content/Context#getExternalMediaDirs()"><code translate="no" dir="ltr">externalMediaDirs()</code></a>.</span></aside> <h3 id="modify-delete-media" data-text="Modify or delete multiple media files in a single operation" tabindex="-1">Modify or delete multiple media files in a single operation</h3> <p>Incorporate logic based on the Android versions that your app runs on.</p> <h4 id="running_on" data-text="Running on Android 11" tabindex="-1">Running on Android 11</h4> <p>Use this approach:</p> <ol> <li>Create a pending intent for your app's write or delete request using <a href="/reference/android/provider/MediaStore#createWriteRequest(android.content.ContentResolver,%20java.util.Collection%3Candroid.net.Uri%3E)"><code translate="no" dir="ltr">MediaStore.createWriteRequest()</code></a> or <a href="/reference/android/provider/MediaStore#createTrashRequest(android.content.ContentResolver,%20java.util.Collection%3Candroid.net.Uri%3E,%20boolean)"><code translate="no" dir="ltr">MediaStore.createTrashRequest()</code></a> and then prompt the user for permission to edit a set of files by invoking that intent.</li> <li><p>Evaluate the user's response:</p> <ul> <li>If the permission was granted, proceed with the modify or delete operation.</li> <li>If the permission wasn't granted, explain to the user why the feature in your app needs the permission.</li> </ul></li> </ol> <p>Learn more about how to <a href="/training/data-storage/shared/media#manage-groups-files">manage groups of media files</a> using these methods that are available on Android 11 and higher.</p> <h4 id="running_on_android_10" data-text="Running on Android 10" tabindex="-1">Running on Android 10</h4> <p>If your app targets Android 10 (API level 29), <a href="#opt-out-scoped-storage">opt-out of scoped storage</a> and continue using the approach for Android 9 and lower to perform this operation.</p> <h4 id="running_on_android_9_or_lower" data-text="Running on Android 9 or lower" tabindex="-1">Running on Android 9 or lower</h4> <p>Use this approach:</p> <ol> <li>Following the best practices outlined in <a href="/training/permissions/requesting">Request App Permissions</a>, request the <a href="/reference/android/Manifest.permission#WRITE_EXTERNAL_STORAGE"><code translate="no" dir="ltr">WRITE_EXTERNAL_STORAGE</code></a> permission.</li> <li>Use the <a href="/reference/android/provider/MediaStore"><code translate="no" dir="ltr">MediaStore</code></a> API to modify or delete the media files.</li> </ol> <h3 id="import-image-media" data-text="Import a single image that already exists" tabindex="-1">Import a single image that already exists</h3> <p>When you want to import a single image that already exists (for example, to use as the photo for a user's profile), your app can either use its own UI for the operation, or it can use the system picker.</p> <h4 id="media-import-app" data-text="Present your own user interface" tabindex="-1">Present your own user interface</h4> <p>Use this approach:</p> <ol> <li>Following the best practices outlined in <a href="/training/permissions/requesting">Request App Permissions</a>, request the <a href="/reference/android/Manifest.permission#READ_EXTERNAL_STORAGE"><code translate="no" dir="ltr">READ_EXTERNAL_STORAGE</code></a> permission.</li> <li>Use the <a href="/reference/android/content/ContentResolver#query(android.net.Uri,%20java.lang.String%5B%5D,%20java.lang.String,%20java.lang.String%5B%5D,%20java.lang.String,%20android.os.CancellationSignal)"><code translate="no" dir="ltr">query()</code></a> API to <a href="/training/data-storage/shared/media#query-collection">query a media collection</a>.</li> <li>Display the results in your app's custom UI.</li> </ol> <h4 id="media-import-system" data-text="Use the system picker" tabindex="-1">Use the system picker</h4> <p>Use the <a href="/reference/android/content/Intent#ACTION_GET_CONTENT"><code translate="no" dir="ltr">ACTION_GET_CONTENT</code></a> intent, which asks the user to pick an image to import.</p> <p>If you want to filter the types of images that the system picker presents to the user to choose from, you can use <a href="/reference/android/content/Intent#setType(java.lang.String)"><code translate="no" dir="ltr">setType()</code></a> or <a href="/reference/android/content/Intent#EXTRA_MIME_TYPES"><code translate="no" dir="ltr">EXTRA_MIME_TYPES</code></a>.</p> <h3 id="capture-image-media" data-text="Capture a single image" tabindex="-1">Capture a single image</h3> <p>When you want to capture a single image to use in your app (for example, to use as the photo for a user's profile), use the <a href="/reference/android/provider/MediaStore#ACTION_IMAGE_CAPTURE"><code translate="no" dir="ltr">ACTION_IMAGE_CAPTURE</code></a> intent to ask the user to take a photo using the device's camera. The system stores the captured photo in the <a href="/reference/android/provider/MediaStore.Images"><code translate="no" dir="ltr">MediaStore.Images</code></a> table.</p> <h3 id="share-media-all" data-text="Share media files with other apps" tabindex="-1">Share media files with other apps</h3> <p>Use the <a href="/reference/android/content/ContentResolver#insert(android.net.Uri,%20android.content.ContentValues)"><code translate="no" dir="ltr">insert()</code></a> method to add records directly into the MediaStore. For more information, see the <a href="/training/data-storage/shared/media#add-item">Add an item</a> section of the media storage guide.</p> <h3 id="share-media-specific" data-text="Share media files with a specific app" tabindex="-1">Share media files with a specific app</h3> <p>Use the Android <code translate="no" dir="ltr">FileProvider</code> component, as described in the <a href="/training/secure-file-sharing/setup-sharing">Setting up file sharing</a> guide.</p> <h3 id="access-file-paths" data-text="Access files from code or libraries that use direct file paths" tabindex="-1">Access files from code or libraries that use direct file paths</h3> <p>Incorporate logic based on the Android versions that your app runs on.</p> <h4 id="running_on" data-text="Running on Android 11" tabindex="-1">Running on Android 11</h4> <p>Use this approach:</p> <ol> <li>Following the best practices outlined in <a href="/training/permissions/requesting">Request App Permissions</a>, request the <a href="/reference/android/Manifest.permission#READ_EXTERNAL_STORAGE"><code translate="no" dir="ltr">READ_EXTERNAL_STORAGE</code></a> permission.</li> <li>Access the files using direct file paths.</li> </ol> <p>For more information, see the section about how to open media files using <a href="/training/data-storage/shared/media#direct-file-paths">direct file paths</a>.</p> <h4 id="running_on_android_10_2" data-text="Running on Android 10" tabindex="-1">Running on Android 10</h4> <p>If your app targets Android 10 (API level 29), <a href="#opt-out-scoped-storage">opt-out of scoped storage</a> and continue using the approach for Android 9 and lower to perform this operation.</p> <h4 id="running_on_android_9_or_lower_2" data-text="Running on Android 9 or lower" tabindex="-1">Running on Android 9 or lower</h4> <p>Use this approach:</p> <ol> <li>Following the best practices outlined in <a href="/training/permissions/requesting">Request App Permissions</a>, request the <a href="/reference/android/Manifest.permission#WRITE_EXTERNAL_STORAGE"><code translate="no" dir="ltr">WRITE_EXTERNAL_STORAGE</code></a> permission.</li> <li>Access the files using direct file paths.</li> </ol> <h2 id="handle-non-media-files" data-text="Handle non-media files" tabindex="-1">Handle non-media files</h2> <p>This section describes some of the common use cases for handling non-media files and explains the high-level approach that your app can use. The following table summarizes each of these use cases, and links to the each of sections that contain further details.</p> <table> <tr> <th>Use case</th> <th>Summary</th> </tr> <tr> <td><a href="#open-document">Open a document file</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#write-files-secondary-storage-volumes">Write to files on secondary storage volumes</a></td> <td>Use one approach for Android 11. Use a different approach for earlier versions of Android.</td> </tr> <tr> <td><a href="#migrate-legacy-storage">Migrate existing files from a legacy storage location</a></td> <td>Migrate your files to scoped storage when possible. Opt out of scoped storage for Android 10 when necessary.</td> </tr> <tr> <td><a href="#sharing-non-media-files">Share content with other apps</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#cache-non-media">Cache non-media files</a></td> <td>Use the same approach for all versions of Android.</td> </tr> <tr> <td><a href="#export-files-to-device">Export non-media files to a device</a></td> <td>Use one approach if your app uses scoped storage. Use a different approach if your app opts out of scoped storage.</td> </tr> </table> <h3 id="open-document" data-text="Open a document file" tabindex="-1">Open a document file</h3> <p>Use the <a href="/reference/android/content/Intent#ACTION_OPEN_DOCUMENT"><code translate="no" dir="ltr">ACTION_OPEN_DOCUMENT</code></a> intent to ask the user to pick a file to open using the system picker. If you want to filter the types of files that the system picker will present to the user to choose from, you can use <a href="/reference/android/content/Intent#setType(java.lang.String)"><code translate="no" dir="ltr">setType()</code></a> or <a href="/reference/android/content/Intent#EXTRA_MIME_TYPES"><code translate="no" dir="ltr">EXTRA_MIME_TYPES</code></a>.</p> <p>For example, you could find all PDF, ODT, and TXT files using the following code:</p> <div> <div class="ds-selector-tabs"><section><h3 id="kotlin" data-text="Kotlin" tabindex="-1">Kotlin</h3> <pre class="prettyprint lang-kotlin" translate="no" dir="ltr"> startActivityForResult( Intent(Intent.ACTION_OPEN_DOCUMENT).apply { addCategory(Intent.CATEGORY_OPENABLE) type = "*/*" putExtra(Intent.EXTRA_MIME_TYPES, arrayOf( "application/pdf", // .pdf "application/vnd.oasis.opendocument.text", // .odt "text/plain" // .txt )) }, REQUEST_CODE ) </pre> </section><section><h3 id="java" data-text="Java" tabindex="-1">Java</h3> <pre class="prettyprint lang-java" translate="no" dir="ltr"> Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); intent.putExtra(Intent.EXTRA_MIME_TYPES, new String[] { "application/pdf", // .pdf "application/vnd.oasis.opendocument.text", // .odt "text/plain" // .txt }); startActivityForResult(intent, REQUEST_CODE); </pre> </section></div> </div> <h3 id="write-files-secondary-storage-volumes" data-text="Write to files on secondary storage volumes" tabindex="-1">Write to files on secondary storage volumes</h3> <p>Secondary storage volumes include SD cards. You can access information about a given storage volume using the <a href="/reference/android/os/storage/StorageVolume"><code translate="no" dir="ltr">StorageVolume</code></a> class.</p> <p>Incorporate logic based on the Android version that your app runs on.</p> <h4 id="running_on_android_11" data-text="Running on Android 11" tabindex="-1">Running on Android 11</h4> <aside class="note"><strong>Note:</strong><span> The following approach provides access only to <em>reliable</em> volumes, which are volumes that an app can successfully access most of the time.</span></aside> <p>Use this approach:</p> <ol> <li>Use the <a href="/training/data-storage#scoped-storage">scoped storage</a> model.</li> <li>Target Android 10 (API level 29) or lower.</li> <li>Declare the <a href="/reference/android/Manifest.permission#WRITE_EXTERNAL_STORAGE"><code translate="no" dir="ltr">WRITE_EXTERNAL_STORAGE</code></a> permission.</li> <li>Perform one of the following types of access: <ul> <li>File access using the <code translate="no" dir="ltr">MediaStore</code> API.</li> <li>Direct file path access using APIs such as <a href="/reference/java/io/File"><code translate="no" dir="ltr">File</code></a> or <code translate="no" dir="ltr">fopen()</code>.</li> </ul></li> </ol> <h4 id="running_on_older_versions" data-text="Running on older versions" tabindex="-1">Running on older versions</h4> <p>Use the <a href="/training/data-storage/shared/documents-files">Storage Access Framework</a>, which allows users to select the location on a secondary storage volume where your app can write the file.</p> <h3 id="migrate-legacy-storage" data-text="Migrate existing files from a legacy storage location" tabindex="-1">Migrate existing files from a legacy storage location</h3> <p>A directory is considered a <em>legacy storage location</em> if it isn't an app-specific directory or a public shared directory. If your app creates or consumes files in a legacy storage location, we recommend that you migrate your app's files to locations that are accessible with scoped storage and make any necessary app changes to work with files in scoped storage.</p> <h4 id="maintain_access_to_the_legacy_storage_location_for_data_migration" data-text="Maintain access to the legacy storage location for data migration" tabindex="-1">Maintain access to the legacy storage location for data migration</h4> <p>Your app needs to maintain access to the legacy storage location in order to migrate any app files to locations that are accessible with scoped storage. The approach you should use depends on your app’s target API level.</p> <h5 id="if_your_app_targets" data-text="If your app targets Android 11" tabindex="-1">If your app targets Android 11</h5> <ol> <li><p>Set the <a href="/reference/android/R.attr#preserveLegacyExternalStorage"><code translate="no" dir="ltr">preserveLegacyExternalStorage</code></a> flag to <code translate="no" dir="ltr">true</code> to <a href="/about/versions/11/privacy/storage#migrate-data-for-scoped-storage">preserve the legacy storage model</a> so that your app can migrate a user's data when they upgrade to the new version of your app that targets Android 11.</p> <aside class="note"><strong>Note:</strong><span> If you set <code translate="no" dir="ltr">preserveLegacyExternalStorage</code> to <code translate="no" dir="ltr">true</code>, the legacy storage model remains in effect only until the user uninstalls your app. If the user installs or reinstalls your app on a device that runs Android 11, then your app cannot opt out the scoped storage model, regardless of the value of <code translate="no" dir="ltr">preserveLegacyExternalStorage</code>.</span></aside></li> <li><p>Continue to <a href="#opt-out-scoped-storage">opt out of scoped storage</a> so that your app can continue to access your files in the legacy storage location on Android 10 devices.</p></li> </ol> <h5 id="if_your_app_targets" data-text="If your app targets Android 10" tabindex="-1">If your app targets Android 10</h5> <p><a href="#opt-out-scoped-storage">Opt out of scoped storage</a> to make it easier to maintain your app's behavior across Android versions.</p> <h4 id="migrate_app_data" data-text="Migrate app data" tabindex="-1">Migrate app data</h4> <p>When your app is ready to migrate, use the following approach:</p> <ol> <li>Target Android 10 or lower.</li> <li><a href="#opt-out-scoped-storage">Opt out of scoped storage</a> so that your app has access to the files that you need to migrate.</li> <li> <p>Deploy code that uses the <code translate="no" dir="ltr">File</code> API to move files from their current location under <code translate="no" dir="ltr">/sdcard/</code> to a location that's accessible with scoped storage:</p> <ol type="a"> <li>Move any private app files to the directory that is returned by the <a href="/reference/android/content/Context#getExternalFilesDir(java.lang.String)"><code translate="no" dir="ltr">getExternalFilesDir()</code></a> method.</li> <li>Move any shared non-media files to an app-dedicated subdirectory of the <code translate="no" dir="ltr">Downloads/</code> directory.</li> </ol> </li> <li>Remove your app's legacy storage directories from the <code translate="no" dir="ltr">/sdcard/</code> directory.</li> </ol> <p>After users install the new version of your app, they complete the data migration process on their devices. You can monitor the migration process across your user base by creating an analytics event.</p> <p>After users have migrated their data, publish another update to your app, where you target Android 11.</p> <h3 id="sharing-non-media-files" data-text="Share content with other apps" tabindex="-1">Share content with other apps</h3> <p>To share your app's files with a single other app, <a href="/training/secure-file-sharing">use a <code translate="no" dir="ltr">FileProvider</code></a>. For apps that all need to share files between each other, we recommend <a href="/guide/topics/providers/content-provider-basics">using a content provider</a> for each app, and then syncing the data as apps are added to the collection.</p> <h3 id="cache-non-media" data-text="Cache non-media files" tabindex="-1">Cache non-media files</h3> <p>The approach that you should use depends on the type of files that you need to cache.</p> <ul> <li><strong>Small files or files that contain sensitive information</strong>: Use <a href="/reference/android/content/Context#getCacheDir()"><code translate="no" dir="ltr">Context#getCacheDir()</code></a>.</li> <li><strong>Large files or files that do not contain sensitive information</strong>: Use <a href="/reference/android/content/Context#getExternalCacheDir()"><code translate="no" dir="ltr">Context#getExternalCacheDir()</code></a>.</li> </ul> <h3 id="export-files-to-device" data-text="Export non-media files to a device" tabindex="-1">Export non-media files to a device</h3> <p>Define a proper default location to store non-media files. Allow users to export files from <a href="/reference/android/content/Context#getExternalFilesDirs(java.lang.String)">app-specific directories</a> to a more generally accessible location. Use <a href="/training/data-storage/shared/documents-files">MediaStore's downloads or document collections</a> to export non-media files to the device.</p> <aside class="note"><strong>Note:</strong><span> To avoid cluttering, use generally accessible locations like <a href="/reference/android/os/Environment#getExternalStoragePublicDirectory(java.lang.String)"><code translate="no" dir="ltr">externalStoragePublicDirectory()</code></a> or <a href="/reference/android/content/Context#getExternalMediaDirs()"><code translate="no" dir="ltr">externalMediaDirs()</code></a>.</span></aside> <h2 id="handle-app-specific-files" data-text="Handle App-specific Files" tabindex="-1">Handle App-specific Files</h2> <p>In case your app creates files that other apps don't need to access, or shouldn't access, you can store these files in <a href="/training/data-storage/app-specific">app-specific storage locations</a>.</p> <h3 id="app-specific-internal-storage" data-text="Internal storage directories" tabindex="-1">Internal storage directories</h3> <p>The system prevents other apps from accessing these locations, and on Android 10 (API level 29) and higher, these locations are encrypted. These locations are a good place to store sensitive data that only your app can access.</p> <h3 id="app-specific-external-storage" data-text="External storage directories" tabindex="-1">External storage directories</h3> <p>If internal storage doesn't provide enough space to store app-specific files, consider using external storage instead. Although it's possible for another app to <a href="/training/data-storage/app-specific#external">access these directories</a> if that app has the proper permissions, the files stored in these directories are meant for use only by your app.</p> <p>On Android 4.4 (API level 19) or higher, your app doesn't need to request any storage-related permissions to access app-specific directories within external storage.</p> <p>When the user uninstalls your app, the files saved in app-specific storage are removed, and hence, you shouldn't use this storage to save anything that the user expects to persist independently of your app.</p> <h2 id="opt-out-scoped-storage" data-text="Temporarily opt-out of scoped storage" tabindex="-1">Temporarily opt-out of scoped storage</h2> <p>Before your app is fully compatible with scoped storage, you can temporarily opt out, both in <a href="#opt-out-in-tests">your tests</a> and in your <a href="#opt-out-in-production-app">production app</a>.</p> <h3 id="opt-out-in-tests" data-text="Opt out in your tests" tabindex="-1">Opt out in your tests</h3> <p>On Android 10 (API level 29) and higher, your app's tests run in a storage sandbox by default. This sandbox prevents your app from accessing files outside of the app-specific directory and publicly-shared directories.</p> <p>If a test outputs files for the host—such as screenshots, debugging data, coverage data, or performance metrics—you can write these files to global directories. To do so, add the following flag to the relevant harness that invokes <code translate="no" dir="ltr">am instrument</code>:</p> <pre class="none" translate="no" dir="ltr"> -e no-isolated-storage 1 </pre> <p>This flag affects all behavior of the instrumented test case, and it affects all invoked test code. Therefore, when you use this flag, you can't validate your app's compatibility with scoped storage. For test output, it's better to instead write to app-scoped storage that's readable by the shell. You can then pull that app-scoped directory. To determine which directory to pull from, call <a href="/reference/android/content/Context#getExternalMediaDirs()"><code translate="no" dir="ltr">getExternalMediaDirs()</code></a>.</p> <aside class="note"><strong>Note:</strong><span> The files in app-scoped storage don't persist after your app is uninstalled.</span></aside> <h3 id="opt-out-in-production-app" data-text="Opt out in your production app" tabindex="-1">Opt out in your production app</h3> <p>If your app targets Android 10 (API level 29) or lower, you can temporarily opt out of scoped storage in your production app. If you target Android 10, however, you need to set the value of <code translate="no" dir="ltr">requestLegacyExternalStorage</code> to <code translate="no" dir="ltr">true</code> in your app's manifest file:</p> <pre class="prettyprint lang-xml" translate="no" dir="ltr"> <manifest ... > <!-- This attribute is "false" by default on apps targeting Android 10. --> <application android:requestLegacyExternalStorage="true" ... > ... </application> </manifest> </pre> <aside class="caution"><strong>Caution:</strong><span> After you update your app to target Android 11 (API level 30), <a href="/about/versions/11/privacy/storage#scoped-storage">the system ignores the <code translate="no" dir="ltr">requestLegacyExternalStorage</code> attribute</a> when your app is running on Android 11 devices, so your app must be ready to support scoped storage and to <a href="#migrate-legacy-storage">migrate app data</a> for users on those devices.</span></aside> <p>To test how an app targeting Android 10 or lower behaves when using scoped storage, you can opt in to the behavior by setting the value of <code translate="no" dir="ltr">requestLegacyExternalStorage</code> to <code translate="no" dir="ltr">false</code>. If you are testing on a device that runs Android 11, you can also <a href="/about/versions/11/privacy/storage#test-scoped-storage">use app compatibility flags</a> to test your app's behavior with or without scoped storage.</p> <h2 id="addt-resources" data-text="Additional resources" tabindex="-1">Additional resources</h2> <p>For more information about Android storage, view the following materials:</p> <h3 id="addt-resources-blog-posts" data-text="Blog posts" tabindex="-1">Blog posts</h3> <ul> <li><a href="https://android-developers.googleblog.com/2020/07/bringing-modern-storage-to-vibers-users.html">Bringing modern storage to Viber's users</a></li> </ul> <devsite-hats-survey class="nocontent" hats-id="7awMnpd6z0kxBYCLVTd0TpemiQeY" listnr-id="5207477"></devsite-hats-survey> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Content and code samples on this page are subject to the licenses described in the <a href="/license">Content License</a>. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.</p> <p>Last updated 2024-11-12 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-11-12 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="//x.com/AndroidDev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer X Promo" > <picture> <source class="devsite-dark-theme" srcset="https://developer.android.com/_static/android/images/logo-x_dt.svg" media="(prefers-color-scheme: dark)" loading="lazy" alt="X"> <img class="devsite-footer-promo-icon" src="/_static/android/images/logo-x.svg" loading="lazy" alt="X"> </picture> <span class="devsite-footer-promo-label"> X </span> </a> <div class="devsite-footer-promo-description">Follow @AndroidDev on X</div> </li> <li class="devsite-footer-promo"> <a href="//www.youtube.com/user/androiddevelopers" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer YouTube Promo" > <picture> <source class="devsite-dark-theme" srcset="https://developer.android.com/_static/android/images/logo-youtube_dt.svg" media="(prefers-color-scheme: dark)" loading="lazy" alt="YouTube"> <img class="devsite-footer-promo-icon" src="//www.gstatic.com/images/icons/material/product/2x/youtube_48dp.png" loading="lazy" alt="YouTube"> </picture> <span class="devsite-footer-promo-label"> YouTube </span> </a> <div class="devsite-footer-promo-description">Check out Android Developers on YouTube</div> </li> <li class="devsite-footer-promo"> <a href="//www.linkedin.com/showcase/androiddev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer LinkedIn Promo" > <picture> <source class="devsite-dark-theme" srcset="https://developer.android.com/_static/android/images/logo-linkedin_dt.svg" media="(prefers-color-scheme: dark)" loading="lazy" alt="LinkedIn"> <img class="devsite-footer-promo-icon" src="/_static/android/images/logo-linkedin.svg" loading="lazy" alt="LinkedIn"> </picture> <span class="devsite-footer-promo-label"> LinkedIn </span> </a> <div class="devsite-footer-promo-description">Connect with the Android Developers community on LinkedIn</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">More Android</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//www.android.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.android.com/enterprise/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Android for Enterprise </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.android.com/security-center/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//source.android.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Source </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/news" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > News </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//android-developers.googleblog.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/podcasts" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > Podcasts </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Discover</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/games" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Gaming </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/ml" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Machine Learning </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/health-and-fitness" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Health & Fitness </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/media" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Camera & Media </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/privacy" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Privacy </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/training/connectivity/5g" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > 5G </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Android Devices</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/large-screens" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Large screens </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/wear" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Wear OS </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/chrome-os" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > ChromeOS devices </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/cars" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Android for cars </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/tv" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Android TV </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Releases</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/15" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android 15 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/14" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Android 14 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/13" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Android 13 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/12" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Android 12 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/11" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Android 11 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/10" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Android 10 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/pie" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > Pie </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Documentation and Downloads</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/studio/intro" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android Studio guide </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/guide" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Developers guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/reference" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > API reference </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/studio" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Download Studio </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/ndk" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Android NDK </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//issuetracker.google.com/issues/new?component=190923&template=841312" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Report platform bug </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//issuetracker.google.com/issues/new?component=192697" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Report documentation bug </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//support.google.com/googleplay/android-developer" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Google Play support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://g.co/userresearch/androiddeveloperfooter" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Join research studies </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup-google-for-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//developers.google.com/products/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/license" data-category="Site-Wide Custom Events" data-label="Footer License link" > License </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/distribute/marketing-tools/brand-guidelines" data-category="Site-Wide Custom Events" data-label="Footer Brand guidelines link" > Brand guidelines </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Get news and tips by email</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/updates" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [{"id": "G-QFRN08RN6E", "purpose": 0}], "ga4p": [{"id": "G-QFRN08RN6E", "purpose": 0}], "gtm": [{"id": "GTM-KMSWPCJ", "purpose": 0}], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Android Developers", "signedIn": "False", "tenant": "android", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <android-fully-clickable target=" .android-case-study .devsite-landing-row-item, .android-grouped-resources .devsite-landing-row-item, .android-grouped-resources-primary .devsite-landing-row-item, .android-grouped-resources-secondary .devsite-landing-row-item, .android-guide-cards .devsite-landing-row-item, .android-illustrated-resources-index .devsite-landing-row-item, .android-illustrated-resources-primary .devsite-landing-row-item, .android-illustrated-resources-secondary .devsite-landing-row-item, .android-illustrated-resources-secondary-small .devsite-landing-row-item, .android-illustrated-resources-tertiary .devsite-landing-row-item, .android-illustrated-resources-tertiary-small .devsite-landing-row-item, .android-promo .devsite-landing-row-item, .android-quick-link, .android-samples .devsite-card-wrapper, .fully-clickable" watch=".android-samples, devsite-content"></android-fully-clickable> <script nonce="WwgBGRdrY9HbmxMQVbyWvRfCUD0TLL"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/js/app_loader.js', '[3,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android","https://android-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/android/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/favicon.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500,600,700|Google+Sans+Text:400,400italic,500,500italic,600,600italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developer.android.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Cloud__enable_legacy_calculator_redirect","Analytics__enable_clearcut_logging","Search__enable_ai_search_summaries","TpcFeatures__enable_mirror_tenant_redirects","Concierge__enable_pushui","Significatio__enable_by_tenant","Cloud__enable_free_trial_server_call","Profiles__enable_profile_collections","Profiles__require_profile_eligibility_for_signin","Search__enable_page_map","MiscFeatureFlags__enable_firebase_utm","MiscFeatureFlags__emergency_css","Search__enable_dynamic_content_confidential_banner","Cloud__enable_cloud_shell_fte_user_flow","CloudShell__cloud_shell_button","BookNav__enable_tenant_cache_key","Profiles__enable_developer_profiles_callout","Experiments__reqs_query_experiments","Profiles__enable_dashboard_curated_recommendations","Profiles__enable_awarding_url","TpcFeatures__enable_required_headers","Profiles__enable_recognition_badges","MiscFeatureFlags__enable_view_transitions","MiscFeatureFlags__enable_dark_theme","Cloud__enable_cloud_facet_chat","Profiles__enable_release_notes_notifications","DevPro__enable_cloud_innovators_plus","MiscFeatureFlags__enable_variable_operator","MiscFeatureFlags__enable_project_variables","MiscFeatureFlags__developers_footer_dark_image","EngEduTelemetry__enable_engedu_telemetry","Profiles__enable_page_saving","Cloud__enable_cloud_dlp_service","MiscFeatureFlags__developers_footer_image","CloudShell__cloud_code_overflow_menu","Search__enable_ai_eligibility_checks","Search__enable_suggestions_from_borg","Cloud__enable_cloudx_experiment_ids","MiscFeatureFlags__enable_explain_this_code","Profiles__enable_complete_playlist_endpoint","Profiles__enable_completecodelab_endpoint","Profiles__enable_public_developer_profiles","Cloud__enable_llm_concierge_chat","Cloud__enable_cloud_shell","Cloud__enable_cloudx_ping","DevPro__enable_developer_subscriptions"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.googleapis.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.googleapis.com",2,4,null,"https://developerprofiles-pa.googleapis.com",[3,"android","Android Developers","developer.android.com",null,"android-dot-devsite-v2-prod.appspot.com",null,null,[null,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations"],null,null,null,[1,null,1],[1,1,null,1,1]],null,[18,null,null,null,null,null,"/images/lockup.svg","/images/touchicon-180.png",null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,28,29,37,43],null,[[null,null,1],[1,1]],[[null,null,null,null,null,null,null,[["G-QFRN08RN6E"],null,null,[["G-QFRN08RN6E",1]]],null,null,null,null,1],null,[[1,1],[2,2]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"android.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>