CINXE.COM
User privacy in WebView reporting | 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/layout/webapps/webview-privacy","20231005031152","http://web.archive.org/","web","/_static/", "1696475512"); </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/20231005031152/https://developer.android.com/_pwa/android/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20231005031152/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231005031152/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231005031152/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231005031152/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231005031152/https://www.google-analytics.com/" crossorigin><link rel="stylesheet" href="//web.archive.org/web/20231005031152cs_/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/20231005031152cs_/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/20231005031152cs_/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/android/css/app.css"> <link rel="shortcut icon" href="http://web.archive.org/web/20231005031152im_/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/android/images/favicon.png"> <link rel="apple-touch-icon" href="http://web.archive.org/web/20231005031152im_/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/android/images/touchicon-180.png"><link rel="canonical" href="http://web.archive.org/web/20231005031152/https://developer.android.com/develop/ui/views/layout/webapps/webview-privacy"><link rel="search" type="application/opensearchdescription+xml" title="Android Developers" href="http://web.archive.org/web/20231005031152/https://developer.android.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="http://web.archive.org/web/20231005031152/https://developer.android.com/develop/ui/views/layout/webapps/webview-privacy"/><link rel="alternate" hreflang="x-default" href="http://web.archive.org/web/20231005031152/https://developer.android.com/develop/ui/views/layout/webapps/webview-privacy"/><title>User privacy in WebView reporting | Android Developers</title> <meta property="og:title" content="User privacy in WebView reporting | Android Developers"><meta property="og:url" content="http://web.archive.org/web/20231005031152/https://developer.android.com/develop/ui/views/layout/webapps/webview-privacy"><meta property="og:image" content="http://web.archive.org/web/20231005031152im_/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/20231005031152/https://schema.org", "@type": "Article", "headline": "User privacy in WebView reporting" } </script> <link rel="stylesheet" href="/web/20231005031152cs_/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/20231005031152/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/20231005031152im_/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab dropdown dropdown-full> <a href="http://web.archive.org/web/20231005031152/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/20231005031152/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/20231005031152/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-get-started"> <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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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-devices"> <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/20231005031152/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"> Tablets and foldables </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/https://developer.android.com/chrome-os" track-type="nav" track-metadata-eventdetail="https://developer.android.com/chrome-os" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip> <div class="devsite-nav-item-title"> ChromeOS </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231005031152/https://developer.android.com/multi-device-development" track-type="nav" track-metadata-eventdetail="https://developer.android.com/multi-device-development" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip> <div class="devsite-nav-item-title"> Cross-device SDK </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-platform"> <li class="devsite-nav-title" role="heading" tooltip>Build by category</li> <li class="devsite-nav-description">Learn to build for your use case by following Google's prescriptive and opinionated guidance. </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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-ui-design"> <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/20231005031152/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/20231005031152/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/20231005031152/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 </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231005031152/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/20231005031152/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"> 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-2"> <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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/https://developer.android.com/training/testing" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/testing" 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-quality"> <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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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-build-for-billions"> <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/20231005031152/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/20231005031152/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/20231005031152/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 active> <a href="http://web.archive.org/web/20231005031152/https://developer.android.com/develop" track-metadata-eventdetail="https://developer.android.com/develop" class="devsite-tabs-content gc-analytics-event " 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> </tab> <tab> <a href="http://web.archive.org/web/20231005031152/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/20231005031152/https://developer.android.com/s/results" method="GET"> <div class="devsite-search-container"> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="searchbox" type="text" value=""> <div class="devsite-search-image material-icons" aria-hidden="true"></div> </div> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <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="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/https://developer.android.com/samples" track-metadata-eventdetail="https://developer.android.com/samples" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples"> Samples </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars> <div class="devsite-book-nav-filter "> <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/web/20231005031152/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/20231005031152im_/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/web/20231005031152/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/20231005031152/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/20231005031152/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"> <li class="devsite-nav-item"> <a href="/web/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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>Develop a responsive layout</span></a></li><li class="devsite-nav-item"><a href="/web/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/https://developer.android.com/develop/ui/views/touch-and-input/overview" 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/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/develop/ui/views/touch-and-input/overview"><span class="devsite-nav-text" tooltip>In this guide</span></a></li><li class="devsite-nav-item"><a href="/web/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/https://developer.android.com/large-screens" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tablets and foldables" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Tablets and foldables </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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"> <a href="/web/20231005031152/https://developer.android.com/multi-device-development" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cross-device SDK" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Cross-device SDK </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Build by category </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Large screens </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231005031152/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/20231005031152/https://developer.android.com/design/ui/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TV" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> 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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/https://developer.android.com/training/testing" 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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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> </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/20231005031152/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/20231005031152/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/20231005031152/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">User privacy in WebView reporting</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 "> <div class="devsite-page-title-meta"></div> <p>For users who <a href="http://web.archive.org/web/20231005031152/https://support.google.com/accounts/answer/6078260">share usage statistics and diagnostics with Google</a>, <code translate="no" dir="ltr">WebView</code> sends usage statistics and crash reports to Google. Usage statistics contain information such as system information, active field trials, feature usage, responsiveness, performance, and memory usage. They don't include any personally identifying details.</p> <h2 id="statistics" data-text="Usage statistics">Usage statistics</h2> <p>Collected usage statistics are used to improve <a href="/web/20231005031152/https://developer.android.com/reference/android/webkit/WebView"><code translate="no" dir="ltr">WebView</code></a> performance, assess the impact of changes to existing features, and guide the development of new features.</p> <p>The stable channel of <code translate="no" dir="ltr">WebView</code> gathers usage statistics from a small percentage of users. Pre-stable channels might sample from a greater percentage of users.</p> <p>Starting with <code translate="no" dir="ltr">WebView</code> 71, these statistics are associated with the app package name. This lets Google proactively monitor and address <code translate="no" dir="ltr">WebView</code> issues that might degrade the performance of specific apps without causing crashes.</p> <p>Before <code translate="no" dir="ltr">WebView</code> 104, for any given app, at most 10% of users upload reports containing the package name. Other users upload blank package names or no upload records at all.</p> <p>Starting with <code translate="no" dir="ltr">WebView</code> 104, app package names are always recorded for apps that are in a list of allowed popular apps. Other apps upload blank package names.</p> <h3 id="usage-statistics" data-text="Opt out usage statistics">Opt out usage statistics</h3> <p>Apps can opt out of usage statistics collection by including the following in the <code translate="no" dir="ltr"><application></code> section of their manifest:</p> <pre class="prettyprint lang-xml" translate="no" dir="ltr"><code translate="no" dir="ltr"><meta-data android:name="android.webkit.WebView.MetricsOptOut" android:value="true" /> </code></pre> <p>This disables usage statistics collection for all users of the app, regardless of whether they have the corresponding setting enabled. It doesn't disable crash reporting.</p> <aside class="note"><strong>Note:</strong><span> Opting out of usage statistics collection decreases Google's ability to preemptively detect and address problems in <code translate="no" dir="ltr">WebView</code> updates.</span></aside> <h3 id="diagnostic" data-text="Opt out of metrics collection">Opt out of metrics collection</h3> <p><code translate="no" dir="ltr">WebView</code> has the ability to upload anonymous diagnostic data to Google when the user gives their consent. Data is collected on a per-app basis for each app that instantiates a <code translate="no" dir="ltr">WebView</code>. You can opt out of this feature by creating the following tag in the manifest's <code translate="no" dir="ltr"><application></code> element:</p> <pre class="prettyprint lang-xml" translate="no" dir="ltr"> <manifest> <application> ... <strong><meta-data android:name="android.webkit.WebView.MetricsOptOut" android:value="true" /></strong> </application> </manifest> </pre> <p>Data is only uploaded from an app if the user consents <strong>and</strong> the app doesn't opt out. For more information about opting out of diagnostic data reporting, see the following section on crash reports.</p> <h2 id="crash-reports" data-text="Crash reports">Crash reports</h2> <p>Crash reports are collected when a <a href="/web/20231005031152/https://developer.android.com/reference/android/webkit/WebView"><code translate="no" dir="ltr">WebView</code></a> object is likely to be the cause of the crash. Crash reports contain information required to determine the state of the <code translate="no" dir="ltr">WebView</code> at the time of the crash. This includes system information, active field trials, and stack memory from the app required to generate the sequence of calls made within the thread.</p> <p>Stack memory is sanitized to remove strings, with the intent of capturing only the information required to generate stack traces. No URLs are collected as part of usage statistics or crash reports.</p> <h2 id="data-privacy" data-text="Pseudonymous identifiers and data privacy">Pseudonymous identifiers and data privacy</h2> <p>Crash reports and usage statistics collected by <code translate="no" dir="ltr">WebView</code> each contain a randomly generated 128-bit token used to pseudonymously de-duplicate reports and maintain accuracy in statistics. Token values aren't shared between apps, and crash reports and usage statistics have independent tokens. All apps' usage statistics tokens are cleared when the user opts out of sharing usage statistics and diagnostics with Google. The crash report token is cleared when the app cache is cleared. Both tokens are cleared when the app is uninstalled or app data is cleared.</p> <h2 id="additional-resources" data-text="Additional resources">Additional resources</h2> <p>To learn more about user privacy, see <a href="/web/20231005031152/https://developer.android.com/privacy">Build apps to be private</a>.</p> <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/20231005031152/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-09-26 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/20231005031152/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/20231005031152im_/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/20231005031152/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/20231005031152im_/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/20231005031152/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/20231005031152im_/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152im_/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/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/20231005031152im_/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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/20231005031152/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="pt_br">Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn">中文 – 简体</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": {"dimension5": "en", "dimension11": false, "dimension1": "Signed out", "dimension4": "Android Developers", "dimension3": false, "dimension6": "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="DxH8E0i1f9Z13ShtADRpbQuvQiTcY0"> (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/20231005031152/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/android/js/app_loader.js', '[3,"en",null,"/js/devsite_app_module.js","http://web.archive.org/web/20231005031152/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93","http://web.archive.org/web/20231005031152/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/android","http://web.archive.org/web/20231005031152/https://android-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/android/manifest.json","http://web.archive.org/web/20231005031152/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/images/video-placeholder.svg","http://web.archive.org/web/20231005031152/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/android/images/favicon.png","http://web.archive.org/web/20231005031152/https://www.gstatic.com/devrel-devsite/prod/v7101fe1ae309bf6f8b73931812f2304140fb851e33f225a68507501988007b93/android/images/lockup.svg","http://web.archive.org/web/20231005031152/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,["Profiles__enable_profile_notifications_ui","MiscFeatureFlags__enable_tls_version_for_gaia_calls","Profiles__enable_developer_profiles_callout","Profiles__enable_page_saving","Profiles__require_profile_eligibility_for_signin","Profiles__enable_developer_profiles_dashboard_recommendations","SignIn__enable_auto_signin_oauth","Search__enable_suggestions_from_borg","Analytics__enable_ga4_analytics","MiscFeatureFlags__developers_footer_dark_image","Profiles__enable_suggested_interests","MiscFeatureFlags__devpanel_url","Search__enable_acl_suggestions","Search__enable_page_map","ContentExcellence__enable_googler_button","Search__enable_dynamic_content_confidential_banner","Profiles__enable_developer_profiles_interests","Experiments__enable_experiments","Cloud__enable_cloud_shell_fte_user_flow","Significatio__enable_experiment_id_caching","Badges__enable_delete_badges","Significatio__enable_footprints","Profiles__enable_profile_communities","Cloud__enable_cloud_facet_chat","Cloud__enable_cloudx_experiment_ids","Search__enable_faceted_search","Profiles__enable_searchable_interests","OpenInReplit__enable_replit","Significatio__enable_by_tenant","Cloud__enable_cloudx_ping","Localization__enable_locale_redirects","Profiles__enable_profile_collections","Search__enable_devsite_serp","Cloud__enable_free_trial_server_call","MiscFeatureFlags__emergency_css","MiscFeatureFlags__developers_footer_image","Badges__enable_drag_and_drop_badges","Concierge__enable_pushui","MiscFeatureFlags__content_publisher_push_queue","BookNav__enable_collapsible_book_nav","Badges__enable_hide_badges","AuthorPageInsights__enable_author_page_insights","ContentExcellence__enable_verified_date","Cloud__enable_cloud_dlp_service","Profiles__enable_public_developer_profiles","BookNav__enable_book_nav_filtering","Experiments__reqs_query_experiments","Cloud__enable_cloud_shell"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","http://web.archive.org/web/20231005031152/https://developerscontentserving-pa.googleapis.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","http://web.archive.org/web/20231005031152/https://developerscontentsearch-pa.googleapis.com",2]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 03:11:52 Oct 05, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 12:30:05 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.639 exclusion.robots: 0.032 exclusion.robots.policy: 0.021 esindex: 0.012 cdx.remote: 6.768 LoadShardBlock: 182.234 (3) PetaboxLoader3.datanode: 177.899 (4) PetaboxLoader3.resolve: 101.025 (2) load_resource: 108.509 -->