CINXE.COM
Developer Guides | Android Developers
<!doctype html> <html lang="en" dir="ltr"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://developer.android.com/guide","20210511131315","https://web.archive.org/","web","/_static/", "1620738795"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <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="#3ddc84"><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="/web/20210511131315/https://developer.android.com/_pwa/android/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20210511131315/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210511131315/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210511131315/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210511131315/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210511131315/https://www.google-analytics.com/" crossorigin><link rel="preload" href="https://web.archive.org/web/20210511131315/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/js/app_loader.js" as="script"><link rel="stylesheet" href="//web.archive.org/web/20210511131315cs_/https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons&display=swap"><link rel="stylesheet" href="https://web.archive.org/web/20210511131315cs_/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/css/rebrand-app.css"><link rel="shortcut icon" href="https://web.archive.org/web/20210511131315im_/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/images/favicon.png"> <link rel="apple-touch-icon" href="https://web.archive.org/web/20210511131315im_/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/images/touchicon-180.png"><link rel="canonical" href="https://web.archive.org/web/20210511131315/https://developer.android.com/guide"><link rel="search" type="application/opensearchdescription+xml" title="Android Developers" href="https://web.archive.org/web/20210511131315/https://developer.android.com/s/opensearch.xml"> <title>Developer Guides | Android Developers</title> <meta property="og:title" content="Developer Guides | Android Developers"><meta property="og:url" content="https://web.archive.org/web/20210511131315/https://developer.android.com/guide"><meta property="og:image" content="https://web.archive.org/web/20210511131315im_/https://developer.android.com/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"> </head> <body class="trainingcourse" template="page" theme="android-theme" type="article" layout="docs" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><devsite-header> <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="/web/20210511131315/https://developer.android.com/" 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"> <img src="https://web.archive.org/web/20210511131315im_/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </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> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/about" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="platform" data-category="Site-Wide Custom Events" data-label="Tab: Platform"> Platform </a> </tab> <tab> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/studio" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="androidStudio" data-category="Site-Wide Custom Events" data-label="Tab: Android Studio"> Android Studio </a> </tab> <tab> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/distribute" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="googlePlay" data-category="Site-Wide Custom Events" data-label="Tab: Google Play"> Google Play </a> </tab> <tab> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/jetpack" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="jetpack" data-category="Site-Wide Custom Events" data-label="Tab: Jetpack"> Jetpack </a> </tab> <tab> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/kotlin" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="kotlin" data-category="Site-Wide Custom Events" data-label="Tab: Kotlin"> Kotlin </a> </tab> <tab active> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/docs" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="docs" aria-label="Docs, selected" data-category="Site-Wide Custom Events" data-label="Tab: Docs"> Docs </a> </tab> <tab> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/news" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="news" data-category="Site-Wide Custom Events" data-label="Tab: News"> News </a> </tab> </nav> </devsite-tabs> </div> <devsite-search aria-expanded="false" aria-haspopup="listbox" enable-signin enable-search enable-suggestions enable-query-completion project-name="Android Developers" tenant-name="Android Developers" role="combobox"> <form class="devsite-search-form" action="https://web.archive.org/web/20210511131315/https://developer.android.com/s/results" method="GET"> <div class="devsite-search-container"> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" 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> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> </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-language-selector> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en" track-metadata-original-language="en" track-metadata-selected-language="en" track-name="changed" track-type="languageSelector"> English </option> <option value="id" lang="id" track-metadata-original-language="en" track-metadata-selected-language="id" track-name="changed" track-type="languageSelector"> Bahasa Indonesia </option> <option value="es_419" lang="es_419" track-metadata-original-language="en" track-metadata-selected-language="es_419" track-name="changed" track-type="languageSelector"> Español – América Latina </option> <option value="pt_br" lang="pt_br" track-metadata-original-language="en" track-metadata-selected-language="pt_br" track-name="changed" track-type="languageSelector"> Português – Brasil </option> <option value="zh_cn" lang="zh_cn" track-metadata-original-language="en" track-metadata-selected-language="zh_cn" track-name="changed" track-type="languageSelector"> 中文 – 简体 </option> <option value="ja" lang="ja" track-metadata-original-language="en" track-metadata-selected-language="ja" track-name="changed" track-type="languageSelector"> 日本語 </option> <option value="ko" lang="ko" track-metadata-original-language="en" track-metadata-selected-language="ko" track-name="changed" track-type="languageSelector"> 한국어 </option> </select> </devsite-select> </devsite-language-selector> <devsite-user enable-profiles id="devsite-user"></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://web.archive.org/web/20210511131315/https://developer.android.com/docs" 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=""> Documentation </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> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/docs" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="overview" data-category="Site-Wide Custom Events" data-label="Tab: Overview"> Overview </a> </tab> <tab active> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/guide" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="guides" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides"> Guides </a> </tab> <tab> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/reference" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="reference" data-category="Site-Wide Custom Events" data-label="Tab: Reference"> Reference </a> </tab> <tab> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/samples" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="samples" data-category="Site-Wide Custom Events" data-label="Tab: Samples"> Samples </a> </tab> <tab> <a href="https://web.archive.org/web/20210511131315/https://developer.android.com/design" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="design&Quality" data-category="Site-Wide Custom Events" data-label="Tab: Design & Quality"> Design & Quality </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars> <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="/web/20210511131315/https://developer.android.com/" 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"> <img src="https://web.archive.org/web/20210511131315im_/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </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="/web/20210511131315/https://developer.android.com/about" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Platform" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="platform"> <span class="devsite-nav-text" tooltip> Platform </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210511131315/https://developer.android.com/studio" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Studio" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="androidStudio"> <span class="devsite-nav-text" tooltip> Android Studio </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210511131315/https://developer.android.com/distribute" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="googlePlay"> <span class="devsite-nav-text" tooltip> Google Play </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210511131315/https://developer.android.com/jetpack" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Jetpack" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="jetpack"> <span class="devsite-nav-text" tooltip> Jetpack </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210511131315/https://developer.android.com/kotlin" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Kotlin" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="kotlin"> <span class="devsite-nav-text" tooltip> Kotlin </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210511131315/https://developer.android.com/docs" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Docs" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="docs"> <span class="devsite-nav-text" tooltip> Docs </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/web/20210511131315/https://developer.android.com/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="overview"> <span class="devsite-nav-text" tooltip> Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210511131315/https://developer.android.com/guide" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="guides"> <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="/web/20210511131315/https://developer.android.com/reference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="reference"> <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="/web/20210511131315/https://developer.android.com/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="samples"> <span class="devsite-nav-text" tooltip> Samples </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210511131315/https://developer.android.com/design" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Design & Quality" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="design&Quality"> <span class="devsite-nav-text" tooltip> Design & Quality </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210511131315/https://developer.android.com/news" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: News" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="news"> <span class="devsite-nav-text" tooltip> News </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom" role="navigation"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>App Basics</span></div></li> <li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Introduction</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 your first app</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/firstapp" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/firstapp/creating-project" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create an Android project</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/firstapp/running-app" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Run your app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/firstapp/building-ui" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build a simple user interface</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/firstapp/starting-activity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Start another activity</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/fundamentals" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App fundamentals</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/resources/providing-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/runtime-changes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handle configuration changes</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/resources/localization" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Localize your app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/pseudolocales" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test your app with pseudolocales</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/internationalization" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Unicode and internationalization support</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/multilingual-support" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Language and locale resolution</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/complex-xml-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Complex XML resources</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/resources/available-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/animation-resource" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Animation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/color-list-resource" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Color state list</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/drawable-resource" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Drawable</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/layout-resource" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Layout</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/menu-resource" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Menu</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/string-resource" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>String</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/style-resource" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Style</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/font-resource" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Font</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/resources/more-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>More types</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/manifest/manifest-intro" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/action-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><action></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/activity-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><activity></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/activity-alias-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><activity-alias></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/application-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><application></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/category-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><category></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/compatible-screens-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><compatible-screens></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/data-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><data></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/grant-uri-permission-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><grant-uri-permission></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/instrumentation-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><instrumentation></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/intent-filter-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><intent-filter></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/manifest-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><manifest></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/meta-data-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><meta-data></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/path-permission-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><path-permission></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/permission-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><permission></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/permission-group-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><permission-group></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/permission-tree-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><permission-tree></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/profileable-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><profileable></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/provider-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><provider></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/queries-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><queries></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/receiver-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><receiver></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/service-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><service></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/supports-gl-texture-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><supports-gl-texture></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/supports-screens-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><supports-screens></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/uses-configuration-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><uses-configuration></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/uses-feature-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><uses-feature></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/uses-library-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><uses-library></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/uses-native-library-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><uses-native-library></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/uses-permission-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><uses-permission></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/uses-permission-sdk-23-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><uses-permission-sdk-23></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/manifest/uses-sdk-element" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><uses-sdk></span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Devices</span></div></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/practices/compatibility" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/practices/screens_support" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Screen compatibility overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/multiscreen/screendensities" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support different pixel densities</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/display-cutout" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support display cutouts</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/practices/screens-distribution" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Declare restricted screen support</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/google/play/publishing/multiple-apks" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/multiple-apks/api" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create multiple APKs for different API levels</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/multiple-apks/screensize" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create multiple APKs for different screen sizes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/multiple-apks/texture" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create multiple APKs for different GL textures</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/multiple-apks/multiple" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create multiple APKs with several dimensions</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/supporting-devices/languages" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support different languages and cultures</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/supporting-devices/platforms" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support different platform versions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/filters" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Filters on Google Play</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Tablets, Large screens, and Foldables</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/responsive-layout-overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Responsive layouts for tablets, large screens, and foldables</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/multiscreen/screensizes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support different screen sizes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/multi-window" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Multi-window support</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/foldables" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building apps for foldables</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Wear</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Adding wearable features to notifications</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/notifications" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/notifications/creating" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating a notification</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/notifications/noti-styles" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Notification styles</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/notifications/bridger" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Bridging mode for notifications</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/notifications/compatibility" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Maintaining compatibility</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Creating wearable apps</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/creating" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating and running a wearable app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/wet-mode" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wet Mode</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/independent-vs-dependent" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Independent versus dependent Wear OS apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/layouts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating custom layouts</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/always-on" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Keeping your app visible</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/auth-wear" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Authentication in Wear</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/voice" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Voice input</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/packaging" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Packaging and distributing Wear apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/debugging" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Debugging a Wear app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/screenshots" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Capturing Wear UI screenshots</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/apps/creating-app-china" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating Wear apps for China</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Creating custom UIs</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/layouts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Defining layouts</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/lists" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating lists</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/confirm" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Showing confirmations</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/exit" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Exiting full-screen activities</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/wear-ui-library" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Using the Wear UI library</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/ui-nav-actions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wear navigation and actions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/physical-buttons" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Physical buttons</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/rotary-input" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Rotary input</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/wear-ime" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating input method editors</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/ui/wrist-gestures" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Using wrist gestures</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Sending and syncing data</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-layer" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-layer/network-access" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Network access and syncing</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-layer/accessing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Accessing the wearable data layer</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-layer/data-items" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Syncing data items</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-layer/assets" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Transferring assets</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-layer/messages" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Sending and receiving messages</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-layer/events" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handling data layer events</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-layer/migrate-to-googleapi" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrating Wear apps to GoogleApi</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Creating data providers</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-providers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/data-providers/exposing-data-complications" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Expose data to complications</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Creating watch faces</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/designing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Designing watch faces</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/service" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building a watch face service</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/drawing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Drawing watch faces</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/complications" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Watch face complications</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/exposing-data-complications" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Exposing data to complications</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/adding-complications" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adding complications to a watch face</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/interacting" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating interactive watch faces</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/configuration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Providing configuration activities</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/issues" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Addressing common issues</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/hardware-acceleration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Improve performace with hardware acceleration</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/watch-faces/performance" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimizing watch faces</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/wear-location-detection" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Detecting location</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/wear-tiles" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Tiles</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/wear-permissions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Requesting Permissions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wearables/wearable-sounds" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Using the Speaker</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/tv" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 Apps</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/start" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/start/start" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Get started with TV apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/start/libraries" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>AndroidX TV libraries</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/start/hardware" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handle TV hardware</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/start/controllers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage TV controllers</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/start/layouts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build TV layouts</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/start/onscreen-keyboard" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>On-screen keyboard</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/start/navigation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create TV navigation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/start/google-tv" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Best practices for driving engagement on Google TV</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/tv/playback" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/playback/browse" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a catalog browser</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/playback/card" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Provide a card view</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/playback/details" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build a details view</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/playback/transport-controls" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use Leanback transport controls</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/playback/controls" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Playback controls on TV</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/playback/now-playing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Display a Now Playing card</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/playback/guided-step" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add a guided step</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/playback/onboarding" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Introduce first-time users to your app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/playback/options" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Enable background playback</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/tv/discovery" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/tv/discovery/recommendations" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/recommendations-channel" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Channels on the home screen</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/video-programs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Video program attributes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/audio-programs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Audio program attributes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/game-programs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Game program attributes</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/tv/discovery/watch-next-add-programs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add programs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/watch-next-programs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Attributes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/guidelines-app-developers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Guidelines for app developers</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/guidelines-tv-providers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Guidelines for TV providers</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/preview-videos" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Preview videos</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/recommendations-row" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Recommendations in Android N and earlier</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/searchable" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Make TV apps searchable</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/discovery/in-app-search" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Search within TV Apps</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/games" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build TV games</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/tv/tif" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/tif/tvinput" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Develop a TV input service</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/tif/channel" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Work with channel data</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/tif/ui" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage TV user interaction</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/tif/time-shifting" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support time-shifting</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/tif/content-recording" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support content recording</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/publishing/checklist" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>TV Apps checklist</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/tv/accessibility/non-native-app" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Non Native Apps Accessibility Support</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/accessibility/non-native-best-practices" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Non Native Apps Accessibility Best Practices</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/tv/accessibility/talkback-evaluation-examples-for-tv-apps" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>TalkBack evaluation examples for TV apps</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/tv/preview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android 12 Developer Preview for TV</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/cars" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/cars/media" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build media apps for cars</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/cars/media/auto" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add support for Android Auto</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/cars/media/automotive-os" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add support for Android Automotive OS</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/cars/messaging" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build messaging apps for Android Auto</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/cars/navigation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build navigation, parking, and charging apps for Android Auto</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/cars/testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test Android apps for cars</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/cars/google-services" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Google Play services</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/cars/notifications" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Notifications on Android Automotive OS</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 Things</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/get-started" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/get-started/platform-differences" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Platform differences</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/get-started/google-services" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Google services</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Supported hardware</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/hardware" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/hardware/imx7d" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>NXP i.MX7D</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/hardware/raspberrypi" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Raspberry Pi 3</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 setup</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/hardware/advanced-setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/hardware/fastboot" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manually flash an image</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/hardware/bootloader" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Recover a device</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/hardware/wifi-adb" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Connecting to Wi-Fi with adb</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 apps</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Create a Things app</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/training/first-device" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/training/first-device/create-studio-project" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a project</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/training/first-device/connect-hardware" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Connect the hardware</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/training/first-device/peripherals" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Interact with peripherals</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/training/first-device/drivers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate peripheral drivers</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Communicate with wireless devices</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/apis/bluetooth" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Bluetooth</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/apis/lowpan" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>LoWPAN</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Configure devices</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/apis/settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Settings</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/apis/update" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Updates</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 peripherals</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/pio" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/pio/gpio" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>GPIO</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/pio/pwm" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>PWM</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/pio/i2c" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>I2C</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/pio/spi" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SPI</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/pio/uart" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>UART</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/pio/native" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Native PIO</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/pio/pio-cli" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>CLI tool</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/apis/native" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate native code</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 user-space drivers</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/drivers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/drivers/location" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Location</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/drivers/input" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Input</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/drivers/sensors" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Sensors</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/sdk/drivers/lowpan" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>LoWPAN</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20210511131315/https://github.com/androidthings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Samples</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Manage devices</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/console" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/console/create" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a product</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/console/configure" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configure a product</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Create a build</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/console/build" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/console/manage-apps" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage apps</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Push an update</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/console/update" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/console/autoupdate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Automatic updates</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/console/analytics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Monitor analytics</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Terms</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/terms/console" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Console Terms of Service</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/things/terms" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SDK License Agreement</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20210511131315/https://partner.android.com/things/console" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android Things Console</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Chrome OS devices</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/chrome-os/intro" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building apps for Chrome OS</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/optimizing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimizing Apps for Chrome OS</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/development-environment" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Preparing your development environment</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/manifest" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App Manifest Compatibility for Chromebooks</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/device-support" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Chrome OS Device Support for Apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/differences" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App Rendering Differences on Chromebooks</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/window-management" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Window management</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/input-compatibility" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Input compatibility for Chromebooks</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/adapting-games" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adapting Games on Chrome OS</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/animation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Smooth animation on Chrome OS</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/arc/tests" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test Cases for Android Apps on Chrome OS</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Core topics</span></div></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/components/activities/intro-activities" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Introduction to activities</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/activities/activity-lifecycle" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>The activity lifecycle</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/activities/state-changes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Activity state changes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/activities/testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test your activities</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/activities/tasks-and-back-stack" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Tasks and back stack</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/activities/process-lifecycle" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Processes and app lifecycle</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/activities/parcelables-and-bundles" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Parcelables and bundles</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/fragments" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/create" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a fragment</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/fragmentmanager" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Fragment manager</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/transactions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Fragment transactions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/animate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Animate transitions between fragments</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/lifecycle" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Fragment lifecycle</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/saving-state" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Saving state with fragments</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/communicate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Communicate with fragments</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/appbar" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Working with the app bar</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/dialogs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Displaying dialogs with DialogFragment</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/fragments/test" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test your fragments</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Handling app links</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/app-links" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/app-links/deep-linking" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Enabling links to app content</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/app-links/verify-site-associations" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Verify app links</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/app-links/instant-app-links" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create app links for instant apps</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/loaders" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Loaders</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/activities/recents" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Recents screen</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/activities/background-starts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Restrictions on starting activities from the background</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/ui/shortcuts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/shortcuts/creating-shortcuts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create shortcuts</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/shortcuts/managing-shortcuts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage shortcuts</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/shortcuts/best-practices" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Best practices for shortcuts</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 widgets</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/appwidgets/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/appwidgets" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build an app widget</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/appwidgets/host" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build an app widget host</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 compatibility</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/app-compatibility" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/app-compatibility/test-debug" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Compatibility framework tools</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/app-compatibility/restrictions-non-sdk-interfaces" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Restrictions on non-SDK interfaces</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/adding-components" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adding Components to your Project</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/app-startup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App Startup</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/datastore" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>DataStore</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/libraries/view-binding" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/view-binding/migration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrate from Kotlin synthetics to view binding</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/libraries/data-binding" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/data-binding/start" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/data-binding/expressions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Layouts and binding expressions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/data-binding/observability" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Work with observable data objects</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/data-binding/generated-binding" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Generated binding classes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/data-binding/binding-adapters" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Binding adapters</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/data-binding/architecture" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Bind layout views to Architecture Components</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/data-binding/two-way" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Two-way data binding</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/lifecycle" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handling Lifecycles</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/livedata" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>LiveData</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/paging" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/paging/ui" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Display paged lists</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/paging/data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Load paged data</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 3</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/paging/v3-overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/paging/v3-paged-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Load and display paged data</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/paging/v3-network-db" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Page from network and database</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/paging/v3-transform" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Transform data streams</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/paging/v3-migration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrate to Paging 3</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/viewmodel" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>ViewModel</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/basics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Getting Started</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/how-to/define-work" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Defining your WorkRequests</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/how-to/states-and-observation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Work states</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/how-to/managing-work" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Managing work</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/how-to/intermediate-progress" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Observing intermediate Worker progress</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/how-to/chain-work" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Chaining work together</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/how-to/testing-worker-impl" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Testing Worker implementation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/how-to/integration-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integration tests with WorkManager</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/how-to/debugging" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Debugging WorkManager</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/advanced/custom-configuration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configuration and Initialization</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/advanced/threading" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/advanced/worker" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Threading in Worker</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/advanced/coroutineworker" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Threading in CoroutineWorker</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/advanced/rxworker" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Threading in RxWorker</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/advanced/listenableworker" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Threading in ListenableWorker</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/advanced/long-running" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support for long-running workers</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/migrating-fb" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrating from Firebase JobDispatcher</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/workmanager/migrating-gcm" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrating from GCMNetworkManager</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/saving-states" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Saving States</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/viewmodel-savedstate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Saved State module for ViewModel</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/coroutines" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use Kotlin coroutines with Architecture components</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/rel-notes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Release notes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/libraries/architecture/additional-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Additional resources</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/navigation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-principles" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Principles of Navigation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-getting-started" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Getting started</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-create-destinations" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create destinations</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-form-factors" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Design for different form factors</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-design-graph" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Design navigation graphs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-nested-graphs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Nested graphs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-global-action" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Global actions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-navigate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Navigate to a destination</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-conditional" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Conditional navigation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-pass-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Pass data between destinations</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-deep-link" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a deep link for a destination</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-animate-transitions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Animate transitions between destinations</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-ui" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Update UI components with NavigationUI</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-kotlin-dsl" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Kotlin DSL</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-swipe-view" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create swipe views with tabs using ViewPager</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-swipe-view-2" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create swipe views with tabs using ViewPager2</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-programmatic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Interact programmatically</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-dynamic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Navigate with feature modules</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test navigation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-config-changes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handling configuration changes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-add-new" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add new destination types</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-custom-back" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Provide custom back navigation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/navigation/navigation-migrate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrate to the Navigation component</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/basics/intents" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/intents/sending" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Sending the user to another app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/intents/result" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Getting a result from an activity</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/intents/filters" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Allowing other apps to start your activity</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/package-visibility" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/package-visibility/automatic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Know which packages are visible automatically</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/package-visibility/declaring" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Declare package visibility needs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/package-visibility/use-cases" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Fulfill common use cases</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/package-visibility/testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test package visibility</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Intents and intent filters</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/intents-filters" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/intents-common" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Common intents</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 interface</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Layouts</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/declaring-layout" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build a responsive UI with ConstraintLayout</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Add motion to your layout with MotionLayout</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/carousel" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Carousel with MotionLayout</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/examples" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>MotionLayout examples</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>MotionLayout XML reference</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref/motionscene" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><MotionScene></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref/constraintset" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><ConstraintSet></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref/constraint" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><Constraint></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref/transition" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><Transition></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref/onclick" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><onClick></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref/onswipe" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><onSwipe></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref/keyframeset" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><KeyFrameSet></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref/keyposition" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><KeyPosition></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/motionlayout/ref/keyattribute" class="devsite-nav-title"><span class="devsite-nav-text" tooltip><KeyAttribute></span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/layout/recyclerview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a list with RecyclerView</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/layout/recyclerview-custom" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Advanced RecyclerView customization</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/layout/cardview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a card-based layout</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/layout/twopane" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a two pane layout</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Improving layout performance</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/improving-layouts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/improving-layouts/optimizing-layout" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimizing layout hierarchies</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/improving-layouts/reusing-layouts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Re-using layouts with <include/></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/improving-layouts/loading-ondemand" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Delayed loading of views</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/layout/linear" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Linear layout</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/binding" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adapter view</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/layout/relative" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Relative layout</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 view components</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/custom-components" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/custom-views/create-view" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating a custom view class</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/custom-views/custom-drawing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Implementing custom drawing</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/custom-views/making-interactive" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Making the view interactive</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/custom-views/optimizing-view" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimizing the view</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/constraint-layout/foldables" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Designing for foldables</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Look and feel</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/look-and-feel" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Material design</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/look-and-feel/themes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Styles and themes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/look-and-feel/darktheme" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Dark theme</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adaptive icons</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/floating-action-button" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add a floating action button</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/material/shadows-clipping" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create shadows and clip views</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Text</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Autosizing TextViews</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Downloadable fonts</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Fonts in XML</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/look-and-feel/emoji-compat" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Emoji compatibility</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/text/magnifier" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Magnifier widget</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/text/spans" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Spans</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/controls/button" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Buttons</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/controls/checkbox" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Checkboxes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/controls/radiobutton" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Radio buttons</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/controls/togglebutton" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Toggle buttons</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/controls/spinner" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Spinners</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/controls/pickers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Pickers</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/tooltips" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Tooltips</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Notifications</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/notifiers/notifications" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/notify-user/build-notification" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a notification</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/notify-user/expanded" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create an expandable notification</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/notify-user/time-sensitive" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Display time-sensitive notifications</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/notify-user/navigation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Start an activity from a notification</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/notify-user/group" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a group of notifications</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/notify-user/channels" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create and manage notification channels</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/notify-user/badges" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Modify a notification Badge</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/notify-user/custom-notification" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a custom notification</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/conversations" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Conversations</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/bubbles" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Bubbles</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Add the app bar</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/appbar" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/appbar/setting-up" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Set up the app bar</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/appbar/actions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add and handle actions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/appbar/up-action" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add an up action</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/appbar/action-views" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use action views and action providers</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Control the system UI visibility</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/system-ui" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/system-ui/dim" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Dim the system bars</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/system-ui/status" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Hide the status bar</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/system-ui/navigation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Hide the navigation bar</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/system-ui/immersive" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Enable fullscreen mode</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/system-ui/visibility" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Respond to UI visibility changes</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Supporting swipe-to-refresh</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/swipe" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/swipe/add-swipe-interface" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adding swipe-to-refresh to your app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/swipe/respond-refresh-request" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Responding to a refresh gesture</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/notifiers/toasts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Toasts overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Pop-up messages overview</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/snackbar" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/snackbar/showing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build and display a pop-up message</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/snackbar/action" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add an action to a message</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/dialogs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Dialogs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/menus" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Menus</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Settings</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/settings/organize-your-settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Organize your settings</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/settings/customize-your-settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Customize your settings</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/settings/use-saved-values" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use saved values</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/settings/programmatic-hierarchy" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build a hierarchy in code</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/settings/handle-other-form-factors" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handle other form factors</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/settings/components-and-attributes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Preference components and attributes</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Search</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/search" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/search/search-dialog" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating a search interface</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/search/adding-recent-query-suggestions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adding recent query suggestions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/search/adding-custom-suggestions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adding custom suggestions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/search/searchable-config" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Searchable configuration</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Adding search functionality</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/search" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/search/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Setting up the search interface</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/search/search" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Storing and searching for data</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/search/backward-compat" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Remaining backward compatible</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/text/copy-paste" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Copy and paste</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/drag-drop" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Drag and drop</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/picture-in-picture" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Picture-in-picture Support</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Creating backward-compatible UIs</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/backward-compatible-ui" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/backward-compatible-ui/abstracting" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Abstracting the new APIs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/backward-compatible-ui/new-implementation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Proxying to the new APIs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/backward-compatible-ui/older-implementation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating an implementation with older APIs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/backward-compatible-ui/using-component" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Using the version-aware component</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/device-control" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Device control</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Home channels for mobile apps</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/home-channels" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/home-channels/read" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Media Home Books</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/home-channels/video" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Media Home Video</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Animations & transitions</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Introduction to animations</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/graphics/prop-animation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Property animation overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/graphics/drawable-animation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Animate drawable graphics</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation/reveal-or-hide-view" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Reveal or hide a view using animation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation/reposition-view" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Move a view using animation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/graphics/fling-animation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Move a view using a fling animation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation/zoom" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Enlarge a view using a zoom animation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/graphics/spring-animation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Animate movement using spring physics</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation/layout" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Auto animate layout updates</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/transitions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Animate layout changes using a transition</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/transitions/custom-transitions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a custom transition animation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/transitions/start-activity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Start an activity using an animation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation/screen-slide" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Slide between fragments using ViewPager</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation/screen-slide-2" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Slide between fragments using ViewPager2</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation/vp2-migration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrate from ViewPager to ViewPager2</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/animation/additional-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Additional resources</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Images & graphics</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/graphics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/graphics/drawables" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Drawables overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/graphics/vector-drawable-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Vector drawables overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/graphics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handling bitmaps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/material/palette-colors" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Selecting colors with the palette API</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/network-xfer" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Reducing image download sizes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/graphics/hardware-accel" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Hardware acceleration</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/graphics/opengl" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>OpenGL ES</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Displaying graphics with OpenGL ES</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/graphics/opengl" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/graphics/opengl/environment" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building an OpenGL ES environment</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/graphics/opengl/shapes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Defining shapes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/graphics/opengl/draw" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Drawing shapes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/graphics/opengl/projection" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Applying projection and camera views</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/graphics/opengl/motion" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adding motion</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/graphics/opengl/touch" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Responding to touch events</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Rendering</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/rendering" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/rendering/overdraw" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Reducing overdraw</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/rendering/optimizing-view-hierarchies" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Performance and view hierarchies</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/rendering/profile-gpu" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Analyzing with profile GPU rendering</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/wide-color-gamut" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Enhancing graphics with wide color content</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Audio & video</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Audio & video overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/media-controls" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Media controls</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/media-formats" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Supported media formats</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/media-codecs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Media codecs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Media app architecture</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/media-apps-overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Media app architecture overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/working-with-a-media-session" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Using a media session</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 an audio app</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/audio-app/building-an-audio-app" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Audio app overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/audio-app/building-a-mediabrowserservice" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building a media browser service</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/audio-app/building-a-mediabrowser-client" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building a media browser client</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/audio-app/mediasession-callbacks" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Media session callbacks</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/audio-app/media-controller-test" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Using the media controller test app</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 a video app</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/video-app/building-a-video-app" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Video app overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/video-app/building-a-video-player-activity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building a video player activity</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/video-app/mediasession-callbacks" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Media session callbacks</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/mediabuttons" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Responding to media buttons</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/volume-and-earphones" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handling changes in audio output</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/audio-focus" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Managing audio focus</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 Google Assistant</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/interacting-with-assistant" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>The Google Assistant and media apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media-apps/assistant-driving-mode" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Media apps on Google Assistant driving mode</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Routing between devices</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/media-routing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Routing overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/mediarouter" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>MediaRouter overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/mediarouteprovider" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>MediaRouteProvider overview</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/volumeshaper" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Control amplitude with VolumeShaper</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/mediaplayer" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>MediaPlayer overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/mediarecorder" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>MediaRecorder overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/exoplayer" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>ExoPlayer</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/sharing-audio-input" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Sharing audio input</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/playback-capture" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Playback capture</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/frame-rate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Frame rate</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/additional-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Additional Resources for Media</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Services</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/services" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/foreground-services" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Foreground services</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/bound-services" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Bound services</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/aidl" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>AIDL overview</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Background tasks</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/background" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/background/threading" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Background threads</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/background-optimization" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Background optimizations</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Broadcasts</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/broadcasts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/broadcast-exceptions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Implicit Broadcast Exceptions</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Manage device awake state</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/scheduling" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/scheduling/wakelock" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Keep the device awake</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/scheduling/alarms" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Schedule repeating alarms</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/permissions/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/permissions/evaluating" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Evaluate whether your app needs permissions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/permissions/declaring" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Declare app permissions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/permissions/requesting" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Request app permissions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/permissions/usage-notes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App permissions best practices</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/permissions/default-handlers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Permissions used only in default handlers</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/permissions/restrict-interactions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Restrict interactions with other apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/permissions/defining" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Define custom permissions</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 & files</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Storage overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/app-specific" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Save to app-specific storage</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/data-storage/shared" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/shared/media" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Media</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/shared/documents-files" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Documents and other files</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/shared/datasets" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Datasets</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/manage-all-files" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage all files on a storage device</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/shared-preferences" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Save key-value data</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/data-storage/room" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/defining-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Define data using entities</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/accessing-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Access data using DAOs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/relationships" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Define relationships between objects</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/async-queries" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Write asynchronous DAO queries</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/creating-views" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create views into a database</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/prepopulate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Prepopulate your database</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/migrating-db-versions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrate your database</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/testing-db" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test and debug your database</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/referencing-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Reference complex data</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/room/sqlite-room-migration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrate from SQLite to Room</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/sqlite" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Save data using SQLite</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/data-storage/use-cases" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Storage use cases and best practices</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 simple data</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sharing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sharing/send" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Sending simple data to other apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sharing/receive" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Receiving simple data from other apps</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/secure-file-sharing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/secure-file-sharing/setup-sharing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Setting up file sharing</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/secure-file-sharing/share-file" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Sharing a file</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/secure-file-sharing/request-file" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Requesting a shared file</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/secure-file-sharing/retrieve-info" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Retrieving file information</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 with NFC</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/beam-files" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/beam-files/send-files" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Sending files to another device</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/beam-files/receive-files" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Receiving files from another device</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/printing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/printing/photos" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Printing photos</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/printing/html-docs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Printing HTML documents</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/printing/custom-docs" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Printing custom documents</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/providers/content-providers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/providers/content-provider-basics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Content provider basics</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/providers/content-provider-creating" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating a content provider</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/providers/document-provider" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Open files using storage access framework</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/providers/create-document-provider" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a custom document provider</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/data/install-location" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App install location</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 & identity</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/user-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sign-in" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add sign-in workflow</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sign-in/biometric-auth" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Show a biometric authentication dialog</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/text/autofill" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/text/autofill-optimize" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimize your app for autofill</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/text/autofill-services" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build autofill services</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/text/ime-autofill" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate autofill with keyboards</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/data/audit-access" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Audit data access</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/ad-id" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Get a user-resettable advertising ID</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/providers/calendar-provider" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Calendar provider overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/providers/contacts-provider" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/contacts-provider/retrieve-names" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Retrieving a list of contacts</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/contacts-provider/retrieve-details" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Retrieving details for a contact</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/contacts-provider/modify-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Modifying contacts using intents</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/contacts-provider/display-contact-badge" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Displaying the quick contact badge</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/data/account-transfer" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Account transfer</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/data/backup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/data/autobackup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Back up user data</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/data/keyvaluebackup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Back up key-value pairs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/data/testingbackup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test backup and restore</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/user-data-ids" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Best practices for unique identifiers</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/id-auth" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/id-auth/identify" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Remember your user</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/id-auth/authenticate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Authenticate to OAuth2 services</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/id-auth/custom_auth" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a custom account type</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 location</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/location" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/location/permissions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Request location permissions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/location/retrieve-current" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Get the last known location</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/location/change-location-settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Change location settings</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/location/request-updates" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Request location updates</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/location/background" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Access location in the background</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/location/geofencing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create and monitor geofences</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/location/transitions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Detect when users start an activity</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/location/battery" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimize location for battery</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/location/migration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrate to location and context APIs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/maps" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add maps</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Touch & input</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/input" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/ui-events" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Input events</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Using touch gestures</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/gestures" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/gestures/detector" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Detect common gestures</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/gestures/movement" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Track touch and pointer movements</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/gestures/scroll" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Animate a scroll gesture</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/gestures/gesturenav" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support navigation gestures</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/gestures/multi" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handle multi-touch gestures</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/gestures/scale" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Drag and scale</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/gestures/viewgroup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage touch events in a ViewGroup</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Handling keyboard input</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/keyboard-input" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/keyboard-input/style" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Specifying the input method type</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/keyboard-input/visibility" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handling input method visibility</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/keyboard-input/navigation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Supporting keyboard navigation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/keyboard-input/commands" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handling keyboard actions</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Supporting game controllers</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/game-controllers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/game-controllers/controller-input" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Handling controller actions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/game-controllers/compatibility" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Supporting controllers across Android versions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/game-controllers/multiple-controllers" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Supporting multiple game controllers</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Input method editors</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/text/creating-input-method" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Creating an input method</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/text/image-keyboard" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Image keyboard</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/text/spell-checker-framework" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Spelling checker</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>CameraX</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax/architecture" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>CameraX architecture</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax/configuration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configuration</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax/preview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Preview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax/analyze" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Analyze images</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax/take-photo" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Image capture</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax/vendor-extensions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Vendor extensions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax/transform-output" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Transform output</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax/orientation-rotation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use case rotations</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camerax/devices" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>CameraX devices</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Camera2</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camera2" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camera2/capture-sessions-requests" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Camera capture sessions and requests</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camera2/camera-enumeration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Camera enumeration</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camera2/multiple-camera-streams-simultaneously" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use multiple camera streams simultaneously</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camera2/multi-camera" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Multi-Camera API</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Camera</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camera" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camera/photobasics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Taking photos</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camera/videobasics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Recording videos</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/camera/cameradirect" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Controlling the camera</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/media/camera" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Camera API</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Sensors</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/sensors" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/sensors/sensors_overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Sensors overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/sensors/sensors_motion" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Motion sensors</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/sensors/sensors_position" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Position sensors</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/sensors/sensors_environment" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Environment sensors</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/sensors/gnss" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Raw GNSS measurements</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Connectivity</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Performing network operations</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/network-ops" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/network-ops/connecting" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Connect to the network</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/network-ops/managing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage network usage</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/network-ops/reading-network-state" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Reading network state</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/network-ops/data-saver" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimize network data usage</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/basics/network-ops/xml" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Parse XML data</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Transmit network data using Volley</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/volley" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/volley/simple" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Send a simple request</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/volley/requestqueue" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Set up RequestQueue</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/volley/request" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Make a standard request</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/volley/request-custom" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Implement a custom request</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Perform network operations using Cronet</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/start" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Send a simple request</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/lifecycle" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Cronet request lifecycle</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Reference</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>org.chromium.net</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/package-summary" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/CallbackException" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>CallbackException</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>CronetEngine</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/CronetEngine" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>CronetEngine.Builder</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/CronetEngine.Builder" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/CronetEngine.Builder.LibraryLoader" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>LibraryLoader</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/CronetException" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>CronetException</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/InlineExecutionProhibitedException" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>InlineExecutionProhibitedException</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/NetworkException" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>NetworkException</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/QuicException" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>QuicException</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UploadDataProvider" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>UploadDataProvider</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UploadDataProviders" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>UploadDataProviders</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UploadDataSink" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>UploadDataSink</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>UrlRequest</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UrlRequest" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UrlRequest.Builder" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Builder</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Callback</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UrlRequest.Status" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Status</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UrlRequest.StatusListener" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>StatusListener</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>UrlResponseInfo</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UrlResponseInfo" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/cronet/reference/org/chromium/net/UrlResponseInfo.HeaderBlock" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>HeaderBlock</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/connectivity/5g/enhance-with-5g" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Enhance your apps with 5G</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/grpc" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build client-server applications with gRPC</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Transferring data without draining the battery</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/efficient-downloads" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/efficient-downloads/efficient-network-access" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimize downloads for efficient network access</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/efficient-downloads/regular_updates" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Minimize the effect of regular updates</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/efficient-downloads/redundant_redundant" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Avoid redundant downloads</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/efficient-downloads/connectivity_patterns" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Modify patterns based on the connectivity type</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Reduce network battery drain</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/network" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/network/gather-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Collecting network traffic data</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/network/analyze-data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Analyzing data traffic</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/network/action-user-traffic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimizing user-initiated network use</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/network/action-app-traffic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimizing app-initiated network use</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/network/action-server-traffic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimizing server-initiated network use</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/network/action-any-traffic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimizing general network use</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Transfer data using Sync Adapters</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sync-adapters" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sync-adapters/creating-authenticator" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a Stub Authenticator</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sync-adapters/creating-stub-provider" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a Stub Content Provider</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sync-adapters/creating-sync-adapter" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a Sync Adapter</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/sync-adapters/running-sync-adapter" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Run a Sync Adapter</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Bluetooth</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/bluetooth" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/bluetooth-le" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Bluetooth low energy overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/use-ble" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use Bluetooth low energy</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>NFC</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/nfc" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/nfc/nfc" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>NFC basics</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Advanced NFC</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/nfc/hce" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Host-based card emulation overview</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Telecom</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/telecom" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/telecom/selfManaged" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build a calling app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/telecom/prevent-spoofing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Prevent caller ID spoofing</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/telecom/telephony-ids" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Telephony IDs</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Wi-Fi</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/wifi-scan" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wi-Fi scanning overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/wifip2p" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wi-Fi peer-to-peer</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/wifi-aware" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wi-Fi aware overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/wifi-rtt" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wi-Fi location with RTT</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/localonlyhotspot" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Local Only Hotspot</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/companion-device-pairing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Companion device pairing</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Wi-Fi infrastructure</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/wifi-infrastructure" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wi-Fi infrastructure overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/wifi-suggest" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wi-Fi suggestion API for internet connectivity</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/wifi-bootstrap" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wi-Fi Network Request API for peer-to-peer connectivity</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/passpoint" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Passpoint</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/wifi-save-network-passpoint-config" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Save networks and Passpoint configurations</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>USB</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/usb" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/usb/accessory" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Accessory overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/usb/host" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Host overview</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/vpn" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>VPN</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/sip" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Session initiation protocol overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Discover and connect</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/connect-devices-wirelessly" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/connect-devices-wirelessly/nsd" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use network service discovery</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/connect-devices-wirelessly/wifi-direct" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create P2P connections with Wi-Fi</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use Wi-Fi P2P for service discovery</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/wifi-easy" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Wi-Fi Easy Connect</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/connectivity/omapi" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Open Mobile API reader support</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/compute" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/advanced" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Advanced RenderScript</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/migrate" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrating from RenderScript</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_value_types" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Numerical types</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_object_types" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Object types</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_convert" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Conversion functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_math" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Mathematical constants and functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Vector math functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_matrix" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Matrix functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_quaternion" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Quaternion functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_atomic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Atomic update functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_time" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Time functions and types</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_allocation_data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Allocation data access functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_object_info" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Object characteristics functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_for_each" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Kernel invocation functions and types</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_io" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Input/output functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_debug" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Debugging functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference/rs_graphics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Graphics functions and types</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/renderscript/reference" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Index</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Web-based content</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/webapps" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/webapps/webview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building web apps in WebView</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/webapps/managing-webview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Managing WebView objects</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/webapps/dark-theme" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Darken web content</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/webapps/webview-privacy" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>User privacy in WebView crash reporting</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/webapps/migrating" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrating to WebView in Android 4.4</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/webapps/targeting" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Supporting different screens in web apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/webapps/debugging" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Debugging web apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/webapps/best-practices" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Best practices for web apps</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/app-bundle" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/app-bundle/configure-base" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configure the base module</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/app-bundle/test" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build and test your app bundle</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/app-bundle/app-bundle-format" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>The app bundle format</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/google/play/billing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Google Play Billing</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Play Core Library</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/playcore/asset-delivery" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/asset-delivery/integrate-java" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate asset delivery (Java)</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/asset-delivery/integrate-native" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate asset delivery (native)</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/asset-delivery/integrate-unity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate asset delivery (Unity)</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/asset-delivery/texture-compression" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Target texture compression formats</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/asset-delivery/test" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test asset delivery</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/playcore/feature-delivery" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/feature-delivery/install-time" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configure install-time delivery</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/feature-delivery/conditional" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configure conditional delivery</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/feature-delivery/on-demand" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configure on-demand delivery</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/feature-delivery/ux-guidelines" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>On-demand delivery best practices</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/feature-delivery/instant" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configure instant delivery</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/feature-delivery/additional-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Additional resources</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-review" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-review/kotlin-java" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate using Kotlin or Java</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-review/native" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate using native code</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-review/unity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate using Unity</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-review/test" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test in-app reviews</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-updates" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-updates/kotlin-java" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support in-app updates (Kotlin or Java)</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-updates/native" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support in-app updates (Native)</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-updates/unity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support in-app updates (Unity)</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/playcore/in-app-updates/test" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test in-app updates</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/google-play-instant/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview of Google Play Instant</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/google-play-instant/getting-started/instant-enabled-app-bundle" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create an instant-enabled app bundle</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/best-practices/apps" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>UX best practices for apps</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/google-play-instant/getting-started/game-instant-app" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/getting-started/game-unity-plugin" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Unity plugin</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/best-practices/games" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>UX best practices for games</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/feature-module-migration" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Migrate to Android App Bundles</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/getting-started/cloud-delivery-assets" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Implement cloud delivery of assets</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/getting-started/support-play-games-services" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support Google Play Games Services</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/instant-play-games" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Instant Play games</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/instant-play-games-checklist" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Instant Play games checklist</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/guides/reduce-module-size" class="devsite-nav-title"><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="/web/20210511131315/https://developer.android.com/topic/google-play-instant/guides/advertising" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add ads to your instant app or game</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/guides/multiple-entry-points" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Provide multiple entry points</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/topic/google-play-instant/guides/analytics" class="devsite-nav-title"><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="/web/20210511131315/https://developer.android.com/topic/google-play-instant/guides/dynamic-links" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use Firebase Dynamic Links with instant apps</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/tech-requirements" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Technical requirements checklist</span></a></li><li class="devsite-nav-item"><a href="https://web.archive.org/web/20210511131315/https://play.google.com/about/other-programs/android-instant-apps/" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Google Play Instant policy</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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"><a href="https://web.archive.org/web/20210511131315/https://developers.google.com/android/reference/com/google/android/gms/instantapps/package-summary" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Reference</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/samples" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Code samples</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/release-notes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SDK release notes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/google-play-instant/instant-app-intents" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Instant App Intents</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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"><a href="https://web.archive.org/web/20210511131315/https://issuetracker.google.com/issues?q=status:open%20componentid:316045" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Known issues</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20210511131315/https://stackoverflow.com/questions/tagged/android-instant-apps" class="devsite-nav-title"><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></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/developer-api" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Play Developer API</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/google/play/installreferrer" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/google/play/installreferrer/library" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/reference/com/android/installreferrer/packages" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Reference</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/installreferrer/release-notes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Release notes</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/installreferrer/igetinstallreferrerservice" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Play Install Referrer API</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/google/play/licensing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/licensing/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Licensing Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/licensing/setting-up" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Setting Up for Licensing</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/licensing/server-side-verification" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adding Server-Side Verification</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/licensing/client-side-verification" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Adding Client-Side Verification</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/licensing/licensing-reference" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Licensing Reference</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/expansion-files" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>APK Expansion Files</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item"><a href="https://web.archive.org/web/20210511131315/https://developers.google.com/actions/app/" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App Actions</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Slices</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/slices" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/slices/getting-started" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Getting Started</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/slices/templates" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Slice templates</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/search/appsearch" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>On-device search</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Games</span></div></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Develop</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/preview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Developer previews</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/develop/build-in-unity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build your game in Unity</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20210511131315/https://docs.unrealengine.com/en-us/Platforms/Android" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build your game in Unreal</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="https://web.archive.org/web/20210511131315/https://developers.google.com/games/services/android/signin" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create a seamless sign-in experience</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/develop/permissions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Determine sensitive data access needs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/develop/safetynet" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Secure your game</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/develop/all-screens" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Develop games for all screens</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/develop/gameloops" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Learn about rendering in game loops</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/tools" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Tools for optimizing your game</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/optimize/64-bit" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Support 64-bit architectures</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/optimize" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Improve your game's performance</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/optimize/memory-allocation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage memory effectively in games</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/optimize/crash" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Detect and diagnose crashes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/optimize/cpu-profiler" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Identify CPU hot spots</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Implement the Android Game SDK</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/release-notes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Release notes</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Achieve proper frame pacing</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/frame-pacing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>OpenGL renderers</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/frame-pacing/opengl" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/frame-pacing/opengl/update-build-settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Update your build settings</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/frame-pacing/opengl/add-functions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add frame pacing functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/frame-pacing/opengl/verify-improvement" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Verify frame pacing improvement</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Vulkan renderers</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/frame-pacing/vulkan" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/frame-pacing/vulkan/update-build-settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Update your build settings</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/frame-pacing/vulkan/add-functions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add frame pacing functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/frame-pacing/vulkan/verify-improvement" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Verify frame pacing improvement</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 your frame rate</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 engine integration</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine/run-demo-app" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Run the demo app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine/enable-api" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Enable the API</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine/update-build-settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Update your build settings</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine/define-parameters" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Define annotations, fidelity parameters, and settings</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine/add-functions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add frame timing functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine/loading-functions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add loading time recording functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine/validate-and-package" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Validate, package, and publish the APK</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine/troubleshooting" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Troubleshoot common errors</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/custom-engine/advanced" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Advanced usage</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Unity integration</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/unity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/unity/enable-api" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Enable the API</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/unity/integrate-plugin" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate the plugin</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/unity/initialize-library" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Initialize the library and verify operation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/unity/define-parameters" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Define annotations, fidelity parameters, and quality levels</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/unity/loading-functions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add loading time recording functions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/unity/run-monitor-app" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Run the monitor app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/unity/review-and-publish" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Review and publish</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/performance-tuner/unity/troubleshooting" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Troubleshoot common errors</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Incorporate high-performance audio</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/oboe" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/oboe/update-build-settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Update your build settings</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20210511131315/https://github.com/google/oboe/blob/master/docs/GettingStarted.md#using-oboe" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use Oboe</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://web.archive.org/web/20210511131315/https://github.com/google/oboe/tree/master/samples" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Code samples</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://web.archive.org/web/20210511131315/https://github.com/google/oboe/blob/master/docs/FullGuide" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Full guide to Oboe</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Reference</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Frame Pacing library</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/frame-pacing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Modules</span></div></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/frame-pacing/group/swappy-common" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Swappy common tools</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/frame-pacing/group/swappy-g-l" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Swappy for OpenGL</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/frame-pacing/group/swappy-g-l-extra" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Swappy for OpenGL extras</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/frame-pacing/group/swappy-vk" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Swappy for Vulkan</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Structs</span></div></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/frame-pacing/struct/swappy-stats" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SwappyStats</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/frame-pacing/struct/swappy-thread-functions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SwappyThreadFunctions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/frame-pacing/struct/swappy-tracer" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SwappyTracer</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/frame-pacing/struct/swappy-vk-function-provider" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SwappyVkFunctionProvider</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Performance Tuner library</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 engine</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Modules</span></div></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/group/tuning-fork-cache" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Tuning Fork cache utilities</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/group/tuningfork-extra" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Tuning Fork extra utilities</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/group/tuningfork" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Tuning Fork main interface</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Structs</span></div></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/struct/tuning-fork-c-protobuf-serialization" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>TuningFork_CProtobufSerialization</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/struct/tuning-fork-cache" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>TuningFork_Cache</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/struct/tuning-fork-loading-time-metadata" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>TuningFork_LoadingTimeMetadata</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/struct/tuning-fork-metric-limits" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>TuningFork_MetricLimits</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/struct/tuning-fork-settings" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>TuningFork_Settings</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Unity</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/unity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Classes</span></div></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/unity/class/google/android/performance-tuner/android-performance-tuner-t-fidelity-t-annotation-" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>AndroidPerformanceTuner< TFidelity, TAnnotation ></span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/unity/class/google/android/performance-tuner/loading-time-metadata" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>LoadingTimeMetadata</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/unity/class/google/android/performance-tuner/result-t-" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Result< T ></span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Structs</span></div></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/unity/struct/google/android/performance-tuner/metric-limits" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>MetricLimits</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Namespaces</span></div></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/unity/namespace/google" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Google</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/unity/namespace/google/android" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Google.Android</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/sdk/reference/performance-tuner/unity/namespace/google/android/performance-tuner" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Google.Android.PerformanceTuner</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/games/optimize/game-size" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Reduce game size</span></a></li><li class="devsite-nav-item"><a href="https://web.archive.org/web/20210511131315/https://gpuinspector.dev/" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Profile graphics</span></a></li><li class="devsite-nav-item"><a href="https://web.archive.org/web/20210511131315/https://source.android.com/devices/tech/debug/native-memory" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Debugging native memory use</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Launch and iterate</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/distribute/games#games-on-google-play" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Launch your game on Google Play</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://web.archive.org/web/20210511131315/https://blogs.unity3d.com/2018/10/03/support-for-android-app-bundle-aab-in-unity-2018-3-beta/" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create an Android App Bundle in Unity</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="/web/20210511131315/https://developer.android.com/games/launch/game-instant-app" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add support for instant access</span></a></li><li class="devsite-nav-item"><a href="https://web.archive.org/web/20210511131315/https://developers.google.com/android-publisher/reply-to-reviews" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Stay connected with your user base</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Best practices</span></div></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/dependency-injection" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/dependency-injection/manual" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manual dependency injection</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/dependency-injection/hilt-android" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Dependency injection with Hilt</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/dependency-injection/hilt-multi-module" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Hilt in multi-module apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/dependency-injection/hilt-jetpack" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Hilt and Jetpack integrations</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/dependency-injection/hilt-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Hilt testing guide</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/dependency-injection/hilt-cheatsheet" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Hilt and Dagger annotations cheat sheet</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/dependency-injection/dagger-basics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Dagger basics</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/dependency-injection/dagger-android" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Using Dagger in Android apps</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/dependency-injection/dagger-multi-module" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Using Dagger in multi-module apps</span></a></li></ul></devsite-expandable-nav></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/fundamentals" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Fundamentals of testing</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/set-up-project" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Set up project</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 effective unit tests</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/unit-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/unit-testing/local-unit-tests" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building local unit tests</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Building instrumented unit tests</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Automating UI tests</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/ui-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/ui-testing/espresso-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Testing UI for a single app</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/ui-testing/uiautomator-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Testing UI for multiple apps</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 app component integrations</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/integration-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/integration-testing/service-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Testing your service</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/integration-testing/content-provider-testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Testing your content provider</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/performance" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Testing UI performance</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/training/testing/espresso" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Setup instructions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/basics" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Basics</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/recipes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Recipes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/multiprocess" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Multiprocess</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/accessibility-checking" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Accessibility checking</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/lists" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Lists</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/intents" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Intents</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/web" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Web</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/idling-resource" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Idling resource</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/cheat-sheet" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Cheat sheet</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/espresso/additional-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Additional resources</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/ui-automator" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>UI Automator</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/crawler" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App Crawler</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/junit-rules" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>JUnit4 Rules</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/junit-runner" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>AndroidJUnitRunner</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/rel-notes" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Release notes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/testing/additional-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Additional resources</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Performance</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 Vitals</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/wakelock" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Stuck Partial Wake Locks</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/wakeup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Excessive Wakeups</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/bg-wifi" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Excessive Background Wi-Fi Scans</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/bg-network-usage" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Excessive Background Network Usage</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/anr" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>ANRs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/crash" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Crashes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/render" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Slow Rendering</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/frozen" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Frozen Frames</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/permissions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Permission Denials</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/vitals/launch-time" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App Startup Time</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/appstandby" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App Standby Buckets</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/components/processes-and-threads" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Processes and Threads Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/threads" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Better Performance through Threading</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Optimizing for Battery Life</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/monitoring-device-state/doze-standby" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Optimize for Doze and App Standby</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/monitoring-device-state/battery-monitoring" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Monitor the battery level and charging state</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/monitoring-device-state/connectivity-status-type" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Monitor connectivity status and connection metering</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/monitoring-device-state/docking-monitoring" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Determine and monitor the docking state and type</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/power-details" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Power management restrictions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/setup-battery-historian" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Profile battery usage with Batterystats and Battery Historian</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/battery-historian" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Analyze power use with Battery Historian</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/power/test-power" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Testing power-related issues</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/reduce-apk-size" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Reduce your app size</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Manage memory</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/memory-overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview of Memory Managemement</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/memory-management" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Memory Allocation among Processes</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/memory" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage Your App's Memory</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>System tracing</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/tracing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/tracing/command-line" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Capture a trace from the command line</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/tracing/on-device" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Capture a trace on a device</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/tracing/navigate-report" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Navigate a report</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/tracing/custom-events" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Define custom events</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/performance/rendering/inspect-gpu-rendering" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Inspect GPU rendering</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/practices/app-design/seamlessness" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Designing for Seamlessness</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/perf-anr" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Keeping Your App Responsive</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/perf-tips" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Performance Tips</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/smp" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SMP Primer for Android</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/practices/verifying-apps-art" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Verifying App Behavior on the Android Runtime (ART)</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Accessibility</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/accessibility" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 and test apps for accessibility</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/accessibility/apps" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Make apps more accessible</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/accessibility/principles" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Principles for improving app accessibility</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/accessibility/testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test your app's accessibility</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 topics</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/accessibility/custom-views" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Make custom views more accessible</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/accessibility/service" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Create your own accessibility service</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/ui/accessibility/additional-resources" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Additional resources</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Privacy</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/privacy/best-practices" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Privacy best practices</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Security</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/security/best-practices" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App security best practices</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/security-tips" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Security tips</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/security/data" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Security with data</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/security/data-android-versions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Security with data across additional Android versions</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/security-ssl" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Security with HTTPS and SSL</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/security-config" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Network security configuration</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/security-gms-provider" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Updating your security provider to protect against SSL exploits</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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>Protecting against security threats with SafetyNet</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/safetynet" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/safetynet/attestation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SafetyNet Attestation API</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/safetynet/safebrowsing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SafetyNet Safe Browsing API</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/safetynet/recaptcha" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SafetyNet reCAPTCHA API</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/safetynet/verify-apps" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>SafetyNet Verify Apps API</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/security/cryptography" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Cryptography</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/keystore" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android Keystore System</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/security-key-attestation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Verifying hardware-backed key pairs with key attestation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/security-android-protected-confirmation" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android Protected Confirmation</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/training/articles/direct-boot" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Supporting Direct Boot</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/security/dex" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Running embedded DEX code</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/google/play/asi" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>App security improvement program</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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 Billions</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/topic/billions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/docs/quality-guidelines/build-for-billions/connectivity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Connectivity</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/docs/quality-guidelines/build-for-billions/device-capacity" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Device capability</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/docs/quality-guidelines/build-for-billions/data-cost" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Data cost</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/docs/quality-guidelines/build-for-billions/battery-consumption" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Battery consumption</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/docs/quality-guidelines/build-for-billions/ui" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>UI and content</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/work/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/guide" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Developer guide</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/managed-profiles" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Work profiles</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/managed-configurations" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Set up managed configurations</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/work/app-feedback/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Send app feedback to EMMs</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/app-feedback/testing" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Test app feedback</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/contacts" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Work contacts</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/device-management-policy" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Device management policies</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/work/dpc/build-dpc" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/dpc/build-dpc" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Build a device policy controller</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/work/dpc/dedicated-devices" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Lock task mode</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/dpc/dedicated-devices/multiple-users" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Multiple users</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/dpc/dedicated-devices/cookbook" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Cookbook</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/dpc/device-management" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Device control</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/dpc/network-telephony" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Networking and telephony</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/dpc/security" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Security</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/dpc/system-updates" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>System updates</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/dpc/logging" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Network activity logging</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <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="/web/20210511131315/https://developer.android.com/work/versions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/versions/android-11" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android 11</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/versions/android-10" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android 10</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/versions/android-9.0" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android 9</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/versions/android-8.0" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android 8.0</span></a></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/work/versions/android-7.0" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android 7.0</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210511131315/https://developer.android.com/guide/topics/admin/device-admin" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Device administration</span></a></li></ul></devsite-expandable-nav></li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-toc> <devsite-toc class="devsite-nav"></devsite-toc> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20210511131315/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://web.archive.org/web/20210511131315/https://developer.android.com/docs" 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=""> Docs </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://web.archive.org/web/20210511131315/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"> <template class="thumb-down-categories"> [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples/Code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] </template> <template class="thumb-up-categories"> [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }] </template> </devsite-thumb-rating> </div> <h1 class="devsite-page-title">Developer Guides<devsite-bookmark></devsite-bookmark></h1> <devsite-toc class="devsite-nav" devsite-toc-embedded> </devsite-toc> <div class="devsite-article-body clearfix "> <div class="video-wrapper"> <iframe class="devsite-embedded-youtube-video" data-video-id="0JUgBBynPdU" data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen> </iframe> </div> <p>Welcome to the Android developer guides. These documents teach you how to build Android apps using APIs in the Android framework and other libraries.</p> <p>If you're brand new to Android and want to jump into code, start with the <a href="/web/20210511131315/https://developer.android.com/training/basics/firstapp">Build Your First App</a> tutorial.</p> <p>And check out these other resources to learn Android development:</p> <ul> <li><a href="https://web.archive.org/web/20210511131315/https://codelabs.developers.google.com/?cat=Android">Codelabs</a>: Short, self-paced tutorials that each cover a discrete topic. Most codelabs step you through the process of building a small app, or adding a new feature to an existing app.</li> <li><a href="/web/20210511131315/https://developer.android.com/courses">Courses</a>: Guided training paths that teach you how to build Android apps.</li> <li>Online training: If you prefer to learn online with videos, check out the <a href="https://web.archive.org/web/20210511131315/https://www.udacity.com/course/ud9012">Developing Android Apps with Kotlin</a> course on Udacity (trailer embedded here), and other <a href="#videos">online courses below</a>.</ul> <p>Otherwise, the following is a small selection of essential developer guides that you should be familiar with.</p> <section class="dac-section dac-small" id="essential" style="margin-top:0;"><div class="wrap"> <h2 class="norule" id="essential-documentation" data-text="Essential documentation">Essential documentation</h2> <devsite-dynamic-content maxresults="24" initial-results="24" items-per-page="24" dynamic-card-type="card" query="keyword:collection_developlandingessentialdocs"> </devsite-dynamic-content> </div></section> <section class="dac-section dac-small" id="videos"><div class="wrap"> <h2 class="norule" style="margin:20px 0" id="online-training" data-text="Online training">Online training</h2> <devsite-dynamic-content maxresults="24" sortorder="-timestamp" initial-results="12" items-per-page="24" dynamic-card-type="card" query="keyword:collection_developlandingcourses"> </devsite-dynamic-content> </div> </section> <devsite-hats-survey hats-id="onAFgYxTD0kxBYCLVTd0Z41p75CM" listnr-id="5207477"></devsite-hats-survey> </div> <devsite-thumb-rating position="footer"> <template class="thumb-down-categories"> [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples/Code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] </template> <template class="thumb-up-categories"> [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }] </template> </devsite-thumb-rating> </article> <devsite-content-footer class="nocontent"> <p>Content and code samples on this page are subject to the licenses described in the <a href="/web/20210511131315/https://developer.android.com/license">Content License</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2020-06-08 UTC.</p> </devsite-content-footer> </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="//web.archive.org/web/20210511131315/https://twitter.com/AndroidDev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Twitter Promo"> <img class="devsite-footer-promo-icon" src="/web/20210511131315im_/https://developer.android.com/_static/android/images/logo-twitter.svg" loading="lazy" alt="Twitter"> Twitter </a> <div class="devsite-footer-promo-description">Follow @AndroidDev on Twitter</div> </li> <li class="devsite-footer-promo"> <a href="//web.archive.org/web/20210511131315/https://www.youtube.com/user/androiddevelopers" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer YouTube Promo"> <img class="devsite-footer-promo-icon" src="//web.archive.org/web/20210511131315im_/https://www.gstatic.com/images/icons/material/product/2x/youtube_48dp.png" loading="lazy" alt="YouTube"> YouTube </a> <div class="devsite-footer-promo-description">Check out Android Developers on YouTube</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="//web.archive.org/web/20210511131315/https://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="//web.archive.org/web/20210511131315/https://www.android.com/enterprise/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Enterprise </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210511131315/https://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="//web.archive.org/web/20210511131315/https://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> </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="//web.archive.org/web/20210511131315/https://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="//web.archive.org/web/20210511131315/https://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="//web.archive.org/web/20210511131315/https://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://web.archive.org/web/20210511131315/https://google.qualtrics.com/jfe/form/SV_ewWXIoEVLBcyp7f??reserved=1&utm_source=FooterLink&Q_Language=en&utm_medium=own_srch&utm_campaign=developer.android.com&utm_term=0&utm_content=0&productTag=reg&campaignDate=may19&pType=devel&referral_code=gV420370" 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> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Documentation</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20210511131315/https://developer.android.com/guide" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Developer guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210511131315/https://developer.android.com/design" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Design guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210511131315/https://developer.android.com/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="/web/20210511131315/https://developer.android.com/samples" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Samples </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210511131315/https://developer.android.com/studio/intro" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Android Studio </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://web.archive.org/web/20210511131315/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"> <img class="devsite-footer-sites-logo" src="https://web.archive.org/web/20210511131315im_/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/images/lockup-developers.svg" loading="lazy" alt="Google Developers"> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210511131315/https://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="//web.archive.org/web/20210511131315/https://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="//web.archive.org/web/20210511131315/https://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="//web.archive.org/web/20210511131315/https://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="//web.archive.org/web/20210511131315/https://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="//web.archive.org/web/20210511131315/https://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="/web/20210511131315/https://developer.android.com/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="/web/20210511131315/https://developer.android.com/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 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="/web/20210511131315/https://developer.android.com/updates" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link"> Subscribe </a> </li> </ul> <devsite-language-selector> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en" track-metadata-original-language="en" track-metadata-selected-language="en" track-name="changed" track-type="languageSelector"> English </option> <option value="id" lang="id" track-metadata-original-language="en" track-metadata-selected-language="id" track-name="changed" track-type="languageSelector"> Bahasa Indonesia </option> <option value="es_419" lang="es_419" track-metadata-original-language="en" track-metadata-selected-language="es_419" track-name="changed" track-type="languageSelector"> Español – América Latina </option> <option value="pt_br" lang="pt_br" track-metadata-original-language="en" track-metadata-selected-language="pt_br" track-name="changed" track-type="languageSelector"> Português – Brasil </option> <option value="zh_cn" lang="zh_cn" track-metadata-original-language="en" track-metadata-selected-language="zh_cn" track-name="changed" track-type="languageSelector"> 中文 – 简体 </option> <option value="ja" lang="ja" track-metadata-original-language="en" track-metadata-selected-language="ja" track-name="changed" track-type="languageSelector"> 日本語 </option> <option value="ko" lang="ko" track-metadata-original-language="en" track-metadata-selected-language="ko" track-name="changed" track-type="languageSelector"> 한국어 </option> </select> </devsite-select> </devsite-language-selector> </nav> </div> </devsite-footer-utility> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics enable-analytics-iframe> <script type="application/json" analytics>[{"gaid": "UA-5831155-1", "dimensions": {"dimension1": "Signed out", "dimension4": "Android Developers", "dimension3": false, "dimension6": "en", "dimension11": false, "dimension5": "en"}, "metrics": {"ratings_count": "metric2", "ratings_value": "metric1"}}]</script> <script type="application/json" gtm>{"parameters": {"freeTrialEligibleUser": "False", "internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Android Developers", "scriptsafe": null, "signedIn": "False", "tenant": "android", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}}, "tags": ["GTM-KMSWPCJ"]}</script> </devsite-analytics> <devsite-badger></devsite-badger> <android-fully-clickable target=".fully-clickable"></android-fully-clickable> <script nonce="S6UqJufvopCWzXgV5PiCrqS4kRkVNX"> (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://web.archive.org/web/20210511131315/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/js/app_loader.js', '[3,"en",null,"/js/devsite_app_module.js","https://web.archive.org/web/20210511131315/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218","https://web.archive.org/web/20210511131315/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android","https://web.archive.org/web/20210511131315/https://android-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/android/manifest.json","https://web.archive.org/web/20210511131315/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/images/video-placeholder.svg","https://web.archive.org/web/20210511131315/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/images/favicon.png","https://web.archive.org/web/20210511131315/https://www.gstatic.com/devrel-devsite/prod/va16bb1b8e431a4d4f63ff4fba8ff7086a1107b3790bb14961ea206ea5eda2218/android/images/lockup.svg","https://web.archive.org/web/20210511131315/https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons"],1,null,[1,6,8,12,14,17,21,25,40,45,50,63,70,75,76,80,87,88,91,92,93,97,98,100,101,102,103,105,107,108,111,112,113,115,117,118,120,122,123,124,125,127,129,131,132,133,134,135,136],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 13:13:15 May 11, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 01:32:48 Dec 01, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 1.966 exclusion.robots: 0.143 exclusion.robots.policy: 0.088 esindex: 0.045 cdx.remote: 25.146 LoadShardBlock: 277.617 (3) PetaboxLoader3.datanode: 127.411 (4) PetaboxLoader3.resolve: 285.574 (2) load_resource: 173.676 -->