CINXE.COM
Best practices for shortcuts | 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("http://web.archive.org/web"); __wm.wombat("https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices","20231023232402","http://web.archive.org/","web","/_static/", "1698103442"); </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/20231023232402/https://developer.android.com/_pwa/android/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20231023232402/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231023232402/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231023232402/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231023232402/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231023232402/https://www.google-analytics.com/" crossorigin><link rel="stylesheet" href="//web.archive.org/web/20231023232402cs_/https://fonts.googleapis.com/css?family=Google+Sans:400,500,600,700|Google+Sans+Text:400,400italic,500,500italic,600,600italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//web.archive.org/web/20231023232402cs_/https://fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block"><link rel="stylesheet" href="http://web.archive.org/web/20231023232402cs_/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/css/rebrand-app.css"> <link rel="shortcut icon" href="http://web.archive.org/web/20231023232402im_/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/images/rebrand/favicon.svg"> <link rel="apple-touch-icon" href="http://web.archive.org/web/20231023232402im_/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/images/rebrand/touchicon-180.png"><link rel="canonical" href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices"><link rel="search" type="application/opensearchdescription+xml" title="Android Developers" href="http://web.archive.org/web/20231023232402/https://developer.android.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices"/><link rel="alternate" hreflang="x-default" href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices"/><link rel="alternate" hreflang="ar" href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices?hl=ar"/><link rel="alternate" hreflang="zh-Hans" href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices?hl=zh-cn"/><link rel="alternate" hreflang="zh-Hant" href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices?hl=zh-tw"/><link rel="alternate" hreflang="id" href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices?hl=id"/><link rel="alternate" hreflang="it" href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices?hl=it"/><link rel="alternate" hreflang="tr" href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices?hl=tr"/><title>Best practices for shortcuts | Android Developers</title> <meta property="og:title" content="Best practices for shortcuts | Android Developers"><meta property="og:url" content="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices"><meta property="og:image" content="http://web.archive.org/web/20231023232402im_/https://developer.android.com/static/images/social/android-developers.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "http://web.archive.org/web/20231023232402/https://schema.org", "@type": "Article", "headline": "Best practices for shortcuts" } </script> <link rel="stylesheet" href="/web/20231023232402cs_/https://developer.android.com/extras.css"></head> <body class="" 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 role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/web/20231023232402/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="http://web.archive.org/web/20231023232402im_/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/images/rebrand/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 dropdown dropdown-full> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/get-started" track-metadata-eventdetail="https://developer.android.com/get-started" class="devsite-tabs-content gc-analytics-event android-dropdown-tab" track-type="nav" track-metadata-position="nav - essentials" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials"> Essentials </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Essentials" track-type="nav" track-metadata-eventdetail="https://developer.android.com/get-started" track-metadata-position="nav - essentials" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-dropdown android-dropdown-primary android-dropdown-mad"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Modern Android</li> <li class="devsite-nav-description">Quickly bring your app to life with less code, using a modern declarative approach to UI, and the simplicity of Kotlin. </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/modern-android-development" track-type="nav" track-metadata-eventdetail="https://developer.android.com/modern-android-development" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="modern android" tooltip class="button button-primary"> <div class="devsite-nav-item-title"> Explore Modern Android </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/jetpack/compose/adopt/for-large-teams" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/compose/adopt/for-large-teams" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="modern android" tooltip class="button button-white"> <div class="devsite-nav-item-title"> Adopt Compose for teams </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-launch"> <li class="devsite-nav-title" role="heading" tooltip>Get started</li> <li class="devsite-nav-description">Start by creating your first app. Go deeper with our training courses or explore app development on your own. </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/codelabs/basic-android-kotlin-compose-first-app" track-type="nav" track-metadata-eventdetail="https://developer.android.com/codelabs/basic-android-kotlin-compose-first-app" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip> <div class="devsite-nav-item-title"> Hello world </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/courses" track-type="nav" track-metadata-eventdetail="https://developer.android.com/courses" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip> <div class="devsite-nav-item-title"> Training courses </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/get-started/codelabs" track-type="nav" track-metadata-eventdetail="https://developer.android.com/get-started/codelabs" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip> <div class="devsite-nav-item-title"> Tutorials </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/kotlin" track-type="nav" track-metadata-eventdetail="https://developer.android.com/kotlin" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip> <div class="devsite-nav-item-title"> Kotlin for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://play.google.com/console/about/guides/monetize/" track-type="nav" track-metadata-eventdetail="https://play.google.com/console/about/guides/monetize/" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip> <div class="devsite-nav-item-title"> Monetization with Play ↗️ </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-multiple-screens"> <li class="devsite-nav-title" role="heading" tooltip>Extend by device</li> <li class="devsite-nav-description">Build apps that give your users seamless experiences from phones to tablets, watches, and more. </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/large-screens" track-type="nav" track-metadata-eventdetail="https://developer.android.com/large-screens" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip> <div class="devsite-nav-item-title"> Large screens (e.g. Tablets) </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/wear" track-type="nav" track-metadata-eventdetail="https://developer.android.com/wear" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip> <div class="devsite-nav-item-title"> Wear OS </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/cars" track-type="nav" track-metadata-eventdetail="https://developer.android.com/cars" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip> <div class="devsite-nav-item-title"> Android for Cars </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/tv" track-type="nav" track-metadata-eventdetail="https://developer.android.com/tv" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip> <div class="devsite-nav-item-title"> Android TV </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/chrome-os" track-type="nav" track-metadata-eventdetail="https://developer.android.com/chrome-os" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip> <div class="devsite-nav-item-title"> ChromeOS </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-platform"> <li class="devsite-nav-title" role="heading" tooltip>Build by category</li> <li class="devsite-nav-description">Learn to build for your use case by following Google's prescriptive and opinionated guidance. </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/games" track-type="nav" track-metadata-eventdetail="https://developer.android.com/games" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip> <div class="devsite-nav-item-title"> Games </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/media" track-type="nav" track-metadata-eventdetail="https://developer.android.com/media" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip> <div class="devsite-nav-item-title"> Media apps </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/health-and-fitness" track-type="nav" track-metadata-eventdetail="https://developer.android.com/health-and-fitness" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip> <div class="devsite-nav-item-title"> Health & Fitness </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developers.google.com/android/work" track-type="nav" track-metadata-eventdetail="https://developers.google.com/android/work" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip> <div class="devsite-nav-item-title"> Enterprise apps ↗️ </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-stars"> <li class="devsite-nav-title" role="heading" tooltip>Get the latest</li> <li class="devsite-nav-description">Stay in touch with the latest releases throughout the year, join our preview programs, and give us your feedback. </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/about/versions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/about/versions" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip> <div class="devsite-nav-item-title"> Platform releases </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/studio/preview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio/preview" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip> <div class="devsite-nav-item-title"> Android Studio preview </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/jetpack/androidx/versions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/androidx/versions" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip> <div class="devsite-nav-item-title"> Jetpack & Compose libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/training/wearables/versions/4" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/wearables/versions/4" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip> <div class="devsite-nav-item-title"> Wear OS preview </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/design-for-safety/privacy-sandbox" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design-for-safety/privacy-sandbox" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip> <div class="devsite-nav-item-title"> Privacy Sandbox </div> </a> </li> </ul> </div> </div> </div> </tab> <tab dropdown dropdown-full> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/design" track-metadata-eventdetail="https://developer.android.com/design" class="devsite-tabs-content gc-analytics-event android-dropdown-tab" track-type="nav" track-metadata-position="nav - design & plan" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Design & Plan" track-name="design & plan"> Design & Plan </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Design & Plan" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design" track-metadata-position="nav - design & plan" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Design & Plan" track-name="design & plan" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-dropdown android-dropdown-primary android-dropdown-kit"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Kits & more</li> <li class="devsite-nav-description">Get one of our Figma kits for Android, Material Design, or Wear OS, and start designing your app's UI today. </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/design/ui/mobile#explore-our-kits" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/mobile#explore-our-kits" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="kits & more" tooltip class="button button-primary"> <div class="devsite-nav-item-title"> Go to Android & Material kits </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/design/ui/wear#explore-our-kits" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/wear#explore-our-kits" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="kits & more" tooltip class="button button-white"> <div class="devsite-nav-item-title"> Go to Wear OS kits </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-layout"> <li class="devsite-nav-title" role="heading" tooltip>UI Design</li> <li class="devsite-nav-description">Design a beautiful user interface using Android best practices.</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/design/ui" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip> <div class="devsite-nav-item-title"> Design for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/design/ui/mobile" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/mobile" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip> <div class="devsite-nav-item-title"> Mobile </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/design/ui/large-screens" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/large-screens" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip> <div class="devsite-nav-item-title"> Large screens (e.g. Tablets) </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/design/ui/wear" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/wear" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip> <div class="devsite-nav-item-title"> Wear OS </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/design/ui/tv" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/tv" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip> <div class="devsite-nav-item-title"> Android TV </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-design"> <li class="devsite-nav-title" role="heading" tooltip>Architecture</li> <li class="devsite-nav-description">Design robust, testable, and maintainable app logic and services.</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/topic/architecture/intro" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/architecture/intro" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip> <div class="devsite-nav-item-title"> Introduction </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/topic/libraries/view-binding" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/libraries/view-binding" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip> <div class="devsite-nav-item-title"> Libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/guide/navigation/navigation-principles" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/navigation/navigation-principles" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip> <div class="devsite-nav-item-title"> Navigation </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/topic/modularization" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/modularization" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip> <div class="devsite-nav-item-title"> Modularization </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/training/testing/fundamentals" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/testing/fundamentals" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip> <div class="devsite-nav-item-title"> Testing </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-vitals"> <li class="devsite-nav-title" role="heading" tooltip>Quality</li> <li class="devsite-nav-description">Plan for app quality and align with Play store guidelines.</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/quality" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip> <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/quality/core-value" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/core-value" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip> <div class="devsite-nav-item-title"> Core value </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/quality/user-experience" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/user-experience" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip> <div class="devsite-nav-item-title"> User experience </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/quality/technical" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/technical" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip> <div class="devsite-nav-item-title"> Technical quality </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/quality/privacy-and-security" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/privacy-and-security" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip> <div class="devsite-nav-item-title"> Privacy & security </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-earth"> <li class="devsite-nav-title" role="heading" tooltip>Build for Billions</li> <li class="devsite-nav-description">Create the best experience for entry-level devices</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/build-for-billions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/build-for-billions" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="build for billions" tooltip> <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/docs/quality-guidelines/build-for-billions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/docs/quality-guidelines/build-for-billions" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="build for billions" tooltip> <div class="devsite-nav-item-title"> About new markets </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/guide/topics/androidgo" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/androidgo" track-metadata-position="nav - design & plan" track-metadata-module="tertiary nav" track-metadata-module_headline="build for billions" tooltip> <div class="devsite-nav-item-title"> Android (Go edition) </div> </a> </li> </ul> </div> </div> </div> </tab> <tab dropdown dropdown-full active> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop" track-metadata-eventdetail="https://developer.android.com/develop" class="devsite-tabs-content gc-analytics-event android-dropdown-tab" track-type="nav" track-metadata-position="nav - develop" track-metadata-module="primary nav" aria-label="Develop, selected" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop"> Develop </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Develop" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop" track-metadata-position="nav - develop" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-dropdown android-dropdown-primary android-dropdown-studio"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Android Studio</li> <li class="devsite-nav-description">Use the IDE and tools that make Android development easy. </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/studio" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="android studio" tooltip class="button button-primary"> <div class="devsite-nav-item-title"> Get Android Studio </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/studio/write" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio/write" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="android studio" tooltip class="button button-white"> <div class="devsite-nav-item-title"> Start coding </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-flag"> <li class="devsite-nav-title" role="heading" tooltip>Core areas</li> <li class="devsite-nav-description">Get the docs for the features you need.</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop/ui" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip> <div class="devsite-nav-item-title"> User interfaces </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/guide/topics/permissions/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/permissions/overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip> <div class="devsite-nav-item-title"> Permissions </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/guide/background" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/background" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip> <div class="devsite-nav-item-title"> Background work </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/guide/topics/data" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/data" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip> <div class="devsite-nav-item-title"> Data and files </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/training/sign-in" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/sign-in" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip> <div class="devsite-nav-item-title"> User identity </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/training/camera/choose-camera-library" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/camera/choose-camera-library" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip> <div class="devsite-nav-item-title"> Camera </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop#core-areas" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop#core-areas" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip> <div class="devsite-nav-item-title"> All core areas ⤵️ </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-tools-2"> <li class="devsite-nav-title" role="heading" tooltip>Tools and workflow</li> <li class="devsite-nav-description">Use the IDE to write and build your app, or create your own pipeline.</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/studio/write" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio/write" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip> <div class="devsite-nav-item-title"> Write and debug code </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/build" track-type="nav" track-metadata-eventdetail="https://developer.android.com/build" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip> <div class="devsite-nav-item-title"> Build projects </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/training/testing" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/testing" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip> <div class="devsite-nav-item-title"> Test your app </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/topic/performance/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/performance/overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip> <div class="devsite-nav-item-title"> Performance </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/tools" track-type="nav" track-metadata-eventdetail="https://developer.android.com/tools" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip> <div class="devsite-nav-item-title"> Command-line tools </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/reference/tools/gradle-api" track-type="nav" track-metadata-eventdetail="https://developer.android.com/reference/tools/gradle-api" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip> <div class="devsite-nav-item-title"> Gradle plugin API </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-multiple-screens"> <li class="devsite-nav-title" role="heading" tooltip>Devices</li> <li class="devsite-nav-description">Write code to work with particular form factors.</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/guide/topics/large-screens/get-started-with-large-screens" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/large-screens/get-started-with-large-screens" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="devices" tooltip> <div class="devsite-nav-item-title"> Large screens (e.g. Tablets) </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/training/wearables" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/wearables" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="devices" tooltip> <div class="devsite-nav-item-title"> Wear OS </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/training/cars" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/cars" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="devices" tooltip> <div class="devsite-nav-item-title"> Android for Cars </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/training/tv" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/tv" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="devices" tooltip> <div class="devsite-nav-item-title"> Android TV </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/chrome-os/intro" track-type="nav" track-metadata-eventdetail="https://developer.android.com/chrome-os/intro" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="devices" tooltip> <div class="devsite-nav-item-title"> ChromeOS </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-core-library"> <li class="devsite-nav-title" role="heading" tooltip>Libraries</li> <li class="devsite-nav-description">Browse API reference documentation with all the details.</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/reference/packages" track-type="nav" track-metadata-eventdetail="https://developer.android.com/reference/packages" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip> <div class="devsite-nav-item-title"> Android platform </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/jetpack/androidx/explorer" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/androidx/explorer" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip> <div class="devsite-nav-item-title"> Jetpack libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/jetpack/androidx/releases/compose" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/androidx/releases/compose" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip> <div class="devsite-nav-item-title"> Compose libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developers.google.com/android/reference/packages" track-type="nav" track-metadata-eventdetail="https://developers.google.com/android/reference/packages" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip> <div class="devsite-nav-item-title"> Google Play services ↗️ </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://play.google.com/sdks" track-type="nav" track-metadata-eventdetail="https://play.google.com/sdks" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip> <div class="devsite-nav-item-title"> Google Play SDK index ↗️ </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/distribute" track-metadata-eventdetail="https://developer.android.com/distribute" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - google play" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Google Play" track-name="google play"> Google Play </a> </tab> </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="http://web.archive.org/web/20231023232402/https://developer.android.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="searchbox" type="text" value=""> <div class="devsite-search-image material-icons" aria-hidden="true"></div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en">English</a> </li> <li role="presentation"> <a role="menuitem" lang="id">Bahasa Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419">Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="it">Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="tr">Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ar">العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw">中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja">日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko">한국어</a> </li> </ul> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="http://web.archive.org/web/20231023232402/https://developer.android.com/studio" data-category="Site-Wide Custom Events" data-label="Site header link"> Android Studio </a> <devsite-user enable-profiles id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row"> <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail=""> Develop </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/docs" track-metadata-eventdetail="https://developer.android.com/docs" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview"> Overview </a> </tab> <tab> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/guide" track-metadata-eventdetail="https://developer.android.com/guide" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides"> Guides </a> </tab> <tab active> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui" track-metadata-eventdetail="https://developer.android.com/develop/ui" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - ui guide" track-metadata-module="primary nav" aria-label="UI Guide, selected" data-category="Site-Wide Custom Events" data-label="Tab: UI Guide" track-name="ui guide"> UI Guide </a> </tab> <tab> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/reference" track-metadata-eventdetail="https://developer.android.com/reference" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference"> Reference </a> </tab> <tab> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/samples" track-metadata-eventdetail="https://developer.android.com/samples" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples"> Samples </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars> <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/20231023232402/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="http://web.archive.org/web/20231023232402im_/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/images/rebrand/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-filter "> <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <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/20231023232402/https://developer.android.com/get-started" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Essentials" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Essentials </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials"> <span class="devsite-nav-text" tooltip menu="Essentials"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Essentials"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/design" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Design & Plan" track-name="design & plan" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Design & Plan" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Design & Plan </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Design & Plan" track-name="design & plan"> <span class="devsite-nav-text" tooltip menu="Design & Plan"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Design & Plan"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/develop" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Develop" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Develop </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop"> <span class="devsite-nav-text" tooltip menu="Develop"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Develop"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/guide" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/develop/ui" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: UI Guide" track-name="ui guide" data-category="Site-Wide Custom Events" data-label="Responsive Tab: UI Guide" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> UI Guide </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/reference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Samples </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/distribute" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Google Play" track-name="google play" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Play </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/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="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android Studio </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui"><span class="devsite-nav-text" tooltip>Develop your UI on Android</span></a></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Develop your app's layout</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/declaring-layout" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/declaring-layout" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/declaring-layout"><span class="devsite-nav-text" tooltip>About layouts</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/responsive-adaptive-design-with-views" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/responsive-adaptive-design-with-views" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/responsive-adaptive-design-with-views"><span class="devsite-nav-text" tooltip>Responsive/adaptive design with views</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/constraint-layout" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/constraint-layout" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/constraint-layout"><span class="devsite-nav-text" tooltip>Build a responsive UI with ConstraintLayout</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/recyclerview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/recyclerview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/recyclerview"><span class="devsite-nav-text" tooltip>Create dynamic lists with RecyclerView</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/recyclerview-custom" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/recyclerview-custom" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/recyclerview-custom"><span class="devsite-nav-text" tooltip>Customize a dynamic list</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/cardview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/cardview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/cardview"><span class="devsite-nav-text" tooltip>Create a card-based layout</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/twopane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/twopane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/twopane"><span class="devsite-nav-text" tooltip>Create a two-pane layout</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/linear" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/linear" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/linear"><span class="devsite-nav-text" tooltip>Create a linear layout</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/binding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/binding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/binding"><span class="devsite-nav-text" tooltip>Fill a layout with data</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/relative" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/relative" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/relative"><span class="devsite-nav-text" tooltip>Create a relative layout</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Improve layout performance</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/improving-layouts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/improving-layouts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/improving-layouts"><span class="devsite-nav-text" tooltip>About layout performance</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/improving-layouts/optimizing-layouts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/improving-layouts/optimizing-layouts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/improving-layouts/optimizing-layouts"><span class="devsite-nav-text" tooltip>Optimize layout hierarchies</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/improving-layouts/reusing-layouts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/improving-layouts/reusing-layouts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/improving-layouts/reusing-layouts"><span class="devsite-nav-text" tooltip>Reuse layouts with <include></span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/improving-layouts/loading-ondemand" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/improving-layouts/loading-ondemand" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/improving-layouts/loading-ondemand"><span class="devsite-nav-text" tooltip>Load views on demand</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create custom view components</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/custom-views/custom-components" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/custom-views/custom-components" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/custom-views/custom-components"><span class="devsite-nav-text" tooltip>About custom view components</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/guide/topics/ui/how-android-draws" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/ui/how-android-draws" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/ui/how-android-draws"><span class="devsite-nav-text" tooltip>How Android draws Views</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/custom-views/create-view" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/custom-views/create-view" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/custom-views/create-view"><span class="devsite-nav-text" tooltip>Create a custom view class</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/custom-views/custom-drawing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/custom-views/custom-drawing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/custom-views/custom-drawing"><span class="devsite-nav-text" tooltip>Implement a custom drawing</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/custom-views/making-interactive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/custom-views/making-interactive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/custom-views/making-interactive"><span class="devsite-nav-text" tooltip>Make a custom view interactive</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/custom-views/optimizing-view" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/custom-views/optimizing-view" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/custom-views/optimizing-view"><span class="devsite-nav-text" tooltip>Optimize a custom view</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Work with window insets and cutouts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/insets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/insets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/insets"><span class="devsite-nav-text" tooltip>Lay out your app within windows insets</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/edge-to-edge" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/edge-to-edge" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/edge-to-edge"><span class="devsite-nav-text" tooltip>Display content edge-to-edge</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/insets/rounded-corners" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/insets/rounded-corners" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/insets/rounded-corners"><span class="devsite-nav-text" tooltip>Apply rounded corners</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/immersive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/immersive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/immersive"><span class="devsite-nav-text" tooltip>Hide system bars for immersive mode</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/display-cutout" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/display-cutout" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/display-cutout"><span class="devsite-nav-text" tooltip>Support display cutouts</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/sw-keyboard" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/sw-keyboard" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/sw-keyboard"><span class="devsite-nav-text" tooltip>Control and animate the software keyboard</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add web-based content to your app</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps"><span class="devsite-nav-text" tooltip>About web-based content</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/webview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/webview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/webview"><span class="devsite-nav-text" tooltip>Develop web apps in WebView</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/managing-webview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/managing-webview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/managing-webview"><span class="devsite-nav-text" tooltip>Manage WebView objects</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/load-local-content" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/load-local-content" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/load-local-content"><span class="devsite-nav-text" tooltip>Load local content</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/dark-theme" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/dark-theme" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/dark-theme"><span class="devsite-nav-text" tooltip>Darken web content</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/targeting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/targeting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/targeting"><span class="devsite-nav-text" tooltip>Support different screens in web apps</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/debugging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/debugging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/debugging"><span class="devsite-nav-text" tooltip>Debug web apps</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/best-practices"><span class="devsite-nav-text" tooltip>Implement best practices</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/webview-privacy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/webview-privacy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/webview-privacy"><span class="devsite-nav-text" tooltip>User privacy in WebView crash reporting</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/webview-testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/webview-testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/webview-testing"><span class="devsite-nav-text" tooltip>Beta program</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/layout/webapps/jsengine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/layout/webapps/jsengine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/layout/webapps/jsengine"><span class="devsite-nav-text" tooltip>Executing JavaScript and WebAssembly</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Apply themes</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/theming/themes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/theming/themes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/theming/themes"><span class="devsite-nav-text" tooltip>About themes</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/theming/dynamic-colors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/theming/dynamic-colors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/theming/dynamic-colors"><span class="devsite-nav-text" tooltip>Use the device colors (Dynamic Color)</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/palette-colors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/palette-colors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/palette-colors"><span class="devsite-nav-text" tooltip>Select colors with the palette library</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/theming/look-and-feel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/theming/look-and-feel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/theming/look-and-feel"><span class="devsite-nav-text" tooltip>Use Material Design as a guideline</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/theming/darktheme" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/theming/darktheme" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/theming/darktheme"><span class="devsite-nav-text" tooltip>Implement dark theme</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/theming/shadows-clipping" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/theming/shadows-clipping" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/theming/shadows-clipping"><span class="devsite-nav-text" tooltip>Create shadows and clip views</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add components</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add core components</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/floating-action-button" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/floating-action-button" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/floating-action-button"><span class="devsite-nav-text" tooltip>Floating action buttons (FABs)</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/button" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/button" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/button"><span class="devsite-nav-text" tooltip>Buttons</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/checkbox" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/checkbox" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/checkbox"><span class="devsite-nav-text" tooltip>Check boxes</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/radiobutton" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/radiobutton" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/radiobutton"><span class="devsite-nav-text" tooltip>Radio buttons</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/togglebutton" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/togglebutton" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/togglebutton"><span class="devsite-nav-text" tooltip>Toggle buttons</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/pickers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/pickers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/pickers"><span class="devsite-nav-text" tooltip>Pickers</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/tooltips" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/tooltips" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/tooltips"><span class="devsite-nav-text" tooltip>Tooltips</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/dialogs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/dialogs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/dialogs"><span class="devsite-nav-text" tooltip>Dialogs</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/menus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/menus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/menus"><span class="devsite-nav-text" tooltip>Menus</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add the app bar component</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/appbar" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/appbar" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/appbar"><span class="devsite-nav-text" tooltip>About app bars</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/appbar/setting-up" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/appbar/setting-up" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/appbar/setting-up"><span class="devsite-nav-text" tooltip>Set up the app bar</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/appbar/actions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/appbar/actions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/appbar/actions"><span class="devsite-nav-text" tooltip>Add and handle actions</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/appbar/up-action" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/appbar/up-action" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/appbar/up-action"><span class="devsite-nav-text" tooltip>Add an up action</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/appbar/action-views" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/appbar/action-views" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/appbar/action-views"><span class="devsite-nav-text" tooltip>Use action views and action providers</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add the settings component</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/settings"><span class="devsite-nav-text" tooltip>About settings</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/settings/organize-your-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/settings/organize-your-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/settings/organize-your-settings"><span class="devsite-nav-text" tooltip>Organize your settings</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/settings/customize-your-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/settings/customize-your-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/settings/customize-your-settings"><span class="devsite-nav-text" tooltip>Customize your settings</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/settings/use-saved-values" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/settings/use-saved-values" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/settings/use-saved-values"><span class="devsite-nav-text" tooltip>Use saved values</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/settings/programmatic-hierarchy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/settings/programmatic-hierarchy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/settings/programmatic-hierarchy"><span class="devsite-nav-text" tooltip>Create a hierarchy in code</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/settings/handle-other-form-factors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/settings/handle-other-form-factors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/settings/handle-other-form-factors"><span class="devsite-nav-text" tooltip>Handle other device sizes</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/components/settings/components-and-attributes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/components/settings/components-and-attributes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/components/settings/components-and-attributes"><span class="devsite-nav-text" tooltip>Implement preference best practices</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Integrate the Android search component</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search"><span class="devsite-nav-text" tooltip>Search options</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search/search-dialog" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search/search-dialog" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search/search-dialog"><span class="devsite-nav-text" tooltip>Create a search UI</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search/adding-recent-query-suggestions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search/adding-recent-query-suggestions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search/adding-recent-query-suggestions"><span class="devsite-nav-text" tooltip>Add search results from recent queries</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search/adding-custom-suggestions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search/adding-custom-suggestions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search/adding-custom-suggestions"><span class="devsite-nav-text" tooltip>Add custom search results</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search/searchable-config" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search/searchable-config" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search/searchable-config"><span class="devsite-nav-text" tooltip>Provide a search configuration</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search/appsearch" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search/appsearch" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search/appsearch"><span class="devsite-nav-text" tooltip>Use AppSearch</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add search functionality</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search/training" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search/training" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search/training"><span class="devsite-nav-text" tooltip>About search functionality</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search/training/setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search/training/setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search/training/setup"><span class="devsite-nav-text" tooltip>Set up the search UI</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search/training/search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search/training/search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search/training/search"><span class="devsite-nav-text" tooltip>Storing and searching for data</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/search/training/backward-compat" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/search/training/backward-compat" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/search/training/backward-compat"><span class="devsite-nav-text" tooltip>Remain backward compatible with Search</span></a></li></ul></div></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Work with text and emoji</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/text-and-emoji/autosizing-textview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/text-and-emoji/autosizing-textview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/text-and-emoji/autosizing-textview"><span class="devsite-nav-text" tooltip>Autosize text views</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/text-and-emoji/downloadable-fonts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/text-and-emoji/downloadable-fonts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/text-and-emoji/downloadable-fonts"><span class="devsite-nav-text" tooltip>Download fonts on the fly</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/text-and-emoji/fonts-in-xml" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/text-and-emoji/fonts-in-xml" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/text-and-emoji/fonts-in-xml"><span class="devsite-nav-text" tooltip>Add a font as an XML resource</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add emoji support</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/text-and-emoji/emoji2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/text-and-emoji/emoji2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/text-and-emoji/emoji2"><span class="devsite-nav-text" tooltip>Add support for modern emoji</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/text-and-emoji/emoji-compat" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/text-and-emoji/emoji-compat" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/text-and-emoji/emoji-compat"><span class="devsite-nav-text" tooltip>Keep up to date with emoji</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/text-and-emoji/emoji-picker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/text-and-emoji/emoji-picker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/text-and-emoji/emoji-picker"><span class="devsite-nav-text" tooltip>Use the Emoji Picker</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/text-and-emoji/magnifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/text-and-emoji/magnifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/text-and-emoji/magnifier"><span class="devsite-nav-text" tooltip>Magnify text</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/text-and-emoji/spans" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/text-and-emoji/spans" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/text-and-emoji/spans"><span class="devsite-nav-text" tooltip>Use spans to style text</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Display graphics and videos</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Static images</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/drawables" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/drawables" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/drawables"><span class="devsite-nav-text" tooltip>About static images</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/vector-drawable-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/vector-drawable-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/vector-drawable-resources"><span class="devsite-nav-text" tooltip>Vector images</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics"><span class="devsite-nav-text" tooltip>Bitmaps</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/reduce-image-sizes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/reduce-image-sizes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/reduce-image-sizes"><span class="devsite-nav-text" tooltip>Reduce image sizes</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/hardware-accel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/hardware-accel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/hardware-accel"><span class="devsite-nav-text" tooltip>Fix custom-drawing issues</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/playback-controls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/playback-controls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/playback-controls"><span class="devsite-nav-text" tooltip>Add media playback controls</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/picture-in-picture" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/picture-in-picture" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/picture-in-picture"><span class="devsite-nav-text" tooltip>Add videos using picture-in-picture (PiP)</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Work with advanced images and graphics</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Draw with AGSL shaders</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/agsl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/agsl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/agsl"><span class="devsite-nav-text" tooltip>About AGSL shaders</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/agsl/agsl-vs-glsl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/agsl/agsl-vs-glsl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/agsl/agsl-vs-glsl"><span class="devsite-nav-text" tooltip>About AGSL versus GLSL</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/agsl/using-agsl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/agsl/using-agsl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/agsl/using-agsl"><span class="devsite-nav-text" tooltip>Use AGSL in your app</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/agsl/agsl-quick-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/agsl/agsl-quick-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/agsl/agsl-quick-reference"><span class="devsite-nav-text" tooltip>AGSL quick reference</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use OpenGL ES for graphics</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/opengl/about-opengl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/opengl/about-opengl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/opengl/about-opengl"><span class="devsite-nav-text" tooltip>Display graphics with Open GL ES</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Learn how to use Open GL ES with graphics</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/opengl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/opengl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/opengl"><span class="devsite-nav-text" tooltip>About Open GL</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/opengl/environment" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/opengl/environment" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/opengl/environment"><span class="devsite-nav-text" tooltip>Build an Open GL ES environment</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/opengl/shapes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/opengl/shapes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/opengl/shapes"><span class="devsite-nav-text" tooltip>Define shapes</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/opengl/draw" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/opengl/draw" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/opengl/draw"><span class="devsite-nav-text" tooltip>Draw shapes</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/opengl/projection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/opengl/projection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/opengl/projection"><span class="devsite-nav-text" tooltip>Apply projection and camera views</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/opengl/motion" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/opengl/motion" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/opengl/motion"><span class="devsite-nav-text" tooltip>Add motion</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/opengl/touch" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/opengl/touch" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/opengl/touch"><span class="devsite-nav-text" tooltip>Respond to touch events</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/graphics/multiple-apks/texture" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/graphics/multiple-apks/texture" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/graphics/multiple-apks/texture"><span class="devsite-nav-text" tooltip>Create APKs for different GL textures</span></a></li></ul></div></li></ul></div></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Work with animations and transitions</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations"><span class="devsite-nav-text" tooltip>In this guide</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/overview"><span class="devsite-nav-text" tooltip>About animations in Android</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/prop-animation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/prop-animation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/prop-animation"><span class="devsite-nav-text" tooltip>About property animations</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/drawable-animation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/drawable-animation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/drawable-animation"><span class="devsite-nav-text" tooltip>Animate drawable graphics</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Animate views</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/view-animation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/view-animation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/view-animation"><span class="devsite-nav-text" tooltip>Generate images between keyframes in an animation</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/reveal-or-hide-view" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/reveal-or-hide-view" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/reveal-or-hide-view"><span class="devsite-nav-text" tooltip>Show or hide a view</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/reposition-view" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/reposition-view" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/reposition-view"><span class="devsite-nav-text" tooltip>Move a view using animation</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/fling-animation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/fling-animation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/fling-animation"><span class="devsite-nav-text" tooltip>Move a view using fling animation</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/zoom" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/zoom" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/zoom"><span class="devsite-nav-text" tooltip>Enlarge a view using zoom animation</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/spring-animation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/spring-animation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/spring-animation"><span class="devsite-nav-text" tooltip>Animate movement using spring physics</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/layout" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/layout" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/layout"><span class="devsite-nav-text" tooltip>Auto-animate layout updates</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/transitions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/transitions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/transitions"><span class="devsite-nav-text" tooltip>Animate layout changes using a transition</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/transitions/custom-transitions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/transitions/custom-transitions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/transitions/custom-transitions"><span class="devsite-nav-text" tooltip>Create a custom transition animation</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/transitions/start-activity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/transitions/start-activity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/transitions/start-activity"><span class="devsite-nav-text" tooltip>Start an activity using an animation</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>MotionLayout</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/motionlayout" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/motionlayout" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/motionlayout"><span class="devsite-nav-text" tooltip>Manage motion and widget animation</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/motionlayout/carousel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/motionlayout/carousel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/motionlayout/carousel"><span class="devsite-nav-text" tooltip>Add a carousel</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/motionlayout/examples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/motionlayout/examples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/motionlayout/examples"><span class="devsite-nav-text" tooltip>MotionLayout examples</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Slide between fragments</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/screen-slide-2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/screen-slide-2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/screen-slide-2"><span class="devsite-nav-text" tooltip>Use ViewPager2 to slide between fragments</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/screen-slide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/screen-slide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/screen-slide"><span class="devsite-nav-text" tooltip>Use ViewPager to slide between fragments</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/vp2-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/vp2-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/vp2-migration"><span class="devsite-nav-text" tooltip>Migrate from ViewPager to ViewPager2</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/animations/additional-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/animations/additional-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/animations/additional-resources"><span class="devsite-nav-text" tooltip>Use additional animation resources</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add support for touch and input</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/input" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/input" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/input"><span class="devsite-nav-text" tooltip>In this guide</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/input-events" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/input-events" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/input-events"><span class="devsite-nav-text" tooltip>About input events</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use touch gestures</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/gestures" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/gestures" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/gestures"><span class="devsite-nav-text" tooltip>About gestures</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/gestures/detector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/gestures/detector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/gestures/detector"><span class="devsite-nav-text" tooltip>Detect common gestures</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/gestures/movement" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/gestures/movement" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/gestures/movement"><span class="devsite-nav-text" tooltip>Track touch and pointer movements</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/gestures/scroll" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/gestures/scroll" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/gestures/scroll"><span class="devsite-nav-text" tooltip>Handle scroll gestures</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/gestures/gesturenav" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/gestures/gesturenav" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/gestures/gesturenav"><span class="devsite-nav-text" tooltip>Add support for navigation gestures</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/gestures/multi" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/gestures/multi" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/gestures/multi"><span class="devsite-nav-text" tooltip>Detect multi-touch gestures</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/gestures/scale" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/gestures/scale" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/gestures/scale"><span class="devsite-nav-text" tooltip>Add support for drag and scale</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/gestures/viewgroup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/gestures/viewgroup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/gestures/viewgroup"><span class="devsite-nav-text" tooltip>Manage touch events in a ViewGroup</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add support for swipe-to-refresh</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/swipe" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/swipe" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/swipe"><span class="devsite-nav-text" tooltip>About swipe-to-refresh</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/swipe/add-swipe-interface" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/swipe/add-swipe-interface" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/swipe/add-swipe-interface"><span class="devsite-nav-text" tooltip>Add swipe-to-refresh to your app</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/swipe/respond-refresh-request" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/swipe/respond-refresh-request" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/swipe/respond-refresh-request"><span class="devsite-nav-text" tooltip>Respond to a refresh request</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Handle keyboard input</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/keyboard-input" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/keyboard-input"><span class="devsite-nav-text" tooltip>About keyboards</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/style" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/keyboard-input/style" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/keyboard-input/style"><span class="devsite-nav-text" tooltip>Specify the input method type</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/visibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/keyboard-input/visibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/keyboard-input/visibility"><span class="devsite-nav-text" tooltip>Handle input method visibility</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/navigation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/keyboard-input/navigation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/keyboard-input/navigation"><span class="devsite-nav-text" tooltip>Support keyboard navigation</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/commands" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/keyboard-input/commands" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/keyboard-input/commands"><span class="devsite-nav-text" tooltip>Handle keyboard actions</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/stylus" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/stylus" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/stylus"><span class="devsite-nav-text" tooltip>Handle stylus input</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/copy-paste" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/copy-paste" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/copy-paste"><span class="devsite-nav-text" tooltip>Use copy and paste across apps</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/drag-drop" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/drag-drop" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/drag-drop"><span class="devsite-nav-text" tooltip>Enable drag and drop</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/receive-rich-content" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/receive-rich-content" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/receive-rich-content"><span class="devsite-nav-text" tooltip>Accept rich content from any source</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Implement tactile feedback (haptics)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/haptics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/haptics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/haptics"><span class="devsite-nav-text" tooltip>About haptics</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/haptics/haptics-principles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/haptics/haptics-principles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/haptics/haptics-principles"><span class="devsite-nav-text" tooltip>Haptic design principles</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/haptics/haptic-feedback" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/haptics/haptic-feedback" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/haptics/haptic-feedback"><span class="devsite-nav-text" tooltip>Add haptic feedback to events</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/haptics/actuators" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/haptics/actuators" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/haptics/actuators"><span class="devsite-nav-text" tooltip>Vibration actuators primer</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/haptics/custom-haptic-effects" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/haptics/custom-haptic-effects" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/haptics/custom-haptic-effects"><span class="devsite-nav-text" tooltip>Create custom haptic effects</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/haptics/haptics-apis" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/haptics/haptics-apis" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/haptics/haptics-apis"><span class="devsite-nav-text" tooltip>Haptics API reference</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add support for game controllers</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/game-controllers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/game-controllers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/game-controllers"><span class="devsite-nav-text" tooltip>About game controllers</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/controller-input" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/game-controllers/controller-input" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/game-controllers/controller-input"><span class="devsite-nav-text" tooltip>Handle controller actions</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/compatibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/game-controllers/compatibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/game-controllers/compatibility"><span class="devsite-nav-text" tooltip>Add support across Android versions</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/multiple-controllers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/game-controllers/multiple-controllers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/game-controllers/multiple-controllers"><span class="devsite-nav-text" tooltip>Add support for multiple controllers</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Work with input method editors (IMEs)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/creating-input-method" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/creating-input-method" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/creating-input-method"><span class="devsite-nav-text" tooltip>Create an input method</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/image-keyboard" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/image-keyboard" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/image-keyboard"><span class="devsite-nav-text" tooltip>Add image keyboard support</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/touch-and-input/spell-checker-framework" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/touch-and-input/spell-checker-framework" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/spell-checker-framework"><span class="devsite-nav-text" tooltip>Implement a spelling checker</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add notifications to your app</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications"><span class="devsite-nav-text" tooltip>About notifications</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/notification-permission" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/notification-permission" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/notification-permission"><span class="devsite-nav-text" tooltip>Request permission</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/channels" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/channels" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/channels"><span class="devsite-nav-text" tooltip>Create and manage notification channels</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create a notification</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/build-notification" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/build-notification" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/build-notification"><span class="devsite-nav-text" tooltip>Basic notifications</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/expanded" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/expanded" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/expanded"><span class="devsite-nav-text" tooltip>Expandable notifications</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/call-style" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/call-style" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/call-style"><span class="devsite-nav-text" tooltip>Call style notifications</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/time-sensitive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/time-sensitive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/time-sensitive"><span class="devsite-nav-text" tooltip>Time-sensitive notifications</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/custom-notification" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/custom-notification" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/custom-notification"><span class="devsite-nav-text" tooltip>Custom notifications</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/group" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/group" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/group"><span class="devsite-nav-text" tooltip>Create a notification group</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/navigation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/navigation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/navigation"><span class="devsite-nav-text" tooltip>Start an activity from a notification</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add conversations</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/conversations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/conversations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/conversations"><span class="devsite-nav-text" tooltip>About conversations</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/bubbles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/bubbles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/bubbles"><span class="devsite-nav-text" tooltip>Use bubbles for conversations</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/badges" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/badges" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/badges"><span class="devsite-nav-text" tooltip>Modify a badge</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Show pop-up messages</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/snackbar" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/snackbar" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/snackbar"><span class="devsite-nav-text" tooltip>About pop-ups</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/snackbar/showing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/snackbar/showing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/snackbar/showing"><span class="devsite-nav-text" tooltip>Build and display a pop-up message</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/notifications/snackbar/action" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/notifications/snackbar/action" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/notifications/snackbar/action"><span class="devsite-nav-text" tooltip>Add an action to a message</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Customize app launch</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/launch/icon_design_adaptive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/launch/icon_design_adaptive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/launch/icon_design_adaptive"><span class="devsite-nav-text" tooltip>Use adaptive launcher icons</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add a splash screen</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/launch/splash-screen" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/launch/splash-screen" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/launch/splash-screen"><span class="devsite-nav-text" tooltip>Add a splash screen to a new app</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/launch/splash-screen/migrate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/launch/splash-screen/migrate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/launch/splash-screen/migrate"><span class="devsite-nav-text" tooltip>Migrate an existing splash screen to the new API</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add app shortcuts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/launch/shortcuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/launch/shortcuts"><span class="devsite-nav-text" tooltip>About shortcuts</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/creating-shortcuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/launch/shortcuts/creating-shortcuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/launch/shortcuts/creating-shortcuts"><span class="devsite-nav-text" tooltip>Create shortcuts</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/adding-capabilities" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/launch/shortcuts/adding-capabilities" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/launch/shortcuts/adding-capabilities"><span class="devsite-nav-text" tooltip>Add capabilities to shortcuts</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/managing-shortcuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/launch/shortcuts/managing-shortcuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/launch/shortcuts/managing-shortcuts"><span class="devsite-nav-text" tooltip>Manage shortcuts</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/launch/shortcuts/best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/launch/shortcuts/best-practices"><span class="devsite-nav-text" tooltip>Implement best practices for shortcuts</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add app content to the home screen or launcher</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/quicksettings-tiles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/quicksettings-tiles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/quicksettings-tiles"><span class="devsite-nav-text" tooltip>Create custom Quick Settings tiles</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create app widgets</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/appwidgets/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/appwidgets/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/appwidgets/overview"><span class="devsite-nav-text" tooltip>About app widgets</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/appwidgets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/appwidgets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/appwidgets"><span class="devsite-nav-text" tooltip>Create a simple widget</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/appwidgets/enhance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/appwidgets/enhance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/appwidgets/enhance"><span class="devsite-nav-text" tooltip>Enhance your widget</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/appwidgets/advanced" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/appwidgets/advanced" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/appwidgets/advanced"><span class="devsite-nav-text" tooltip>Create an advanced widget</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/appwidgets/collections" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/appwidgets/collections" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/appwidgets/collections"><span class="devsite-nav-text" tooltip>Use widget collections</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/appwidgets/layouts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/appwidgets/layouts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/appwidgets/layouts"><span class="devsite-nav-text" tooltip>Size your widget</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/appwidgets/configuration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/appwidgets/configuration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/appwidgets/configuration"><span class="devsite-nav-text" tooltip>Enable widget configuration</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/appwidgets/host" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/appwidgets/host" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/appwidgets/host"><span class="devsite-nav-text" tooltip>Build a widget host</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Integrate content with home channels</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/home-channels" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/home-channels" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/home-channels"><span class="devsite-nav-text" tooltip>About home channels</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/home-channels/read" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/home-channels/read" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/home-channels/read"><span class="devsite-nav-text" tooltip>Integrate books into home channels</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/home-channels/video" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/home-channels/video" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/home-channels/video"><span class="devsite-nav-text" tooltip>Integrate video into home channels</span></a></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/home-channels/audio" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/home-channels/audio" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/home-channels/audio"><span class="devsite-nav-text" tooltip>Integrate audio into home channels</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/web/20231023232402/https://developer.android.com/develop/ui/views/device-control" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /develop/ui/views/device-control" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/device-control"><span class="devsite-nav-text" tooltip>Control external devices</span></a></li></ul></div></li> </ul> <ul class="devsite-nav-list" menu="Essentials" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Modern Android </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/modern-android-development" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Explore Modern Android" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Explore Modern Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/jetpack/compose/adopt/for-large-teams" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Adopt Compose for teams" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Adopt Compose for teams </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Get started </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/codelabs/basic-android-kotlin-compose-first-app" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Hello world" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Hello world </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/courses" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Training courses" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Training courses </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/get-started/codelabs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tutorials" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Tutorials </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/kotlin" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Kotlin for Android" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Kotlin for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://play.google.com/console/about/guides/monetize/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Monetization with Play ↗️" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Monetization with Play ↗️ </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Extend by device </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/large-screens" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Large screens (e.g. Tablets)" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Large screens (e.g. Tablets) </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/wear" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Wear OS </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/cars" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android for Cars" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android for Cars </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android TV" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android TV </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/chrome-os" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ChromeOS" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> ChromeOS </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Build by category </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/games" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Games" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Games </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/media" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Media apps" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Media apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/health-and-fitness" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Health & Fitness" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Health & Fitness </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developers.google.com/android/work" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Enterprise apps ↗️" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Enterprise apps ↗️ </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Get the latest </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/about/versions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Platform releases" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Platform releases </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/studio/preview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Studio preview" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android Studio preview </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/jetpack/androidx/versions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Jetpack & Compose libraries" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Jetpack & Compose libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/training/wearables/versions/4" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS preview" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Wear OS preview </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/design-for-safety/privacy-sandbox" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Privacy Sandbox" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Privacy Sandbox </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Design & Plan" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Kits & more </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/design/ui/mobile#explore-our-kits" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to Android & Material kits" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Go to Android & Material kits </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/design/ui/wear#explore-our-kits" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to Wear OS kits" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Go to Wear OS kits </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> UI Design </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/design/ui" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Design for Android" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Design for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/design/ui/mobile" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Mobile" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Mobile </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/design/ui/large-screens" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Large screens (e.g. Tablets)" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Large screens (e.g. Tablets) </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/design/ui/wear" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Wear OS </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/design/ui/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android TV" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android TV </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Architecture </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/topic/architecture/intro" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Introduction" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Introduction </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/topic/libraries/view-binding" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Libraries" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/guide/navigation/navigation-principles" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Navigation" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Navigation </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/topic/modularization" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Modularization" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Modularization </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/training/testing/fundamentals" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Testing" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Testing </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Quality </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/quality" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/quality/core-value" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Core value" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Core value </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/quality/user-experience" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: User experience" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> User experience </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/quality/technical" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Technical quality" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Technical quality </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/quality/privacy-and-security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Privacy & security" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Privacy & security </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Build for Billions </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/build-for-billions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/docs/quality-guidelines/build-for-billions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: About new markets" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> About new markets </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/guide/topics/androidgo" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android (Go edition)" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android (Go edition) </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Develop" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Android Studio </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/studio" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get Android Studio" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Get Android Studio </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/studio/write" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Start coding" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Start coding </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Core areas </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/develop/ui" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: User interfaces" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> User interfaces </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/guide/topics/permissions/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Permissions" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Permissions </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/guide/background" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Background work" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Background work </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/guide/topics/data" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data and files" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Data and files </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/training/sign-in" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: User identity" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> User identity </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/training/camera/choose-camera-library" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Camera" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Camera </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/develop#core-areas" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: All core areas ⤵️" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> All core areas ⤵️ </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Tools and workflow </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/studio/write" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Write and debug code" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Write and debug code </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build projects" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Build projects </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/training/testing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test your app" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Test your app </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/topic/performance/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Performance </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Command-line tools" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Command-line tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/reference/tools/gradle-api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gradle plugin API" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Gradle plugin API </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Devices </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/guide/topics/large-screens/get-started-with-large-screens" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Large screens (e.g. Tablets)" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Large screens (e.g. Tablets) </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/training/wearables" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Wear OS </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/training/cars" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android for Cars" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android for Cars </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/training/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android TV" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android TV </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/chrome-os/intro" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ChromeOS" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> ChromeOS </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Libraries </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/reference/packages" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android platform" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android platform </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/jetpack/androidx/explorer" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Jetpack libraries" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Jetpack libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231023232402/https://developer.android.com/jetpack/androidx/releases/compose" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compose libraries" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Compose libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://developers.google.com/android/reference/packages" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play services ↗️" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Play services ↗️ </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231023232402/https://play.google.com/sdks" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play SDK index ↗️" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Play SDK index ↗️ </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-sidebar> <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="http://web.archive.org/web/20231023232402/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="http://web.archive.org/web/20231023232402/https://developer.android.com/develop" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail=""> Develop </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="http://web.archive.org/web/20231023232402/https://developer.android.com/develop/ui" 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=""> UI Guide </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <h1 class="devsite-page-title">Best practices for shortcuts</h1><devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded> </devsite-toc> <devsite-recommendations-dropdown class="nocontent"></devsite-recommendations-dropdown> <div class="devsite-article-body clearfix "> <p>When designing and creating your app's shortcuts, follow these guidelines:</p> <dl> <dt> <strong>Follow the design guidelines</strong> </dt> <dd> <p>To make your app's shortcuts visually consistent with the shortcuts used for system apps, follow the <a href="/web/20231023232402/https://developer.android.com/static/shareables/design/app-shortcuts-design-guidelines.pdf">App Shortcuts Icon Design Guidelines</a>.</p> </dd> <dt> <strong>Publish only four distinct shortcuts</strong> </dt> <dd> <p>Although the API supports a combination of up to 15 static and dynamic shortcuts for your app, we recommend that you publish only four distinct shortcuts, to improve their visual appearance in the launcher.</p> <p>In addition to displaying shortcuts on the launcher, use the <a href="/web/20231023232402/https://developer.android.com/develop/ui/views/launch/shortcuts/creating-shortcuts#gsi-library">Google Shortcuts Integration Library</a> to display shortcuts on Google surfaces such as Google Assistant. This library supports pushing an unlimited number of dynamic shortcuts. If you are using this library to push a large number of shortcuts, we recommend setting the <code translate="no" dir="ltr">rank</code> of the shortcuts that must appear in supported launchers by calling the <code translate="no" dir="ltr"><a href="/web/20231023232402/https://developer.android.com/reference/androidx/core/content/pm/ShortcutInfoCompat.Builder#setRank(int)"></a>setRank()</code> method.</p> </dd> <dt> <strong>Limit shortcut description length</strong> </dt> <dd> <p>The space in the menu that shows your app's shortcuts in the launcher is limited. When possible, limit the length of the "short description" of a shortcut to 10 characters and limit the length of the "long description" to 25 characters.</p> <p>For more information about labels for static shortcuts, read <a href="/web/20231023232402/https://developer.android.com/guide/topics/ui/shortcuts/creating-shortcuts#attribute-values">Customize attribute values</a>. For dynamic and pinned shortcuts, read the reference documentation on <code translate="no" dir="ltr"><a href="/web/20231023232402/https://developer.android.com/reference/androidx/core/content/pm/ShortcutInfoCompat.Builder#setLongLabel(java.lang.CharSequence)">setLongLabel()</a></code> and <code translate="no" dir="ltr"><a href="/web/20231023232402/https://developer.android.com/reference/androidx/core/content/pm/ShortcutInfoCompat.Builder#setShortLabel(java.lang.CharSequence)">setShortLabel()</a></code>.</p> </dd> <dt> <strong>Maintain shortcut and action usage history</strong> </dt> <dd> <p>For each shortcut you create, consider the different ways a user can accomplish the same task directly within your app. Call <code translate="no" dir="ltr"><a href="/web/20231023232402/https://developer.android.com/reference/androidx/core/content/pm/ShortcutManagerCompat#reportShortcutUsed(android.content.Context,%20java.lang.String)">reportShortcutUsed()</a></code> in each of these situations so that the launcher maintains an accurate history of how frequently a user performs the actions representing your shortcuts.</p> </dd> <dt> <strong>Update shortcuts only when their meaning is retained</strong> </dt> <dd> <p>When changing dynamic and pinned shortcuts, only call <code translate="no" dir="ltr"><a href="/web/20231023232402/https://developer.android.com/reference/androidx/core/content/pm/ShortcutManagerCompat#updateShortcuts(android.content.Context,%20java.util.List%3Candroidx.core.content.pm.ShortcutInfoCompat%3E)">updateShortcuts()</a></code> when changing the information of a shortcut that retains its meaning. Otherwise, use one of the following methods, depending on the type of shortcut you're recreating:</p> <ul> <li>Dynamic shortcuts: <code translate="no" dir="ltr"><a href="/web/20231023232402/https://developer.android.com/reference/androidx/core/content/pm/ShortcutManagerCompat#pushDynamicShortcut(android.content.Context,%20androidx.core.content.pm.ShortcutInfoCompat)">pushDynamicShortcut()</a></code>. </li> <li>Pinned shortcuts: <code translate="no" dir="ltr"><a href="/web/20231023232402/https://developer.android.com/reference/androidx/core/content/pm/ShortcutManagerCompat#requestPinShortcut(android.content.Context,%20androidx.core.content.pm.ShortcutInfoCompat,%20android.content.IntentSender)">requestPinShortcut()</a></code>.</li> </ul> <p>For example, if you create a shortcut for navigating to a supermarket, it is appropriate to update the shortcut if the name of the supermarket changes but its location stays the same. If the user begins shopping at a different supermarket location, however, it's better to create a new shortcut.</p> </dd> <dt> <strong>Check dynamic shortcuts whenever you launch your app</strong> </dt> <dd> <p>Dynamic shortcuts aren't preserved when the user restores their data onto a new device. For this reason, we recommend that you check the number of objects returned by <code translate="no" dir="ltr"><a href="/web/20231023232402/https://developer.android.com/reference/androidx/core/content/pm/ShortcutManagerCompat#getDynamicShortcuts(android.content.Context)">getDynamicShortcuts()</a></code> each time you launch your app and re-publish dynamic shortcuts as needed, as shown in the code snippet in <a href="/web/20231023232402/https://developer.android.com/guide/topics/ui/shortcuts/managing-shortcuts#backup-restore">Backup and restore</a>.</p> </dd> </dl> <devsite-hats-survey class="nocontent" hats-id="onAFgYxTD0kxBYCLVTd0Z41p75CM" listnr-id="5207477"></devsite-hats-survey> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> </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/20231023232402/https://developer.android.com/license">Content License</a>. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.</p> <p>Last updated 2023-03-16 UTC.</p> </devsite-content-footer> <devsite-notification> </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-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="devsite-thumb-rating-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> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="//web.archive.org/web/20231023232402/https://x.com/AndroidDev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer X Promo"> <img class="devsite-footer-promo-icon" src="/web/20231023232402im_/https://developer.android.com/_static/android/images/logo-x.svg" loading="lazy" alt="X"> X </a> <div class="devsite-footer-promo-description">Follow @AndroidDev on X</div> </li> <li class="devsite-footer-promo"> <a href="//web.archive.org/web/20231023232402/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/20231023232402im_/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> <li class="devsite-footer-promo"> <a href="//web.archive.org/web/20231023232402/https://www.linkedin.com/showcase/androiddev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer LinkedIn Promo"> <img class="devsite-footer-promo-icon" src="/web/20231023232402im_/https://developer.android.com/_static/android/images/logo-linkedin.svg" loading="lazy" alt="LinkedIn"> LinkedIn </a> <div class="devsite-footer-promo-description">Connect with the Android Developers community on LinkedIn</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">More Android</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231023232402/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/20231023232402/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)"> Android for Enterprise </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231023232402/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/20231023232402/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> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/news" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> News </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231023232402/https://android-developers.googleblog.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/podcasts" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)"> Podcasts </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Discover</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/games" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Gaming </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/ml" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Machine Learning </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/privacy" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Privacy </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/training/connectivity/5g" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> 5G </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Android Devices</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/large-screens" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Large screens </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/wear" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Wear OS </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/chrome-os" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> ChromeOS devices </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/cars" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Android for cars </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/things" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Android Things </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/tv" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> Android TV </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Releases</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/about/versions/13" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Android 13 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/about/versions/12" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Android 12 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/about/versions/11" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Android 11 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/about/versions/10" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Android 10 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/about/versions/pie" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Pie </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/about/versions/oreo" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> Oreo </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/about/versions/nougat" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)"> Nougat </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Documentation and Downloads</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/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 1)"> Android Studio guide </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/guide" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Developers guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/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/20231023232402/https://developer.android.com/studio" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Download Studio </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231023232402/https://developer.android.com/ndk" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Android NDK </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231023232402/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/20231023232402/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/20231023232402/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="http://web.archive.org/web/20231023232402/https://g.co/userresearch/androiddeveloperfooter" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Join research studies </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="http://web.archive.org/web/20231023232402/https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <source srcset="http://web.archive.org/web/20231023232402im_/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/images/lockup-google-for-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="http://web.archive.org/web/20231023232402im_/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20231023232402/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/20231023232402/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/20231023232402/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/20231023232402/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/20231023232402/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/20231023232402/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/20231023232402/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/20231023232402/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/20231023232402/https://developer.android.com/updates" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link"> Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en">English</a> </li> <li role="presentation"> <a role="menuitem" lang="id">Bahasa Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419">Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="it">Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="tr">Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ar">العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw">中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja">日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko">한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar> </devsite-snackbar> <devsite-tooltip></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics analytics-iframe enable-ga4> <script type="application/json" analytics>[{"dimensions": {"dimension11": false, "dimension1": "Signed out", "dimension3": false, "dimension4": "Android Developers", "dimension6": "en", "dimension5": "en"}, "gaid": "UA-5831155-1", "metrics": {"ratings_value": "metric1", "ratings_count": "metric2"}}]</script> <script type="application/json" tag-management gtm>{"ga4": [], "ga4p": [], "gtm": ["GTM-KMSWPCJ"], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Android Developers", "signedIn": "False", "tenant": "android", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}, "tags": ["GTM-KMSWPCJ"]}</script> </devsite-analytics> <devsite-badger></devsite-badger> <android-fully-clickable target=" .android-case-study .devsite-landing-row-item, .android-grouped-resources .devsite-landing-row-item, .android-illustrated-resources-index .devsite-landing-row-item, .android-illustrated-resources-primary .devsite-landing-row-item, .android-illustrated-resources-secondary .devsite-landing-row-item, .android-illustrated-resources-secondary-small .devsite-landing-row-item, .android-illustrated-resources-tertiary .devsite-landing-row-item, .android-illustrated-resources-tertiary-small .devsite-landing-row-item, .android-promo .devsite-landing-row-item, .android-quick-link, .android-samples .devsite-card-wrapper, .fully-clickable" watch=".android-samples, devsite-content"></android-fully-clickable> <script nonce="EmDGbKJD+l6liAYj3VmHM4VcrK2SXc"> (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', 'http://web.archive.org/web/20231023232402/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/js/app_loader.js', '[3,"en",null,"/js/devsite_app_module.js","http://web.archive.org/web/20231023232402/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871","http://web.archive.org/web/20231023232402/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android","http://web.archive.org/web/20231023232402/https://android-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/android/manifest.json","http://web.archive.org/web/20231023232402/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/images/video-placeholder.svg","http://web.archive.org/web/20231023232402/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/images/rebrand/favicon.svg","http://web.archive.org/web/20231023232402/https://www.gstatic.com/devrel-devsite/prod/v89c3b644dadab0c1b29fcdfaa83db3f3db74c1887a83ba5a78318ee59aec3871/android/images/rebrand/lockup.svg","http://web.archive.org/web/20231023232402/https://fonts.googleapis.com/css?family=Google+Sans:400,500,600,700|Google+Sans+Text:400,400italic,500,500italic,600,600italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,40,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,111,112,113,115,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,144,147,148,149,150,151,152,154,155,156,157,158,159,161,163,164,165,168,169,170,172,173,179,180,182,183,186,190,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developer.android.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Cloud__enable_cloudx_experiment_ids","Cloud__enable_cloud_dlp_service","Badges__enable_delete_badges","MiscFeatureFlags__emergency_css","SignIn__enable_auto_signin_oauth","ContentExcellence__enable_verified_date","Profiles__enable_searchable_interests","Significatio__enable_by_tenant","MiscFeatureFlags__content_publisher_push_queue","MiscFeatureFlags__developers_footer_image","ContentExcellence__enable_googler_button","Badges__enable_drag_and_drop_badges","Rebranding__enable_rebranding","Localization__enable_locale_redirects","Search__enable_suggestions_from_borg","MiscFeatureFlags__enable_tls_version_for_gaia_calls","Concierge__enable_pushui","Cloud__enable_cloud_facet_chat","Profiles__enable_profile_communities","Search__enable_acl_suggestions","Search__enable_dynamic_content_confidential_banner","Profiles__enable_developer_profiles_interests","Analytics__enable_ga4_analytics","Search__enable_faceted_search","Experiments__enable_experiments","Profiles__enable_developer_profiles_dashboard_recommendations","Cloud__enable_free_trial_server_call","Cloud__enable_cloudx_ping","Search__enable_devsite_serp","Cloud__enable_cloud_shell","Search__enable_page_map","Profiles__enable_profile_notifications_ui","OpenInReplit__enable_replit","Profiles__enable_developer_profiles_callout","Profiles__enable_suggested_interests","MiscFeatureFlags__enable_firebase_utm","MiscFeatureFlags__devpanel_url","Profiles__enable_awarding_url","Profiles__enable_page_saving","Badges__enable_hide_badges","AuthorPageInsights__enable_author_page_insights","Profiles__enable_profile_collections","Significatio__enable_experiment_id_caching","BookNav__enable_book_nav_filtering","MiscFeatureFlags__developers_footer_dark_image","Experiments__reqs_query_experiments","Significatio__enable_footprints","Profiles__enable_public_developer_profiles","Cloud__enable_cloud_shell_fte_user_flow","BookNav__enable_collapsible_book_nav","Profiles__require_profile_eligibility_for_signin"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","http://web.archive.org/web/20231023232402/https://developerscontentserving-pa.googleapis.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","http://web.archive.org/web/20231023232402/https://developerscontentsearch-pa.googleapis.com",2]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 23:24:02 Oct 23, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 10:31:15 Nov 30, 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: 0.802 exclusion.robots: 0.061 exclusion.robots.policy: 0.025 esindex: 0.015 cdx.remote: 6.618 LoadShardBlock: 105.513 (3) PetaboxLoader3.datanode: 136.056 (4) load_resource: 125.338 PetaboxLoader3.resolve: 32.756 -->