CINXE.COM

Frame Pacing Library  |  Android game development  |  Android Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Android Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#34a853"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/android/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500,600,700|Google+Sans+Text:400,400italic,500,500italic,600,600italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/css/app.css"> <link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/css/dark-theme.css" disabled> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/favicon.svg"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/touchicon-180.png"><link rel="canonical" href="https://developer.android.com/games/sdk/frame-pacing"><link rel="search" type="application/opensearchdescription+xml" title="Android Developers" href="https://developer.android.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developer.android.com/games/sdk/frame-pacing" /><link rel="alternate" hreflang="x-default" href="https://developer.android.com/games/sdk/frame-pacing" /><link rel="alternate" hreflang="ar" href="https://developer.android.com/games/sdk/frame-pacing?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developer.android.com/games/sdk/frame-pacing?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developer.android.com/games/sdk/frame-pacing?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developer.android.com/games/sdk/frame-pacing?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developer.android.com/games/sdk/frame-pacing?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developer.android.com/games/sdk/frame-pacing?hl=fr" /><link rel="alternate" hreflang="de" href="https://developer.android.com/games/sdk/frame-pacing?hl=de" /><link rel="alternate" hreflang="he" href="https://developer.android.com/games/sdk/frame-pacing?hl=he" /><link rel="alternate" hreflang="hi" href="https://developer.android.com/games/sdk/frame-pacing?hl=hi" /><link rel="alternate" hreflang="id" href="https://developer.android.com/games/sdk/frame-pacing?hl=id" /><link rel="alternate" hreflang="it" href="https://developer.android.com/games/sdk/frame-pacing?hl=it" /><link rel="alternate" hreflang="ja" href="https://developer.android.com/games/sdk/frame-pacing?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developer.android.com/games/sdk/frame-pacing?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developer.android.com/games/sdk/frame-pacing?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developer.android.com/games/sdk/frame-pacing?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developer.android.com/games/sdk/frame-pacing?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developer.android.com/games/sdk/frame-pacing?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developer.android.com/games/sdk/frame-pacing?hl=th" /><link rel="alternate" hreflang="tr" href="https://developer.android.com/games/sdk/frame-pacing?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developer.android.com/games/sdk/frame-pacing?hl=vi" /><title>Frame Pacing Library &nbsp;|&nbsp; Android game development &nbsp;|&nbsp; Android Developers</title> <meta property="og:title" content="Frame Pacing Library &nbsp;|&nbsp; Android game development &nbsp;|&nbsp; Android Developers"><meta property="og:url" content="https://developer.android.com/games/sdk/frame-pacing"><meta property="og:image" content="https://developer.android.com/static/images/social/games-dev-center.jpg"> <meta property="og:image:width" content="842"> <meta property="og:image:height" content="468"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Frame Pacing Library" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Games dev center", "item": "https://developer.android.com/games" },{ "@type": "ListItem", "position": 2, "name": "Frame Pacing Library", "item": "https://developer.android.com/games/sdk/frame-pacing" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="android-theme" type="article" appearance layout="docs" display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="androidDevelopers" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup-dark-theme.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Android Developers"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-dropdown devsite-dropdown-full devsite-active "> <a href="https://developer.android.com/get-started" track-metadata-eventdetail="https://developer.android.com/get-started" class="devsite-tabs-content gc-analytics-event android-dropdown-tab" track-type="nav" track-metadata-position="nav - essentials" track-metadata-module="primary nav" aria-label="Essentials, selected" data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials" > Essentials </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Essentials" track-type="nav" track-metadata-eventdetail="https://developer.android.com/get-started" track-metadata-position="nav - essentials" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Essentials" track-name="essentials" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-dropdown android-dropdown-primary android-dropdown-studio"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Gemini in Android Studio</li> <li class="devsite-nav-description">Your AI development companion for Android development. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/gemini-in-android" track-type="nav" track-metadata-eventdetail="https://developer.android.com/gemini-in-android" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="gemini in android studio" tooltip class="button button-primary" > <div class="devsite-nav-item-title"> Learn more </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/studio" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="gemini in android studio" tooltip class="button button-white" > <div class="devsite-nav-item-title"> Get Android Studio </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-launch"> <li class="devsite-nav-title" role="heading" tooltip>Get started</li> <li class="devsite-nav-description">Start by creating your first app. Go deeper with our training courses or explore app development on your own. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/get-started/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/get-started/overview" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Hello world </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/courses" track-type="nav" track-metadata-eventdetail="https://developer.android.com/courses" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Training courses </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/get-started/codelabs" track-type="nav" track-metadata-eventdetail="https://developer.android.com/get-started/codelabs" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Tutorials </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/kotlin" track-type="nav" track-metadata-eventdetail="https://developer.android.com/kotlin" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Kotlin for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://play.google.com/console/about/guides/monetize/" track-type="nav" track-metadata-eventdetail="https://play.google.com/console/about/guides/monetize/" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get started" tooltip > <div class="devsite-nav-item-title"> Monetization with Play ↗️ </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-multiple-screens"> <li class="devsite-nav-title" role="heading" tooltip>Extend by device</li> <li class="devsite-nav-description">Build apps that give your users seamless experiences from phones to tablets, watches, and more. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/adaptive-apps" track-type="nav" track-metadata-eventdetail="https://developer.android.com/adaptive-apps" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Adaptive apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/wear" track-type="nav" track-metadata-eventdetail="https://developer.android.com/wear" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Wear OS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/cars" track-type="nav" track-metadata-eventdetail="https://developer.android.com/cars" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Android for Cars </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/tv" track-type="nav" track-metadata-eventdetail="https://developer.android.com/tv" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Android TV </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/chrome-os" track-type="nav" track-metadata-eventdetail="https://developer.android.com/chrome-os" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> ChromeOS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/multi-device-development" track-type="nav" track-metadata-eventdetail="https://developer.android.com/multi-device-development" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="extend by device" tooltip > <div class="devsite-nav-item-title"> Cross-device SDK </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-platform"> <li class="devsite-nav-title" role="heading" tooltip>Build by category</li> <li class="devsite-nav-description">Learn to build for your use case by following Google&#39;s prescriptive and opinionated guidance. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/games" track-type="nav" track-metadata-eventdetail="https://developer.android.com/games" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Games </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/media" track-type="nav" track-metadata-eventdetail="https://developer.android.com/media" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Camera & Media </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/social-and-messaging" track-type="nav" track-metadata-eventdetail="https://developer.android.com/social-and-messaging" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Social & messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/health-and-fitness" track-type="nav" track-metadata-eventdetail="https://developer.android.com/health-and-fitness" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Health & Fitness </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/productivity" track-type="nav" track-metadata-eventdetail="https://developer.android.com/productivity" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Productivity </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/work/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/work/overview" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="build by category" tooltip > <div class="devsite-nav-item-title"> Enterprise apps </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-stars"> <li class="devsite-nav-title" role="heading" tooltip>Get the latest</li> <li class="devsite-nav-description">Stay in touch with the latest releases throughout the year, join our preview programs, and give us your feedback. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/latest-updates" track-type="nav" track-metadata-eventdetail="https://developer.android.com/latest-updates" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Latest updates </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/latest-updates/experimental" track-type="nav" track-metadata-eventdetail="https://developer.android.com/latest-updates/experimental" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Experimental updates </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/studio/preview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio/preview" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Android Studio preview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/jetpack/androidx/versions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/androidx/versions" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Jetpack & Compose libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/wearables/versions/4" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/wearables/versions/4" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Wear OS preview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design-for-safety/privacy-sandbox" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design-for-safety/privacy-sandbox" track-metadata-position="nav - essentials" track-metadata-module="tertiary nav" track-metadata-module_headline="get the latest" tooltip > <div class="devsite-nav-item-title"> Privacy Sandbox </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-dropdown-full "> <a href="https://developer.android.com/design" track-metadata-eventdetail="https://developer.android.com/design" class="devsite-tabs-content gc-analytics-event android-dropdown-tab" track-type="nav" track-metadata-position="nav - design &amp; plan" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Design &amp; Plan" track-name="design &amp; plan" > Design &amp; Plan </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Design &amp; Plan" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design" track-metadata-position="nav - design &amp; plan" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Design &amp; Plan" track-name="design &amp; plan" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-layout"> <li class="devsite-nav-title" role="heading" tooltip>UI Design</li> <li class="devsite-nav-description">Design a beautiful user interface using Android best practices.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Design for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/mobile" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/mobile" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Mobile </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/large-screens" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/large-screens" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Large screens (e.g., tablets) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/widget" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/widget" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Widgets </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/wear" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/wear" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Wear OS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/design/ui/tv" track-type="nav" track-metadata-eventdetail="https://developer.android.com/design/ui/tv" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="ui design" tooltip > <div class="devsite-nav-item-title"> Android TV </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-design"> <li class="devsite-nav-title" role="heading" tooltip>Architecture</li> <li class="devsite-nav-description">Design robust, testable, and maintainable app logic and services.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/topic/architecture/intro" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/architecture/intro" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Introduction </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/topic/libraries/view-binding" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/libraries/view-binding" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/navigation/navigation-principles" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/navigation/navigation-principles" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Navigation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/topic/modularization" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/modularization" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Modularization </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/testing/fundamentals" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/testing/fundamentals" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="architecture" tooltip > <div class="devsite-nav-item-title"> Testing </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-vitals"> <li class="devsite-nav-title" role="heading" tooltip>Quality</li> <li class="devsite-nav-description">Plan for app quality and align with Play store guidelines.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality/core-value" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/core-value" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> Core value </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality/user-experience" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/user-experience" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> User experience </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality/technical" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/technical" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> Technical quality </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quality/privacy-and-security" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quality/privacy-and-security" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="quality" tooltip > <div class="devsite-nav-item-title"> Security </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-security-2"> <li class="devsite-nav-title" role="heading" tooltip>Security</li> <li class="devsite-nav-description">Safeguard users against threats and ensure a secure Android experience.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/security" track-type="nav" track-metadata-eventdetail="https://developer.android.com/security" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="security" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/privacy-and-security/about" track-type="nav" track-metadata-eventdetail="https://developer.android.com/privacy-and-security/about" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="security" tooltip > <div class="devsite-nav-item-title"> Privacy </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/identity" track-type="nav" track-metadata-eventdetail="https://developer.android.com/identity" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="security" tooltip > <div class="devsite-nav-item-title"> Identity </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/security/fraud-prevention" track-type="nav" track-metadata-eventdetail="https://developer.android.com/security/fraud-prevention" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="security" tooltip > <div class="devsite-nav-item-title"> Fraud prevention </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-earth"> <li class="devsite-nav-title" role="heading" tooltip>Build for Billions</li> <li class="devsite-nav-description">Create the best experience for entry-level devices</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/build-for-billions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/build-for-billions" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="build for billions" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/docs/quality-guidelines/build-for-billions" track-type="nav" track-metadata-eventdetail="https://developer.android.com/docs/quality-guidelines/build-for-billions" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="build for billions" tooltip > <div class="devsite-nav-item-title"> About new markets </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/androidgo" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/androidgo" track-metadata-position="nav - design &amp; plan" track-metadata-module="tertiary nav" track-metadata-module_headline="build for billions" tooltip > <div class="devsite-nav-item-title"> Android (Go edition) </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-dropdown-full "> <a href="https://developer.android.com/develop" track-metadata-eventdetail="https://developer.android.com/develop" class="devsite-tabs-content gc-analytics-event android-dropdown-tab" track-type="nav" track-metadata-position="nav - develop" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" > Develop </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Develop" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop" track-metadata-position="nav - develop" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-dropdown android-dropdown-primary android-dropdown-ai"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Build AI experiences</li> <li class="devsite-nav-description">Build AI-powered Android apps with Gemini APIs and more. </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/ai" track-type="nav" track-metadata-eventdetail="https://developer.android.com/ai" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="build ai experiences" tooltip class="button button-primary" > <div class="devsite-nav-item-title"> Get started </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-flag"> <li class="devsite-nav-title" role="heading" tooltip>Core areas</li> <li class="devsite-nav-description">Get the samples and docs for the features you need.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/samples" track-type="nav" track-metadata-eventdetail="https://developer.android.com/samples" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Samples </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/quick-guides" track-type="nav" track-metadata-eventdetail="https://developer.android.com/quick-guides" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Try Quick Guidesᵇᵉᵗᵃ </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/develop/ui" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop/ui" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> User interfaces </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/permissions/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/permissions/overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Permissions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/develop/background-work" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop/background-work" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Background work </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/data" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/data" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> Data and files </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/develop#core-areas" track-type="nav" track-metadata-eventdetail="https://developer.android.com/develop#core-areas" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="core areas" tooltip > <div class="devsite-nav-item-title"> All core areas ⤵️ </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-tools-2"> <li class="devsite-nav-title" role="heading" tooltip>Tools and workflow</li> <li class="devsite-nav-description">Use the IDE to write and build your app, or create your own pipeline.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/studio/write" track-type="nav" track-metadata-eventdetail="https://developer.android.com/studio/write" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Write and debug code </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/build/gradle-build-overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/build/gradle-build-overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Build projects </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/testing" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/testing" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Test your app </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/topic/performance/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/topic/performance/overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Performance </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/tools" track-type="nav" track-metadata-eventdetail="https://developer.android.com/tools" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Command-line tools </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/reference/tools/gradle-api" track-type="nav" track-metadata-eventdetail="https://developer.android.com/reference/tools/gradle-api" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="tools and workflow" tooltip > <div class="devsite-nav-item-title"> Gradle plugin API </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-multiple-screens"> <li class="devsite-nav-title" role="heading" tooltip>Device tech</li> <li class="devsite-nav-description">Write code for form factors. Connect devices and share data.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/large-screens/get-started-with-large-screens" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/large-screens/get-started-with-large-screens" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Large screens (e.g., tablets) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/wearables" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/wearables" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Wear OS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/health-and-fitness/guides" track-type="nav" track-metadata-eventdetail="https://developer.android.com/health-and-fitness/guides" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Android Health </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/connectivity/cross-device-sdk/overview" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/connectivity/cross-device-sdk/overview" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Cross-device SDK </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/cars" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/cars" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Android for Cars </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/training/tv" track-type="nav" track-metadata-eventdetail="https://developer.android.com/training/tv" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> Android TV </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/chrome-os/intro" track-type="nav" track-metadata-eventdetail="https://developer.android.com/chrome-os/intro" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="device tech" tooltip > <div class="devsite-nav-item-title"> ChromeOS </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-dropdown"> <ul class="devsite-tabs-dropdown-section android-dropdown-section-icon android-dropdown-section-icon-core-library"> <li class="devsite-nav-title" role="heading" tooltip>Libraries</li> <li class="devsite-nav-description">Browse API reference documentation with all the details.</li> <li class="devsite-nav-item"> <a href="https://developer.android.com/reference/packages" track-type="nav" track-metadata-eventdetail="https://developer.android.com/reference/packages" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Android platform </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/jetpack/androidx/explorer" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/androidx/explorer" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Jetpack libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/jetpack/androidx/releases/compose" track-type="nav" track-metadata-eventdetail="https://developer.android.com/jetpack/androidx/releases/compose" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Compose libraries </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/android/reference/packages" track-type="nav" track-metadata-eventdetail="https://developers.google.com/android/reference/packages" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Google Play services ↗️ </div> </a> </li> <li class="devsite-nav-item"> <a href="https://play.google.com/sdks" track-type="nav" track-metadata-eventdetail="https://play.google.com/sdks" track-metadata-position="nav - develop" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> Google Play SDK index ↗️ </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://developer.android.com/distribute" track-metadata-eventdetail="https://developer.android.com/distribute" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - google play" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Google Play" track-name="google play" > Google Play </a> </tab> <tab > <a href="https://developer.android.com/community" track-metadata-eventdetail="https://developer.android.com/community" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > Community </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Android game development" tenant-name="Android Developers" > <form class="devsite-search-form" action="https://developer.android.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-appearance-selector></devsite-appearance-selector> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="https://developer.android.com/studio" data-category="Site-Wide Custom Events" data-label="Site header link" > Android Studio </a> <devsite-user enable-profiles id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developer.android.com/games" 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="Android game development" > Games dev center </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developer.android.com/games" track-metadata-eventdetail="https://developer.android.com/games" 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="https://developer.android.com/games/downloads" track-metadata-eventdetail="https://developer.android.com/games/downloads" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - downloads" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Downloads" track-name="downloads" > Downloads </a> </tab> <tab > <a href="https://developer.android.com/games/samples" track-metadata-eventdetail="https://developer.android.com/games/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> <tab class="devsite-active"> <a href="https://developer.android.com/games/guides" track-metadata-eventdetail="https://developer.android.com/games/guides" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://developer.android.com/games/reference" track-metadata-eventdetail="https://developer.android.com/games/reference" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://developer.android.com/games/community" track-metadata-eventdetail="https://developer.android.com/games/community" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > Community </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="androidDevelopers" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup-dark-theme.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Android Developers"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup.svg" class="devsite-site-logo" alt="Android Developers"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/get-started" class="devsite-nav-title gc-analytics-event devsite-nav-active" 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> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/games" 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="/games/downloads" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Downloads" track-name="downloads" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Downloads" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Downloads </span> </a> </li> <li class="devsite-nav-item"> <a href="/games/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> <li class="devsite-nav-item"> <a href="/games/guides" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/games/reference" class="devsite-nav-title gc-analytics-event " 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> </a> </li> <li class="devsite-nav-item"> <a href="/games/community" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Community </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/design" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Design &amp; Plan" track-name="design &amp; plan" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Design &amp; Plan" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Design &amp; 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 &amp; Plan" track-name="design &amp; plan" > <span class="devsite-nav-text" tooltip menu="Design &amp; Plan"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Design &amp; Plan"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/develop" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Develop" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Develop </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" > <span class="devsite-nav-text" tooltip menu="Develop"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Develop"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/distribute" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Google Play" track-name="google play" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Play </span> </a> </li> <li class="devsite-nav-item"> <a href="/community" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Community </span> </a> </li> <li class="devsite-nav-item"> <a href="/studio" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Studio" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android Studio </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/games/guides" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/guides" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/guides" ><span class="devsite-nav-text" tooltip>Get started</span></a></li> <li class="devsite-nav-item"><a href="/games/guides/basics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/guides/basics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/guides/basics" ><span class="devsite-nav-text" tooltip>Game development basics</span></a></li> <li class="devsite-nav-item devsite-nav-preview"><a href="/games/preview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/preview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/preview" ><span class="devsite-nav-text" tooltip>Developer previews</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li> <li class="devsite-nav-item devsite-nav-external"><a href="https://issuetracker.google.com/issues/new?component=1669282" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://issuetracker.google.com/issues/new?component=1669282" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://issuetracker.google.com/issues/new?component=1669282" ><span class="devsite-nav-text" tooltip>File a bug</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li> <li class="devsite-nav-item devsite-nav-expandable 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</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/develop/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/overview" ><span class="devsite-nav-text" tooltip>About game development tools</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 a game engine</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/engines/engines-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/engines-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/engines-overview" ><span class="devsite-nav-text" tooltip>About game engines</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>Develop with Defold</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/engines/defold/defold-configure" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/defold/defold-configure" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/defold/defold-configure" ><span class="devsite-nav-text" tooltip>Install and configure projects for Android</span></a></li><li class="devsite-nav-item"><a href="/games/engines/defold/defold-formfactor" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/defold/defold-formfactor" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/defold/defold-formfactor" ><span class="devsite-nav-text" tooltip>Support multiple form factors and screen sizes</span></a></li><li class="devsite-nav-item"><a href="/games/engines/defold/defold-export" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/defold/defold-export" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/defold/defold-export" ><span class="devsite-nav-text" tooltip>Export to Android</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>Develop with Godot</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/engines/godot/godot-configure" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/godot/godot-configure" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/godot/godot-configure" ><span class="devsite-nav-text" tooltip>Install and configure projects for Android</span></a></li><li class="devsite-nav-item"><a href="/games/engines/godot/godot-renderers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/godot/godot-renderers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/godot/godot-renderers" ><span class="devsite-nav-text" tooltip>Godot renderer options</span></a></li><li class="devsite-nav-item"><a href="/games/engines/godot/godot-formfactor" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/godot/godot-formfactor" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/godot/godot-formfactor" ><span class="devsite-nav-text" tooltip>Support multiple form factors and screen sizes</span></a></li><li class="devsite-nav-item"><a href="/games/engines/godot/godot-export" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/godot/godot-export" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/godot/godot-export" ><span class="devsite-nav-text" tooltip>Export to Android</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>Develop with Cocos</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/engines/cocos/cocos-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/cocos/cocos-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/cocos/cocos-overview" ><span class="devsite-nav-text" tooltip>Steps to build a game for Android in Cocos Creator</span></a></li><li class="devsite-nav-item"><a href="/games/engines/cocos/cocos-playinstant" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/cocos/cocos-playinstant" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/cocos/cocos-playinstant" ><span class="devsite-nav-text" tooltip>Publish your game as Google Play Instant app in Cocos Creator</span></a></li><li class="devsite-nav-item"><a href="/games/engines/cocos/cocos-aab" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/cocos/cocos-aab" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/cocos/cocos-aab" ><span class="devsite-nav-text" tooltip>Publish your game with Android App Bundle in Cocos Creator</span></a></li><li class="devsite-nav-item"><a href="/games/engines/cocos/cocos-remotedebugging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/cocos/cocos-remotedebugging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/cocos/cocos-remotedebugging" ><span class="devsite-nav-text" tooltip>Remote debugging on Android</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>Develop with Unity</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/engines/unity/start-in-unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unity/start-in-unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unity/start-in-unity" ><span class="devsite-nav-text" tooltip>Get started with game development in Unity</span></a></li><li class="devsite-nav-item"><a href="/games/engines/unity/unity-vkquality" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unity/unity-vkquality" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unity/unity-vkquality" ><span class="devsite-nav-text" tooltip>Get launch-time graphics API recommendations using the vkQuality Unity engine plugin</span></a></li><li class="devsite-nav-item"><a href="/games/engines/unity/build-in-unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unity/build-in-unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unity/build-in-unity" ><span class="devsite-nav-text" tooltip>Build your game in Unity</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://blogs.unity3d.com/2018/10/03/support-for-android-app-bundle-aab-in-unity-2018-3-beta/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://blogs.unity3d.com/2018/10/03/support-for-android-app-bundle-aab-in-unity-2018-3-beta/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://blogs.unity3d.com/2018/10/03/support-for-android-app-bundle-aab-in-unity-2018-3-beta/" ><span class="devsite-nav-text" tooltip>Create an Android App Bundle with Unity</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/guide/playcore/asset-delivery/integrate-unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/playcore/asset-delivery/integrate-unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/playcore/asset-delivery/integrate-unity" ><span class="devsite-nav-text" tooltip>Integrate Play Asset Delivery</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/lighting-for-mobile-games-with-unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/lighting-for-mobile-games-with-unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/lighting-for-mobile-games-with-unity" ><span class="devsite-nav-text" tooltip>Unity Lighting in Mobile Games</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 Android Performance Tuner</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity/enable-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity/enable-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity/enable-api" ><span class="devsite-nav-text" tooltip>Enable the API</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity/integrate-plugin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity/integrate-plugin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity/integrate-plugin" ><span class="devsite-nav-text" tooltip>Integrate the plugin</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity/initialize-library" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity/initialize-library" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity/initialize-library" ><span class="devsite-nav-text" tooltip>Initialize the library and verify operation</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity/define-parameters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity/define-parameters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity/define-parameters" ><span class="devsite-nav-text" tooltip>Define annotations, fidelity parameters, and quality levels</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity/loading-functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity/loading-functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity/loading-functions" ><span class="devsite-nav-text" tooltip>Add loading time recording functions</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity/include-addressables-scenes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity/include-addressables-scenes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity/include-addressables-scenes" ><span class="devsite-nav-text" tooltip>Include Addressables scenes</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity/run-monitor-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity/run-monitor-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity/run-monitor-app" ><span class="devsite-nav-text" tooltip>Run the monitor app</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity/review-and-publish" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity/review-and-publish" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity/review-and-publish" ><span class="devsite-nav-text" tooltip>Review and publish</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/unity/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/unity/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/unity/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshoot common errors</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/reference/performance-tuner/unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/reference/performance-tuner/unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/reference/performance-tuner/unity" ><span class="devsite-nav-text" tooltip>Reference</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/engines/unity/unity-anrs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unity/unity-anrs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unity/unity-anrs" ><span class="devsite-nav-text" tooltip>Debug ANRs for Unity games</span></a></li><li class="devsite-nav-item"><a href="/games/engines/unity/unity-anrs-list" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unity/unity-anrs-list" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unity/unity-anrs-list" ><span class="devsite-nav-text" tooltip>Common Unity Games ANRs</span></a></li><li class="devsite-nav-item"><a href="/games/engines/unity/unity-symbolicate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unity/unity-symbolicate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unity/unity-symbolicate" ><span class="devsite-nav-text" tooltip>Symbolicate Android crashes and ANR for Unity games</span></a></li><li class="devsite-nav-item"><a href="/games/engines/unity/memory-advice" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unity/memory-advice" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unity/memory-advice" ><span class="devsite-nav-text" tooltip>Get started with the Memory Advice API for Unity games</span></a></li><li class="devsite-nav-item"><a href="/games/engines/unity/unity-adpf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unity/unity-adpf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unity/unity-adpf" ><span class="devsite-nav-text" tooltip>ADPF Unity Adaptive Performance and Android provider</span></a></li><li class="devsite-nav-item"><a href="/games/engines/unity/unity-large-screen" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unity/unity-large-screen" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unity/unity-large-screen" ><span class="devsite-nav-text" tooltip>Make your game great on all form factors</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Develop with Unreal</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/engines/unreal/unreal-on-android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unreal/unreal-on-android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unreal/unreal-on-android" ><span class="devsite-nav-text" tooltip>Unreal on Android</span></a></li><li class="devsite-nav-item"><a href="/games/engines/unreal/unreal-adpf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/engines/unreal/unreal-adpf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/engines/unreal/unreal-adpf" ><span class="devsite-nav-text" tooltip>ADPF Unreal Engine plugin</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/develop/permissions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/permissions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/permissions" ><span class="devsite-nav-text" tooltip>Request permissions for data access</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 or extend a game engine</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/develop/custom/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/custom/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/custom/overview" ><span class="devsite-nav-text" tooltip>About custom game engines</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>Start with GameActivity</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/agdk/game-activity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/game-activity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/game-activity" ><span class="devsite-nav-text" tooltip>About the GameActivity library</span></a></li><li class="devsite-nav-item"><a href="/games/agdk/game-activity/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/game-activity/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/game-activity/get-started" ><span class="devsite-nav-text" tooltip>Get started with GameActivity</span></a></li><li class="devsite-nav-item"><a href="/games/agdk/game-activity/use-text-input" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/game-activity/use-text-input" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/game-activity/use-text-input" ><span class="devsite-nav-text" tooltip>Use game text input</span></a></li><li class="devsite-nav-item"><a href="/games/agdk/game-activity/migrate-native-activity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/game-activity/migrate-native-activity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/game-activity/migrate-native-activity" ><span class="devsite-nav-text" tooltip>Migrate from NativeActivity</span></a></li><li class="devsite-nav-item"><a href="/games/agdk/configure-graphics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/configure-graphics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/configure-graphics" ><span class="devsite-nav-text" tooltip>Configure graphics</span></a></li><li class="devsite-nav-item"><a href="/games/develop/gameloops" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/gameloops" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/gameloops" ><span class="devsite-nav-text" tooltip>Understand Android game loops</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>Process input events</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/agdk/add-touch-support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/add-touch-support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/add-touch-support" ><span class="devsite-nav-text" tooltip>Add touch support</span></a></li><li class="devsite-nav-item"><a href="/games/agdk/add-support-for-text-input" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/add-support-for-text-input" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/add-support-for-text-input" ><span class="devsite-nav-text" tooltip>Support text input</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/game-controller/mouse" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/game-controller/mouse" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/game-controller/mouse" ><span class="devsite-nav-text" tooltip>Add mouse support</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="/guide/topics/sensors/sensors_overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /guide/topics/sensors/sensors_overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/guide/topics/sensors/sensors_overview" ><span class="devsite-nav-text" tooltip>Support sensor input</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></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>Optimize frame pacing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/sdk/frame-pacing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/frame-pacing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/frame-pacing" ><span class="devsite-nav-text" tooltip>About the Frame Pacing library</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>Frame pacing in OpenGL ES</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/sdk/frame-pacing/opengl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/frame-pacing/opengl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/frame-pacing/opengl" ><span class="devsite-nav-text" tooltip>Integrate</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/frame-pacing/opengl/update-build-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/frame-pacing/opengl/update-build-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/frame-pacing/opengl/update-build-settings" ><span class="devsite-nav-text" tooltip>Update your build settings</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/frame-pacing/opengl/add-functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/frame-pacing/opengl/add-functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/frame-pacing/opengl/add-functions" ><span class="devsite-nav-text" tooltip>Add frame pacing functions</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/frame-pacing/opengl/verify-improvement" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/frame-pacing/opengl/verify-improvement" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/frame-pacing/opengl/verify-improvement" ><span class="devsite-nav-text" tooltip>Verify frame pacing improvement</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>Frame pacing in Vulkan</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/sdk/frame-pacing/vulkan" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/frame-pacing/vulkan" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/frame-pacing/vulkan" ><span class="devsite-nav-text" tooltip>Integrate</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/frame-pacing/vulkan/update-build-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/frame-pacing/vulkan/update-build-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/frame-pacing/vulkan/update-build-settings" ><span class="devsite-nav-text" tooltip>Update your build settings</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/frame-pacing/vulkan/add-functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/frame-pacing/vulkan/add-functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/frame-pacing/vulkan/add-functions" ><span class="devsite-nav-text" tooltip>Add frame pacing functions</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/frame-pacing/vulkan/verify-improvement" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/frame-pacing/vulkan/verify-improvement" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/frame-pacing/vulkan/verify-improvement" ><span class="devsite-nav-text" tooltip>Verify frame pacing improvement</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-external"><a href="/games/sdk/reference/frame-pacing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/reference/frame-pacing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/reference/frame-pacing" ><span class="devsite-nav-text" tooltip>Frame Pacing API Reference</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-beta"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Access Java libraries from C/C++</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/develop/custom/wrapper" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/custom/wrapper" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/custom/wrapper" ><span class="devsite-nav-text" tooltip>About the library wrapper</span></a></li><li class="devsite-nav-item"><a href="/games/develop/custom/wrapper-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/custom/wrapper-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/custom/wrapper-guide" ><span class="devsite-nav-text" tooltip>Get started with library wrapper</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 Android Performance Tuner</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine" ><span class="devsite-nav-text" tooltip>About Android Performance Tuner</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine/run-demo-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine/run-demo-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine/run-demo-app" ><span class="devsite-nav-text" tooltip>Run the APT demo app</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine/enable-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine/enable-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine/enable-api" ><span class="devsite-nav-text" tooltip>Enable the Android Performance Parameters API</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine/update-build-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine/update-build-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine/update-build-settings" ><span class="devsite-nav-text" tooltip>Update your build settings</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine/define-parameters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine/define-parameters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine/define-parameters" ><span class="devsite-nav-text" tooltip>Define annotations, fidelity parameters, and settings</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine/add-functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine/add-functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine/add-functions" ><span class="devsite-nav-text" tooltip>Add frame timing functions</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine/loading-functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine/loading-functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine/loading-functions" ><span class="devsite-nav-text" tooltip>Add loading time recording functions</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine/validate-and-package" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine/validate-and-package" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine/validate-and-package" ><span class="devsite-nav-text" tooltip>Validate, package, and publish the APK</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshoot common errors</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner/custom-engine/advanced" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner/custom-engine/advanced" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner/custom-engine/advanced" ><span class="devsite-nav-text" tooltip>Advanced usage</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="/games/sdk/reference/performance-tuner/custom-engine" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/reference/performance-tuner/custom-engine" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/reference/performance-tuner/custom-engine" ><span class="devsite-nav-text" tooltip>Performance Tuner API Reference</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></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>Develop for multiple form factors</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/optimize/64-bit" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/64-bit" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/64-bit" ><span class="devsite-nav-text" tooltip>64-bit architectures</span></a></li><li class="devsite-nav-item"><a href="/games/develop/all-screens" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/all-screens" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/all-screens" ><span class="devsite-nav-text" tooltip>Screen types</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/vulkan-prerotation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/vulkan-prerotation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/vulkan-prerotation" ><span class="devsite-nav-text" tooltip>Vulkan pre-rotation</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>Output audio</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/sdk/oboe" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/oboe" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/oboe" ><span class="devsite-nav-text" tooltip>About the Oboe audio library</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/oboe/update-build-settings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/oboe/update-build-settings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/oboe/update-build-settings" ><span class="devsite-nav-text" tooltip>Update build settings</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/oboe/low-latency-audio" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/oboe/low-latency-audio" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/oboe/low-latency-audio" ><span class="devsite-nav-text" tooltip>Low latency audio</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://github.com/google/oboe/blob/master/docs/GettingStarted.md#using-oboe" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://github.com/google/oboe/blob/master/docs/GettingStarted.md#using-oboe" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://github.com/google/oboe/blob/master/docs/GettingStarted.md#using-oboe" ><span class="devsite-nav-text" tooltip>Create an audio stream</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://github.com/google/oboe/tree/master/samples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://github.com/google/oboe/tree/master/samples" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://github.com/google/oboe/tree/master/samples" ><span class="devsite-nav-text" tooltip>See Oboe code samples</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://github.com/google/oboe/blob/master/docs/FullGuide.md" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://github.com/google/oboe/blob/master/docs/FullGuide.md" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://github.com/google/oboe/blob/master/docs/FullGuide.md" ><span class="devsite-nav-text" tooltip>See the Oboe developer guide</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></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>Manage memory</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/optimize/memory-allocation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/memory-allocation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/memory-allocation" ><span class="devsite-nav-text" tooltip>About managing memory</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://source.android.com/devices/tech/debug/native-memory" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://source.android.com/devices/tech/debug/native-memory" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://source.android.com/devices/tech/debug/native-memory" ><span class="devsite-nav-text" tooltip>Debug native memory use</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/develop/custom/deliver-assets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/custom/deliver-assets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/custom/deliver-assets" ><span class="devsite-nav-text" tooltip>Deliver assets</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/crash" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/crash" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/crash" ><span class="devsite-nav-text" tooltip>Detect and diagnose crashes</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android Game Development Kit (AGDK)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/agdk/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/overview" ><span class="devsite-nav-text" tooltip>About the AGDK</span></a></li><li class="devsite-nav-item"><a href="/games/agdk/download" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/download" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/download" ><span class="devsite-nav-text" tooltip>Download the AGDK</span></a></li><li class="devsite-nav-item"><a href="/games/agdk/release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agdk/release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agdk/release-notes" ><span class="devsite-nav-text" tooltip>AGDK release notes</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android Game Development Extension (AGDE) for Visual Studio</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/agde" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde" ><span class="devsite-nav-text" tooltip>About the AGDE</span></a></li><li class="devsite-nav-item"><a href="/games/agde/quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde/quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde/quickstart" ><span class="devsite-nav-text" tooltip>Get started with AGDE</span></a></li><li class="devsite-nav-item"><a href="/games/agde/adapt-existing-project" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde/adapt-existing-project" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde/adapt-existing-project" ><span class="devsite-nav-text" tooltip>Configure your project</span></a></li><li class="devsite-nav-item"><a href="/games/agde/debugger" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde/debugger" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde/debugger" ><span class="devsite-nav-text" tooltip>Debug your project</span></a></li><li class="devsite-nav-item"><a href="/games/agde/address-sanitizer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde/address-sanitizer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde/address-sanitizer" ><span class="devsite-nav-text" tooltip>Debug memory corruption using Address Sanitizer</span></a></li><li class="devsite-nav-item"><a href="/games/agde/measure" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde/measure" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde/measure" ><span class="devsite-nav-text" tooltip>Measure app performance</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>Profile-Guided Optimization (PGO)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/agde/pgo-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde/pgo-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde/pgo-overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/games/agde/configure-pgo" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde/configure-pgo" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde/configure-pgo" ><span class="devsite-nav-text" tooltip>Configure Profile-Guided Optimization</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/agde/samples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde/samples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde/samples" ><span class="devsite-nav-text" tooltip>See AGDE code samples</span></a></li><li class="devsite-nav-item"><a href="/games/agde/release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/agde/release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/agde/release-notes" ><span class="devsite-nav-text" tooltip>AGDE release notes</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-beta"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Play Games on PC</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/playgames/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/overview" ><span class="devsite-nav-text" tooltip>About Google Play Games on PC</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/start" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/checklist" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/checklist" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/checklist" ><span class="devsite-nav-text" tooltip>Review process</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>Set up</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/playgames/emulator" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/emulator" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/emulator" ><span class="devsite-nav-text" tooltip>Download the Emulator</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/pc-compatibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/pc-compatibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/pc-compatibility" ><span class="devsite-nav-text" tooltip>Set up your game for PC compatibility</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/graphics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/graphics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/graphics" ><span class="devsite-nav-text" tooltip>Configure your 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>Device input</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/playgames/input" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/input" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/input" ><span class="devsite-nav-text" tooltip>Set up input</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/input-mouse" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/input-mouse" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/input-mouse" ><span class="devsite-nav-text" tooltip>Set up mouse input</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>Input SDK</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/playgames/input-sdk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/input-sdk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/input-sdk" ><span class="devsite-nav-text" tooltip>About the Input SDK</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/input-sdk-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/input-sdk-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/input-sdk-start" ><span class="devsite-nav-text" tooltip>Get started with the Input SDK</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>Migration Guides</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/playgames/input-sdk-migration-guides" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/input-sdk-migration-guides" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/input-sdk-migration-guides" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/input-sdk-migration-2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/input-sdk-migration-2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/input-sdk-migration-2" ><span class="devsite-nav-text" tooltip>Upgrade from 1.0 to 1.1 Java/Kotlin</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/input-sdk-migration-unity-2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/input-sdk-migration-unity-2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/input-sdk-migration-unity-2" ><span class="devsite-nav-text" tooltip>Upgrade from 1.0 to 1.1 Unity</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/input-sdk-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/input-sdk-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/input-sdk-migration" ><span class="devsite-nav-text" tooltip>Upgrade from 0.0.4 to 1.0 Java/Kotlin</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/input-sdk-migration-unity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/input-sdk-migration-unity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/input-sdk-migration-unity" ><span class="devsite-nav-text" tooltip>Upgrade from 0.0.4 to 1.0 Unity</span></a></li></ul></div></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Cross-device play</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/playgames/identity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/identity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/identity" ><span class="devsite-nav-text" tooltip>About continuity in cross-device play</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/continuity-requirements" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/continuity-requirements" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/continuity-requirements" ><span class="devsite-nav-text" tooltip>About continuity requirements</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/continuity-expected-behaviors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/continuity-expected-behaviors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/continuity-expected-behaviors" ><span class="devsite-nav-text" tooltip>Verify your game&#39;s compliance</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/integrating-pgs-existing-id-solutions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/integrating-pgs-existing-id-solutions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/integrating-pgs-existing-id-solutions" ><span class="devsite-nav-text" tooltip>Federate the identity services</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/third-party-login-supports" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/third-party-login-supports" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/third-party-login-supports" ><span class="devsite-nav-text" tooltip>Third-party login</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>Test</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/playgames/development-test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/development-test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/development-test" ><span class="devsite-nav-text" tooltip>Test your game</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/pg-emulator" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/pg-emulator" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/pg-emulator" ><span class="devsite-nav-text" tooltip>Use the developer emulator</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/pg-chromeos" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/pg-chromeos" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/pg-chromeos" ><span class="devsite-nav-text" tooltip>Use ChromeOS devices</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/verify-game-compatibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/verify-game-compatibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/verify-game-compatibility" ><span class="devsite-nav-text" tooltip>Troubleshoot the developer emulator</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/development-readiness" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/development-readiness" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/development-readiness" ><span class="devsite-nav-text" tooltip>Validate your Google Play Games on PC game</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>Publish and deploy</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/playgames/development-package" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/development-package" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/development-package" ><span class="devsite-nav-text" tooltip>Detect Google Play Games on PC platform features</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/development-submit" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/development-submit" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/development-submit" ><span class="devsite-nav-text" tooltip>Submit your game</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/development-update" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/development-update" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/development-update" ><span class="devsite-nav-text" tooltip>Update your game</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/integrity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/integrity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/integrity" ><span class="devsite-nav-text" tooltip>Integrity Protection</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/user-acquisition" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/user-acquisition" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/user-acquisition" ><span class="devsite-nav-text" tooltip>User Acquisition</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/playgames/gpg-samples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/gpg-samples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/gpg-samples" ><span class="devsite-nav-text" tooltip>Samples and plugins</span></a></li><li class="devsite-nav-item"><a href="/games/playgames/faq" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/playgames/faq" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/playgames/faq" ><span class="devsite-nav-text" tooltip>FAQ</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>Multiplatform</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/develop/multiplatform/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/multiplatform/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/multiplatform/overview" ><span class="devsite-nav-text" tooltip>About form factors</span></a></li><li class="devsite-nav-item"><a href="/games/develop/multiplatform/make-your-game-compatible-with-all-form-factors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/multiplatform/make-your-game-compatible-with-all-form-factors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/multiplatform/make-your-game-compatible-with-all-form-factors" ><span class="devsite-nav-text" tooltip>Make your game compatible with all form factors</span></a></li><li class="devsite-nav-item"><a href="/games/develop/multiplatform/support-large-screen-resizability" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/multiplatform/support-large-screen-resizability" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/multiplatform/support-large-screen-resizability" ><span class="devsite-nav-text" tooltip>Support large screen resizability</span></a></li><li class="devsite-nav-item"><a href="/games/develop/multiplatform/enable-natural-input-on-all-form-factors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/multiplatform/enable-natural-input-on-all-form-factors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/multiplatform/enable-natural-input-on-all-form-factors" ><span class="devsite-nav-text" tooltip>Enable natural input on all form factors</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Use game controller</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/sdk/game-controller/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/game-controller/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/game-controller/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="/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>Game controller with Android API</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Support game controllers library</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/sdk/game-controller" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/game-controller" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/game-controller" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/game-controller/controller" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/game-controller/controller" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/game-controller/controller" ><span class="devsite-nav-text" tooltip>Use the game controller library</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/game-controller/custom-mapping" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/game-controller/custom-mapping" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/game-controller/custom-mapping" ><span class="devsite-nav-text" tooltip>Use custom controller device mappings</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>Vulkan</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/develop/vulkan/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/vulkan/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/vulkan/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/games/develop/vulkan/game-engine-support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/vulkan/game-engine-support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/vulkan/game-engine-support" ><span class="devsite-nav-text" tooltip>Game engine support</span></a></li><li class="devsite-nav-item"><a href="/games/develop/vulkan/native-engine-support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/vulkan/native-engine-support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/vulkan/native-engine-support" ><span class="devsite-nav-text" tooltip>Native and proprietary engines</span></a></li><li class="devsite-nav-item"><a href="/games/develop/vulkan/sample-codelab-story" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/vulkan/sample-codelab-story" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/vulkan/sample-codelab-story" ><span class="devsite-nav-text" tooltip>Sample, Codelab, Developer Stories and Videos</span></a></li><li class="devsite-nav-item"><a href="/games/develop/vulkan/tools-and-advanced-features" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/vulkan/tools-and-advanced-features" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/vulkan/tools-and-advanced-features" ><span class="devsite-nav-text" tooltip>Tools &amp; advanced features</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/develop/develop-as" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/develop/develop-as" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/develop/develop-as" ><span class="devsite-nav-text" tooltip>Manage, debug, and profile in Android Studio</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>Optimize</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>Android Vitals</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/optimize/vitals" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/vitals" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/vitals" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/vitals/anr" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/vitals/anr" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/vitals/anr" ><span class="devsite-nav-text" tooltip>ANRs</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/vitals/crash" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/vitals/crash" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/vitals/crash" ><span class="devsite-nav-text" tooltip>Crashes</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/vitals/slow-session" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/vitals/slow-session" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/vitals/slow-session" ><span class="devsite-nav-text" tooltip>Slow Sessions</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/optimize/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/overview" ><span class="devsite-nav-text" tooltip>About optimization tools</span></a></li><li class="devsite-nav-item"><a href="/games/optimize" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize" ><span class="devsite-nav-text" tooltip>Configure system tracing</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/game-size" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/game-size" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/game-size" ><span class="devsite-nav-text" tooltip>Reduce game size</span></a></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-beta"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android GPU Inspector (AGI)</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/agi" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi" ><span class="devsite-nav-text" tooltip>About AGI</span></a></li><li class="devsite-nav-item"><a href="/agi/start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/start" ><span class="devsite-nav-text" tooltip>Quickstart</span></a></li><li class="devsite-nav-item"><a href="/agi/supported-devices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/supported-devices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/supported-devices" ><span class="devsite-nav-text" tooltip>Supported devices</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>System profiling</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/agi/sys-trace/system-profiler" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/sys-trace/system-profiler" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/sys-trace/system-profiler" ><span class="devsite-nav-text" tooltip>About system profiling</span></a></li><li class="devsite-nav-item"><a href="/agi/sys-trace/system-profiler-gui" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/sys-trace/system-profiler-gui" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/sys-trace/system-profiler-gui" ><span class="devsite-nav-text" tooltip>View a system profile</span></a></li><li class="devsite-nav-item"><a href="/agi/sys-trace/counters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/sys-trace/counters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/sys-trace/counters" ><span class="devsite-nav-text" tooltip>GPU performance counters</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>Analyze a system profile</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/agi/sys-trace/long" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/sys-trace/long" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/sys-trace/long" ><span class="devsite-nav-text" tooltip>Frame processing times</span></a></li><li class="devsite-nav-item"><a href="/agi/sys-trace/memory-efficiency" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/sys-trace/memory-efficiency" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/sys-trace/memory-efficiency" ><span class="devsite-nav-text" tooltip>Memory efficiency</span></a></li><li class="devsite-nav-item"><a href="/agi/sys-trace/texture-memory-bw" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/sys-trace/texture-memory-bw" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/sys-trace/texture-memory-bw" ><span class="devsite-nav-text" tooltip>Texture memory bandwidth usage</span></a></li><li class="devsite-nav-item"><a href="/agi/sys-trace/vertex-memory-bw" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/sys-trace/vertex-memory-bw" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/sys-trace/vertex-memory-bw" ><span class="devsite-nav-text" tooltip>Vertex memory bandwidth usage</span></a></li><li class="devsite-nav-item"><a href="/agi/sys-trace/threads-scheduling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/sys-trace/threads-scheduling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/sys-trace/threads-scheduling" ><span class="devsite-nav-text" tooltip>Thread scheduling</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>Frame profiling</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/agi/frame-trace/frame-profiler" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace/frame-profiler" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace/frame-profiler" ><span class="devsite-nav-text" tooltip>About frame profiling</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>Analyze a frame profile</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/agi/frame-trace/renderpasses" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace/renderpasses" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace/renderpasses" ><span class="devsite-nav-text" tooltip>Most expensive render passes</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace/vertex-formats" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace/vertex-formats" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace/vertex-formats" ><span class="devsite-nav-text" tooltip>Vertex formats</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace/shader-performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace/shader-performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace/shader-performance" ><span class="devsite-nav-text" tooltip>Shader performance</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>Frame Profiler UI</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/perftab-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/perftab-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/perftab-pane" ><span class="devsite-nav-text" tooltip>Performance pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/commands-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/commands-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/commands-pane" ><span class="devsite-nav-text" tooltip>Commands pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/framebuffer-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/framebuffer-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/framebuffer-pane" ><span class="devsite-nav-text" tooltip>Framebuffer pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/geometry-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/geometry-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/geometry-pane" ><span class="devsite-nav-text" tooltip>Geometry pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/report-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/report-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/report-pane" ><span class="devsite-nav-text" tooltip>Report pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/shader-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/shader-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/shader-pane" ><span class="devsite-nav-text" tooltip>Shader pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/memory-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/memory-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/memory-pane" ><span class="devsite-nav-text" tooltip>Memory pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/state-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/state-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/state-pane" ><span class="devsite-nav-text" tooltip>State pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/textures-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/textures-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/textures-pane" ><span class="devsite-nav-text" tooltip>Textures pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/texture-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/texture-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/texture-pane" ><span class="devsite-nav-text" tooltip>Texture pane</span></a></li><li class="devsite-nav-item"><a href="/agi/frame-trace-gui/pipeline-pane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/frame-trace-gui/pipeline-pane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/frame-trace-gui/pipeline-pane" ><span class="devsite-nav-text" tooltip>Pipeline view pane</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/agi/vulkan-extensions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/vulkan-extensions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/vulkan-extensions" ><span class="devsite-nav-text" tooltip>Supported Vulkan extensions</span></a></li><li class="devsite-nav-item"><a href="/agi/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /agi/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/agi/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshoot AGI</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/sdk/performance-tuner" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/performance-tuner" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/performance-tuner" ><span class="devsite-nav-text" tooltip>Android Performance Tuner (APT)</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android Dynamic Performance Framework (ADPF)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/optimize/adpf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/adpf/thermal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/thermal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/thermal" ><span class="devsite-nav-text" tooltip>Thermal API</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/adpf/performance-hint-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/performance-hint-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/performance-hint-api" ><span class="devsite-nav-text" tooltip>Performance Hint API</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Game Mode &amp; Game State API</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/optimize/adpf/gamemode/about-API-and-interventions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/gamemode/about-API-and-interventions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/gamemode/about-API-and-interventions" ><span class="devsite-nav-text" tooltip>About the Game Mode API and interventions</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/adpf/gamemode/gamemode-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/gamemode/gamemode-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/gamemode/gamemode-api" ><span class="devsite-nav-text" tooltip>Use the Game Mode API</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/adpf/gamemode/gamemode-interventions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/gamemode/gamemode-interventions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/gamemode/gamemode-interventions" ><span class="devsite-nav-text" tooltip>Use Game Mode Interventions</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/adpf/gamemode/fps-throttling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/gamemode/fps-throttling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/gamemode/fps-throttling" ><span class="devsite-nav-text" tooltip>FPS Throttling Overview</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/adpf/gamemode/gamestate-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/gamemode/gamestate-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/gamemode/gamestate-api" ><span class="devsite-nav-text" tooltip>Game State API</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/optimize/adpf/fixed-performance-mode" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/fixed-performance-mode" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/fixed-performance-mode" ><span class="devsite-nav-text" tooltip>Fixed Performance Mode</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/adpf/game-engine-support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/game-engine-support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/game-engine-support" ><span class="devsite-nav-text" tooltip>Game Engine Support</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/adpf/sample-codelab-story" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/adpf/sample-codelab-story" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/adpf/sample-codelab-story" ><span class="devsite-nav-text" tooltip>Sample, Codelab and Developer Stories</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/optimize/geometry" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/geometry" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/geometry" ><span class="devsite-nav-text" tooltip>Optimize 3D assets</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/textures" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/textures" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/textures" ><span class="devsite-nav-text" tooltip>Best practices for textures</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/vertex-data-management" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/vertex-data-management" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/vertex-data-management" ><span class="devsite-nav-text" tooltip>Manage vertex data</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/materials" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/materials" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/materials" ><span class="devsite-nav-text" tooltip>Optimize materials and shaders</span></a></li><li class="devsite-nav-item"><a href="/games/optimize/low-memory-insights" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/low-memory-insights" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/low-memory-insights" ><span class="devsite-nav-text" tooltip>Low-memory games insights</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>Vulkan best practices on Android</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/optimize/vulkan-reduced-precision" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/optimize/vulkan-reduced-precision" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/optimize/vulkan-reduced-precision" ><span class="devsite-nav-text" tooltip>Optimize with reduced precision</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>Memory Advice API</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/sdk/memory-advice/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/memory-advice/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/memory-advice/overview" ><span class="devsite-nav-text" tooltip>About the Memory Advice API</span></a></li><li class="devsite-nav-item"><a href="/games/sdk/memory-advice/start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/sdk/memory-advice/start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/sdk/memory-advice/start" ><span class="devsite-nav-text" tooltip>Get started with the Memory Advice 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>Game Dashboard</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/gamedashboard/aboutdashboard" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/gamedashboard/aboutdashboard" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/gamedashboard/aboutdashboard" ><span class="devsite-nav-text" tooltip>About the Game Dashboard</span></a></li><li class="devsite-nav-item"><a href="/games/gamedashboard/components" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/gamedashboard/components" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/gamedashboard/components" ><span class="devsite-nav-text" tooltip>Components</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>Publish</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/distribute/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/distribute/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/distribute/overview" ><span class="devsite-nav-text" tooltip>About distributing with Google Play</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>Google Play Games Services</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/overview" ><span class="devsite-nav-text" tooltip>About Google Play Games Services</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/start" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Play Console setup</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/console/setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/console/setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/console/setup" ><span class="devsite-nav-text" tooltip>Set up Play Games Services</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/console/enable-features" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/console/enable-features" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/console/enable-features" ><span class="devsite-nav-text" tooltip>Enable Play Games Services features</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/console/cloud-platform" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/console/cloud-platform" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/console/cloud-platform" ><span class="devsite-nav-text" tooltip>Manage project settings in Google Cloud</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/test" ><span class="devsite-nav-text" tooltip>Enable accounts for testing</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/console/publish" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/console/publish" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/console/publish" ><span class="devsite-nav-text" tooltip>Publish through Google Play Console</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>Game concepts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/signin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/signin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/signin" ><span class="devsite-nav-text" tooltip>Sign-in</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/recall" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/recall" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/recall" ><span class="devsite-nav-text" tooltip>Recall</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/next-gen-player-ids" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/next-gen-player-ids" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/next-gen-player-ids" ><span class="devsite-nav-text" tooltip>Next generation Player IDs</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/achievements" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/achievements" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/achievements" ><span class="devsite-nav-text" tooltip>Achievements</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/savedgames" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/savedgames" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/savedgames" ><span class="devsite-nav-text" tooltip>Saved games</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/leaderboards" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/leaderboards" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/leaderboards" ><span class="devsite-nav-text" tooltip>Leaderboards</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/events" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/events" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/events" ><span class="devsite-nav-text" tooltip>Events</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/friends" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/friends" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/friends" ><span class="devsite-nav-text" tooltip>Friends</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/app-shortcuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/app-shortcuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/app-shortcuts" ><span class="devsite-nav-text" tooltip>App shortcuts</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 the APIs</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>Java</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/android/android-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/android-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/android-start" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/migrate-to-v2" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/migrate-to-v2" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/migrate-to-v2" ><span class="devsite-nav-text" tooltip>Migrate from v1 to v2</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>Sign-in and privacy</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/android/android-signin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/android-signin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/android-signin" ><span class="devsite-nav-text" tooltip>Sign-in</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/server-access" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/server-access" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/server-access" ><span class="devsite-nav-text" tooltip>Enable server-side access</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/anti-piracy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/anti-piracy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/anti-piracy" ><span class="devsite-nav-text" tooltip>Anti-piracy</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 features</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/android/achievements" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/achievements" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/achievements" ><span class="devsite-nav-text" tooltip>Achievements</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/saved-games" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/saved-games" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/saved-games" ><span class="devsite-nav-text" tooltip>Saved games</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/leaderboards" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/leaderboards" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/leaderboards" ><span class="devsite-nav-text" tooltip>Leaderboards</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/events" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/events" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/events" ><span class="devsite-nav-text" tooltip>Events</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/friends" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/friends" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/friends" ><span class="devsite-nav-text" tooltip>Friends</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/stats" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/stats" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/stats" ><span class="devsite-nav-text" tooltip>Player stats</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/games/pgs/cpp/cpp-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/cpp/cpp-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/cpp/cpp-start" ><span class="devsite-nav-text" tooltip>Native SDK</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>Plugin for Unity</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/unity/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/unity/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/unity/overview" ><span class="devsite-nav-text" tooltip>About the Google Play Games plugin for Unity</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/unity/unity-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/unity/unity-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/unity/unity-start" ><span class="devsite-nav-text" tooltip>Set up Google Play Games for Unity</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 features</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/unity/achievements" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/unity/achievements" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/unity/achievements" ><span class="devsite-nav-text" tooltip>Achievements</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/unity/saved-games" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/unity/saved-games" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/unity/saved-games" ><span class="devsite-nav-text" tooltip>Saved games</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/unity/leaderboards" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/unity/leaderboards" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/unity/leaderboards" ><span class="devsite-nav-text" tooltip>Leaderboards</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/unity/events" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/unity/events" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/unity/events" ><span class="devsite-nav-text" tooltip>Events</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/unity/friends" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/unity/friends" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/unity/friends" ><span class="devsite-nav-text" tooltip>Friends</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/unity/stats" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/unity/stats" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/unity/stats" ><span class="devsite-nav-text" tooltip>Player stats</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/games/pgs/recall/recall-setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/recall/recall-setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/recall/recall-setup" ><span class="devsite-nav-text" tooltip>Recall API</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Publishing API</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/publishing/publishing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/publishing/publishing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/publishing/publishing" ><span class="devsite-nav-text" tooltip>About the Publishing API</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/publishing/publishing-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/publishing/publishing-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/publishing/publishing-start" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/publishing/upload-images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/publishing/upload-images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/publishing/upload-images" ><span class="devsite-nav-text" tooltip>Upload images</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/pgs/management/management" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/management/management" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/management/management" ><span class="devsite-nav-text" tooltip>Management API</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/android/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/android/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/android/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshooting</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>Review checklists and guidelines</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/games/pgs/quality" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/quality" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/quality" ><span class="devsite-nav-text" tooltip>Quality checklist</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/branding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/branding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/branding" ><span class="devsite-nav-text" tooltip>Branding guidelines</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/quota" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/quota" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/quota" ><span class="devsite-nav-text" tooltip>Quota and rate limits</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/data-collection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/data-collection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/data-collection" ><span class="devsite-nav-text" tooltip>Data disclosure requirements</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/terms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/terms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/terms" ><span class="devsite-nav-text" tooltip>Terms of service</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/games/pgs/downloads" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/downloads" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/downloads" ><span class="devsite-nav-text" tooltip>Downloads</span></a></li><li class="devsite-nav-item"><a href="/games/pgs/support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/pgs/support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/pgs/support" ><span class="devsite-nav-text" tooltip>Get support</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>Reference</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="https://developers.google.com/android/reference/com/google/android/gms/games/package-summary" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://developers.google.com/android/reference/com/google/android/gms/games/package-summary" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://developers.google.com/android/reference/com/google/android/gms/games/package-summary" ><span class="devsite-nav-text" tooltip>Android GMS API</span></a></li><li class="devsite-nav-item"><a href="/games/services/web/api/rest" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/services/web/api/rest" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/services/web/api/rest" ><span class="devsite-nav-text" tooltip>Web REST API</span></a></li><li class="devsite-nav-item"><a href="/games/services/cpp/api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/services/cpp/api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/services/cpp/api" ><span class="devsite-nav-text" tooltip>C++ API</span></a></li><li class="devsite-nav-item"><a href="/games/services/management/api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/services/management/api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/services/management/api" ><span class="devsite-nav-text" tooltip>Management API</span></a></li><li class="devsite-nav-item"><a href="/games/services/publishing/api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /games/services/publishing/api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/games/services/publishing/api" ><span class="devsite-nav-text" tooltip>Publishing API</span></a></li></ul></div></li></ul></div></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 > Gemini in Android Studio </span> </span> </li> <li class="devsite-nav-item"> <a href="/gemini-in-android" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn more" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Learn more </span> </a> </li> <li class="devsite-nav-item"> <a href="/studio" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get Android Studio" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Get Android Studio </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Get started </span> </span> </li> <li class="devsite-nav-item"> <a href="/get-started/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Hello world" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Hello world </span> </a> </li> <li class="devsite-nav-item"> <a href="/courses" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Training courses" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Training courses </span> </a> </li> <li class="devsite-nav-item"> <a href="/get-started/codelabs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tutorials" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Tutorials </span> </a> </li> <li class="devsite-nav-item"> <a href="/kotlin" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Kotlin for Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Kotlin for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="https://play.google.com/console/about/guides/monetize/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Monetization with Play ↗️" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Monetization with Play ↗️ </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Extend by device </span> </span> </li> <li class="devsite-nav-item"> <a href="/adaptive-apps" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Adaptive apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Adaptive apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/wear" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Wear OS </span> </a> </li> <li class="devsite-nav-item"> <a href="/cars" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android for Cars" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android for Cars </span> </a> </li> <li class="devsite-nav-item"> <a href="/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android TV" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android TV </span> </a> </li> <li class="devsite-nav-item"> <a href="/chrome-os" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ChromeOS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > ChromeOS </span> </a> </li> <li class="devsite-nav-item"> <a href="/multi-device-development" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cross-device SDK" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cross-device SDK </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build by category </span> </span> </li> <li class="devsite-nav-item"> <a href="/games" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Games" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Games </span> </a> </li> <li class="devsite-nav-item"> <a href="/media" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Camera &amp; Media" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Camera &amp; Media </span> </a> </li> <li class="devsite-nav-item"> <a href="/social-and-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Social &amp; messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Social &amp; messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/health-and-fitness" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Health &amp; Fitness" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Health &amp; Fitness </span> </a> </li> <li class="devsite-nav-item"> <a href="/productivity" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Productivity" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Productivity </span> </a> </li> <li class="devsite-nav-item"> <a href="/work/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Enterprise apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Enterprise apps </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Get the latest </span> </span> </li> <li class="devsite-nav-item"> <a href="/latest-updates" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Latest updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Latest updates </span> </a> </li> <li class="devsite-nav-item"> <a href="/latest-updates/experimental" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Experimental updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Experimental updates </span> </a> </li> <li class="devsite-nav-item"> <a href="/studio/preview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Studio preview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android Studio preview </span> </a> </li> <li class="devsite-nav-item"> <a href="/jetpack/androidx/versions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Jetpack &amp; Compose libraries" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Jetpack &amp; Compose libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/wearables/versions/4" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS preview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Wear OS preview </span> </a> </li> <li class="devsite-nav-item"> <a href="/design-for-safety/privacy-sandbox" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Privacy Sandbox" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Privacy Sandbox </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Design &amp; Plan" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > UI Design </span> </span> </li> <li class="devsite-nav-item"> <a href="/design/ui" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Design for Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Design for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/mobile" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Mobile" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Mobile </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/large-screens" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Large screens (e.g., tablets)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Large screens (e.g., tablets) </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/widget" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Widgets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Widgets </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/wear" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Wear OS </span> </a> </li> <li class="devsite-nav-item"> <a href="/design/ui/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android TV" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android TV </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Architecture </span> </span> </li> <li class="devsite-nav-item"> <a href="/topic/architecture/intro" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Introduction" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Introduction </span> </a> </li> <li class="devsite-nav-item"> <a href="/topic/libraries/view-binding" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Libraries" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/navigation/navigation-principles" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Navigation" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Navigation </span> </a> </li> <li class="devsite-nav-item"> <a href="/topic/modularization" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Modularization" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Modularization </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/testing/fundamentals" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Testing" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Testing </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Quality </span> </span> </li> <li class="devsite-nav-item"> <a href="/quality" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/quality/core-value" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Core value" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Core value </span> </a> </li> <li class="devsite-nav-item"> <a href="/quality/user-experience" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: User experience" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > User experience </span> </a> </li> <li class="devsite-nav-item"> <a href="/quality/technical" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Technical quality" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Technical quality </span> </a> </li> <li class="devsite-nav-item"> <a href="/quality/privacy-and-security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Security </span> </span> </li> <li class="devsite-nav-item"> <a href="/security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/privacy-and-security/about" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Privacy" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Privacy </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Identity" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Identity </span> </a> </li> <li class="devsite-nav-item"> <a href="/security/fraud-prevention" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Fraud prevention" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Fraud prevention </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build for Billions </span> </span> </li> <li class="devsite-nav-item"> <a href="/build-for-billions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/quality-guidelines/build-for-billions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: About new markets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > About new markets </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/topics/androidgo" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android (Go edition)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android (Go edition) </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Develop" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build AI experiences </span> </span> </li> <li class="devsite-nav-item"> <a href="/ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get started" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Get started </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Core areas </span> </span> </li> <li class="devsite-nav-item"> <a href="/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> </a> </li> <li class="devsite-nav-item"> <a href="/quick-guides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Try Quick Guidesᵇᵉᵗᵃ" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Try Quick Guidesᵇᵉᵗᵃ </span> </a> </li> <li class="devsite-nav-item"> <a href="/develop/ui" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: User interfaces" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > User interfaces </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/topics/permissions/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Permissions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Permissions </span> </a> </li> <li class="devsite-nav-item"> <a href="/develop/background-work" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Background work" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Background work </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/topics/data" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data and files" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data and files </span> </a> </li> <li class="devsite-nav-item"> <a href="/develop#core-areas" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: All core areas ⤵️" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > All core areas ⤵️ </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Tools and workflow </span> </span> </li> <li class="devsite-nav-item"> <a href="/studio/write" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Write and debug code" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Write and debug code </span> </a> </li> <li class="devsite-nav-item"> <a href="/build/gradle-build-overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build projects" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build projects </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/testing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test your app" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Test your app </span> </a> </li> <li class="devsite-nav-item"> <a href="/topic/performance/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Performance </span> </a> </li> <li class="devsite-nav-item"> <a href="/tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Command-line tools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Command-line tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference/tools/gradle-api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gradle plugin API" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gradle plugin API </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Device tech </span> </span> </li> <li class="devsite-nav-item"> <a href="/guide/topics/large-screens/get-started-with-large-screens" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Large screens (e.g., tablets)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Large screens (e.g., tablets) </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/wearables" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Wear OS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Wear OS </span> </a> </li> <li class="devsite-nav-item"> <a href="/health-and-fitness/guides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Health" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android Health </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide/topics/connectivity/cross-device-sdk/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cross-device SDK" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cross-device SDK </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/cars" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android for Cars" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android for Cars </span> </a> </li> <li class="devsite-nav-item"> <a href="/training/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android TV" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android TV </span> </a> </li> <li class="devsite-nav-item"> <a href="/chrome-os/intro" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ChromeOS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > ChromeOS </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Libraries </span> </span> </li> <li class="devsite-nav-item"> <a href="/reference/packages" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android platform" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android platform </span> </a> </li> <li class="devsite-nav-item"> <a href="/jetpack/androidx/explorer" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Jetpack libraries" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Jetpack libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="/jetpack/androidx/releases/compose" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compose libraries" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compose libraries </span> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/android/reference/packages" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play services ↗️" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Play services ↗️ </span> </a> </li> <li class="devsite-nav-item"> <a href="https://play.google.com/sdks" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play SDK index ↗️" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Play SDK index ↗️ </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"><style> /* Styles inlined from /assets/css/agdk.css */ /* Cleans up the look of the download tables. */ .dac-agdk-page .download td { vertical-align: middle } /* draws the cute AGDK logo in the header */ :root { --agdk-icon-size: 40px; --dac-color-gray-charcoal: #414141; --teal-700: #00796b; --teal-50: #e0f2f1; } .dac-agdk:before { content: ""; height: var(--agdk-icon-size); width: var(--agdk-icon-size) } .dac-agdk:before { background: url(/images/games/agdk/agdk-logo.svg) 50%/var(--agdk-icon-size) no-repeat } .dac-agdk a { text-decoration: underline } .dac-agdk a:focus,.dac-agdk a:hover { text-decoration: none } .dac-agdk a:focus { background: rgba(26,115,232,.1); border-radius: 2px; margin: -4px; padding: 4px } div.dac-agdk,span.dac-agdk { -webkit-box-align: center; -webkit-align-items: center; -moz-box-align: center; -ms-flex-align: center; align-items: center; color: var(--dac-color-gray-charcoal); display: -webkit-inline-box; display: -webkit-inline-flex; display: -moz-inline-box; display: -ms-inline-flexbox; display: inline-flex; font-size: 14px; font-weight: 700; margin: 0; vertical-align: text-bottom } [dir=ltr] div.dac-agdk:before,[dir=ltr] span.dac-agdk:before { margin-right: 4px; } [dir=rtl] div.dac-agdk:before,[dir=rtl] span.dac-agdk:before { margin-left: 4px } [dir=ltr] div.dac-agdk { padding-left: 16px } [dir=rtl] div.dac-agdk { padding-right: 16px } span.dac-agdk { position: relative } [dir=ltr] span.dac-agdk { padding-left: 12px } [dir=rtl] span.dac-agdk { padding-right: 12px } span.dac-agdk:after { background: var(--dac-color-gray-charcoal); content: ""; display: block; height: 70%; margin: 0; position: absolute; top: 15%; width: 2px } [dir=ltr] span.dac-agdk:after { left: 0 } [dir=rtl] span.dac-agdk:after { right: 0 } h2 span.dac-agdk { margin-bottom: -6px } h3 span.dac-agdk,h4 span.dac-agdk { margin-bottom: -8px } h4 span.dac-agdk>span { position: relative; top: 3px } aside.dac-agdk,aside.dac-agdk :link,aside.dac-agdk :visited { background: var(--teal-50); color: var(--teal-700) } aside.dac-agdk :focus,aside.dac-agdk :hover { background: hsla(0,0%,100%,.7) } aside.dac-agdk code { background: 0; color: var(--teal-700) } aside.dac-agdk:before { margin: -8px 0 0 } [dir=ltr] aside.dac-agdk:before { margin-left: -44px } [dir=rtl] aside.dac-agdk:before { margin-right: -44px } </style> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developer.android.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Android Developers" > Android Developers </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developer.android.com/get-started" 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="" > Essentials </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developer.android.com/games" 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="Android game development" > Games dev center </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developer.android.com/games/guides" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Guides </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <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 devsite-no-page-title"> <h1 id="frame_pacing_library" class="page-title" data-text="Frame Pacing Library   Part of Android Game Development Kit." tabindex="-1">Frame Pacing Library   <span class="dac-agdk"><span>Part of <a href="/games/agdk/overview">Android Game Development Kit</a>.</span></span></h1> <p>The Android Frame Pacing library, also known as Swappy, is part of the <a href="/games/agdk#game-libraries">AGDK Libraries</a>. It helps OpenGL and Vulkan games achieve smooth rendering and correct frame pacing on Android. This document defines frame pacing, describes situations where frame pacing is needed, and shows how the library addresses these situations. If you want to jump directly to implementing frame pacing in your game, see <a href="#integrate-next-step">Next step</a>.</p> <h2 id="background" data-text="Background" tabindex="-1">Background</h2> <p><em>Frame pacing</em> is the synchronization of a game’s logic and rendering loop with an OS’s display subsystem and the underlying display hardware. The Android display subsystem was designed to avoid visual artifacts (known as <em>tearing</em>) that can occur when the display hardware switches to a new frame part-way through an update. To avoid these artifacts, the display subsystem does the following:</p> <ul> <li>Buffers past frames internally</li> <li>Detects late frame submissions</li> <li>Repeats the display of past frames when late frames are detected</li> </ul> <p>A game informs <a href="https://source.android.com/devices/graphics/surfaceflinger-windowmanager">SurfaceFlinger</a>, the compositor within the display subsystem, that it has submitted all the draw calls needed for a frame (by calling <code translate="no" dir="ltr">eglSwapBuffers</code> or <code translate="no" dir="ltr">vkQueuePresentKHR</code>). SurfaceFlinger signals availability of a frame to the display hardware using a latch. The display hardware then shows the given frame. The display hardware ticks at a constant rate, for example 60 Hz, and if there is no new frame when the hardware needs one, the hardware displays the previous frame again.</p> <p>Inconsistent frame times often occur when a game render loop renders at a different rate than the native display hardware. If a game running at 30 FPS attempts to render on a device that natively supports 60 FPS, the game render loop doesn&#39;t realize that a repeated frame remains on the screen for an extra 16 milliseconds. This disconnect usually creates substantial inconsistency in frame times, such as: 49 milliseconds, 16 milliseconds, 33 milliseconds. Overly complex scenes further compound this problem, as they cause missed frames to occur.</p> <h2 id="non-optimal-solutions" data-text="Non-optimal solutions" tabindex="-1">Non-optimal solutions</h2> <p>The following solutions for frame pacing have been employed by games in the past and typically result in inconsistent frame times and increased input latency.</p> <h3 id="submit_frames_as_quickly_as_the_rendering_api_allows" data-text="Submit frames as quickly as the rendering API allows" tabindex="-1">Submit frames as quickly as the rendering API allows</h3> <p>This approach ties a game to variable SurfaceFlinger activity and introduces an extra frame of latency. The display pipeline contains a queue of frames, typically of size 2, which fills up if the game is trying to present frames too quickly. With no more room in the queue, the game loop (or at least the rendering thread) is blocked by an OpenGL or Vulkan call. The game is then forced to wait for the display hardware to show a frame, and this back-pressure synchronizes the two components. This situation is known as <em>buffer-stuffing</em> or <a href="/games/develop/gameloops#stuffing"><em>queue-stuffing</em></a>. The renderer process doesn&#39;t realize what&#39;s going on, so framerate inconsistency gets worse. If the game samples input before the frame, input latency gets worse.</p> <h3 id="use_android_choreographer_by_itself" data-text="Use Android Choreographer by itself" tabindex="-1">Use Android Choreographer by itself</h3> <p>Games also use Android Choreographer for synchronization. This component, available in Java from API 16 and in C++ from API 24, delivers regular ticks at the same frequency as the display subsystem. There are still subtleties as to when this tick is delivered relative to the actual hardware VSYNC, and these offsets vary by device. Buffer-stuffing may still occur for long frames.</p> <h2 id="advantages" data-text="Advantages of the Frame Pacing library" tabindex="-1">Advantages of the Frame Pacing library</h2> <p>The Frame Pacing library uses Android Choreographer for synchronization and deals with the variability in the tick delivery for you. It uses presentation timestamps to make sure frames are presented at the proper time and sync fences to avoid buffer stuffing. The library uses the <a href="/ndk/reference/group/choreographer">NDK Choreographer</a> if it is available and falls back to the <a href="/reference/android/view/Choreographer">Java Choreographer</a> if it is not.</p> <p>The library handles multiple refresh rates if they are supported by the device, which gives a game more flexibility in presenting a frame. For example, for a device that supports a 60 Hz refresh rate as well as 90 Hz, a game that cannot produce 60 frames per second can drop to 45 FPS instead of 30 FPS to remain smooth. The library detects the expected game frame rate and auto-adjusts frame presentation times accordingly. The Frame Pacing library also improves battery life because it avoids unnecessary display updates. For example, if a game is rendering at 60 FPS but the display is updating at 120 Hz, the screen is updated twice for every frame. The Frame Pacing library avoids this by setting the refresh rate to the value supported by the device that&#39;s closest to the target frame rate.</p> <h2 id="how-it-works" data-text="How it works" tabindex="-1">How it works</h2> <p>The following sections show how the Frame Pacing library deals with long and short game frames in order to achieve correct frame pacing.</p> <h3 id="correct_frame_pacing_at_30_hz" data-text="Correct frame pacing at 30 Hz" tabindex="-1">Correct frame pacing at 30 Hz</h3> <p>When rendering at 30 Hz on a 60 Hz device, the ideal situation on Android is shown in figure 1. SurfaceFlinger latches new graphic buffers, if present (NB in the diagram indicates &quot;no buffer&quot; present and the previous one is repeated).</p> <p><img src="/static/images/games/frame-pacing/frame-pacing-ideal.svg" alt="Ideal frame pacing at 30 Hz on a 60 Hz device" class="screenshot"> </p> <p><strong>Figure 1.</strong> Ideal frame pacing at 30 Hz on a 60 Hz device</p> <h3 id="short_game_frames_lead_to_stuttering" data-text="Short game frames lead to stuttering" tabindex="-1">Short game frames lead to stuttering</h3> <p>On most modern devices, game engines rely on the platform choreographer delivering ticks to drive the submission of frames. However, there is still the possibility for poor frame pacing due to short frames, as seen in figure 2. Short frames followed by long frames are perceived by the player as stuttering.</p> <p><img src="/static/images/games/frame-pacing/frame-pacing-short-frames.svg" alt="Short game frames" class="screenshot"> </p> <p><strong>Figure 2.</strong> Short game frame C causes frame B to present only one frame, followed by multiple C frames</p> <p>The Frame Pacing library solves this by using presentation timestamps. The library uses the presentation timestamp extensions <a href="https://www.khronos.org/registry/EGL/extensions/ANDROID/EGL_ANDROID_presentation_time.txt" class="external-link"><code translate="no" dir="ltr">EGL_ANDROID_presentation_time</code></a> and <a href="https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VK_GOOGLE_display_timing.html" class="external-link"><code translate="no" dir="ltr">VK_GOOGLE_display_timing</code></a> so that frames are not presented early, as seen in figure 3.</p> <p><img src="/static/images/games/frame-pacing/frame-pacing-timestamps.svg" alt="Presentation timestamps" class="screenshot"> </p> <p><strong>Figure 3.</strong> Game frame B presented twice for a smoother display</p> <h3 id="long_frames_lead_to_stuttering_and_latency" data-text="Long frames lead to stuttering and latency" tabindex="-1">Long frames lead to stuttering and latency</h3> <p>When the display workload takes longer than the application workload, extra frames are added to a queue. This leads, once again, to stuttering and may also lead to an extra frame of latency due to buffer-stuffing (see figure 4). The library both removes the stuttering and the extra frame of latency.</p> <p><img src="/static/images/games/frame-pacing/frame-pacing-long-frames.svg" alt="Long game frames" class="screenshot"> </p> <p><strong>Figure 4.</strong> Long frame B gives incorrect pacing for 2 frames—A and B</p> <p>The library solves this by using sync fences (<a href="https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_fence_sync.txt" class="external-link"><code translate="no" dir="ltr">EGL_KHR_fence_sync</code></a> and <a href="https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFence.html" class="external-link"><code translate="no" dir="ltr">VkFence</code></a>) to inject waits into the application that allow the display pipeline to catch up, rather than allowing back pressure to build up. Frame A still presents an extra frame, but frame B now presents correctly, as seen in figure 5.</p> <p><img src="/static/images/games/frame-pacing/frame-pacing-waits.svg" alt="Waits added into application layer" class="screenshot"> </p> <p><strong>Figure 5.</strong> Frames C and D wait to present</p> <h3 id="supported_operating_modes" data-text="Supported operating modes" tabindex="-1">Supported operating modes</h3> <p>You can configure the Frame Pacing library to operate in one of the three following modes:</p> <ul> <li>Auto mode off + Pipeline</li> <li>Auto mode on + Pipeline</li> <li>Auto mode on + Auto pipeline mode (Pipeline/Non-pipeline)</li> </ul> <h4 id="recommended_mode" data-text="Recommended mode" tabindex="-1">Recommended mode</h4> <p>You can experiment with auto-mode and pipeline modes, but you start by turning them off and including the following after initializing Swappy:</p> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr"> swappyAutoSwapInterval(false); swappyAutoPipelineMode(false); swappyEnableStats(false); swappySwapIntervalNS(1000000000L/yourPreferredFrameRateInHz); </code></pre> <h4 id="pipeline_mode" data-text="Pipeline mode" tabindex="-1">Pipeline mode</h4> <p>To coordinate engine workloads, the library typically uses a pipelining model which separates the CPU and GPU workloads across VSYNC boundaries.</p> <p><img src="/static/images/games/frame-pacing/pipeline-mode.svg" alt="Pipeline mode" class="screenshot"> </p> <p><strong>Figure 6.</strong> Pipeline mode</p> <h4 id="non-pipeline_mode" data-text="Non-pipeline mode" tabindex="-1">Non-pipeline mode</h4> <p>In general, this approach results in lower, more predictable input-screen latency. In cases where a game has a very low frame time, both the CPU and GPU workloads may fit into a single swap interval. In this case, a non-pipelined approach would actually deliver lower input-screen latency.</p> <p><img src="/static/images/games/frame-pacing/non-pipeline-mode.svg" alt="Non-pipeline mode" class="screenshot"> </p> <p><strong>Figure 7.</strong> Non-pipeline mode</p> <h4 id="auto_mode" data-text="Auto mode" tabindex="-1">Auto mode</h4> <p>Most games don’t know how to choose the swap interval, which is the duration for which each frame is presented (for example, 33.3 ms for 30 Hz). On some devices, a game can render at 60 FPS while on another it may need to drop to a lower value. Auto mode measures CPU and GPU times in order to do the following:</p> <ul> <li><strong>Automatically select swap intervals</strong>: Games which deliver 30 Hz in some scenes and 60 Hz in others can allow the library to adjust this interval dynamically.</li> <li><strong>Deactivate pipelining for ultra-fast frames</strong>: Delivers optimal input-screen latency in all cases.</li> </ul> <h3 id="multiple_refresh_rates" data-text="Multiple refresh rates" tabindex="-1">Multiple refresh rates</h3> <p>Devices that support multiple refresh rates provide higher flexibility in choosing a swap interval that looks smooth:</p> <ul> <li><strong>On 60 Hz devices</strong>: 60 FPS / 30 FPS / 20FPS</li> <li><strong>On 60 Hz + 90 Hz devices</strong>: 90 FPS / 60 FPS / 45 FPS / 30 FPS</li> <li><strong>On 60 Hz + 90 Hz + 120 Hz devices</strong>: 120 FPS / 90 FPS / 60 FPS / 45 FPS / 40 FPS / 30 FPS</li> </ul> <p>The library chooses the refresh rate that best matches the actual rendering duration of a game’s frames, giving a better visual experience.</p> <p>For more information on multiple refresh rate frame pacing, see the <a href="https://android-developers.googleblog.com/2020/04/high-refresh-rate-rendering-on-android.html">High refresh rate rendering on Android</a> blog post.</p> <h3 id="frame_stats" data-text="Frame stats" tabindex="-1">Frame stats</h3> <p>The Frame Pacing library offers the following statistics for debugging and profiling purposes:</p> <ul> <li>A histogram of the number of screen refreshes a frame waited in the compositor queue after rendering was completed.</li> <li>A histogram of the number of screen refreshes passed between the requested presentation time and the actual present time.</li> <li>A histogram of the number of screen refreshes passed between two consecutive frames.</li> <li>A histogram of the number of screen refreshes passed between the start of CPU work for this frame and the actual present time.</li> </ul> <h2 id="integrate-next-step" data-text="Next step" tabindex="-1">Next step</h2> <p>See either of the following guides to integrate the Android Frame Pacing library into your game:</p> <ul> <li><a href="/games/sdk/frame-pacing/opengl">Integrate Android Frame Pacing into your OpenGL renderer</a></li> <li><a href="/games/sdk/frame-pacing/vulkan">Integrate Android Frame Pacing into your Vulkan renderer</a></li> </ul> <aside class="note"><strong>Note:</strong><span> Unity has <a href="https://unity3d.com/unity/alpha/2019.2.0a6" class="external">integrated Android Frame Pacing</a> into their engine. To enable this feature in Unity 2019.2 or higher, check the <strong>Optimized Frame Pacing</strong> checkbox under <strong>Project Settings &gt; Player &gt; Settings for Android &gt; Resolution and Presentation</strong>.</span></aside> <devsite-hats-survey class="nocontent" hats-id="VxqvKSur40kxBYCLVTd0SSGykbno" listnr-id="5207477"></devsite-hats-survey> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Content and code samples on this page are subject to the licenses described in the <a href="/license">Content License</a>. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.</p> <p>Last updated 2024-06-03 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-06-03 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="//x.com/AndroidDev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer X Promo" > <picture> <source class="devsite-dark-theme" srcset="https://developer.android.com/_static/android/images/logo-x_dt.svg" media="(prefers-color-scheme: dark)" loading="lazy" alt="X"> <img class="devsite-footer-promo-icon" src="/_static/android/images/logo-x.svg" loading="lazy" alt="X"> </picture> <span class="devsite-footer-promo-label"> X </span> </a> <div class="devsite-footer-promo-description">Follow @AndroidDev on X</div> </li> <li class="devsite-footer-promo"> <a href="//www.youtube.com/user/androiddevelopers" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer YouTube Promo" > <picture> <source class="devsite-dark-theme" srcset="https://developer.android.com/_static/android/images/logo-youtube_dt.svg" media="(prefers-color-scheme: dark)" loading="lazy" alt="YouTube"> <img class="devsite-footer-promo-icon" src="//www.gstatic.com/images/icons/material/product/2x/youtube_48dp.png" loading="lazy" alt="YouTube"> </picture> <span class="devsite-footer-promo-label"> YouTube </span> </a> <div class="devsite-footer-promo-description">Check out Android Developers on YouTube</div> </li> <li class="devsite-footer-promo"> <a href="//www.linkedin.com/showcase/androiddev" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer LinkedIn Promo" > <picture> <source class="devsite-dark-theme" srcset="https://developer.android.com/_static/android/images/logo-linkedin_dt.svg" media="(prefers-color-scheme: dark)" loading="lazy" alt="LinkedIn"> <img class="devsite-footer-promo-icon" src="/_static/android/images/logo-linkedin.svg" loading="lazy" alt="LinkedIn"> </picture> <span class="devsite-footer-promo-label"> LinkedIn </span> </a> <div class="devsite-footer-promo-description">Connect with the Android Developers community on LinkedIn</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">More Android</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//www.android.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.android.com/enterprise/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Android for Enterprise </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.android.com/security-center/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//source.android.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Source </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/news" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > News </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//android-developers.googleblog.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/podcasts" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > Podcasts </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Discover</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/games" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Gaming </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/ml" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Machine Learning </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/health-and-fitness" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Health & Fitness </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/media" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Camera & Media </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/privacy" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Privacy </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/training/connectivity/5g" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > 5G </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Android Devices</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/large-screens" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Large screens </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/wear" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Wear OS </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/chrome-os" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > ChromeOS devices </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/cars" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Android for cars </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/tv" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Android TV </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Releases</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/15" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android 15 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/14" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Android 14 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/13" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Android 13 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/12" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Android 12 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/11" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Android 11 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/10" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Android 10 </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/versions/pie" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > Pie </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Documentation and Downloads</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/studio/intro" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android Studio guide </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/guide" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Developers guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/reference" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > API reference </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/studio" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Download Studio </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/ndk" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Android NDK </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//issuetracker.google.com/issues/new?component=190923&amp;template=841312" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Report platform bug </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//issuetracker.google.com/issues/new?component=192697" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Report documentation bug </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//support.google.com/googleplay/android-developer" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Google Play support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://g.co/userresearch/androiddeveloperfooter" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Join research studies </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup-google-for-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//developers.google.com/products/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/license" data-category="Site-Wide Custom Events" data-label="Footer License link" > License </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/distribute/marketing-tools/brand-guidelines" data-category="Site-Wide Custom Events" data-label="Footer Brand guidelines link" > Brand guidelines </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Get news and tips by email</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/updates" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [{&#34;id&#34;: &#34;G-QFRN08RN6E&#34;, &#34;purpose&#34;: 0}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-QFRN08RN6E&#34;, &#34;purpose&#34;: 0}], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-KMSWPCJ&#34;, &#34;purpose&#34;: 0}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Android game development&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;android&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <android-fully-clickable target=" .android-case-study .devsite-landing-row-item, .android-grouped-resources .devsite-landing-row-item, .android-grouped-resources-primary .devsite-landing-row-item, .android-grouped-resources-secondary .devsite-landing-row-item, .android-guide-cards .devsite-landing-row-item, .android-illustrated-resources-index .devsite-landing-row-item, .android-illustrated-resources-primary .devsite-landing-row-item, .android-illustrated-resources-secondary .devsite-landing-row-item, .android-illustrated-resources-secondary-small .devsite-landing-row-item, .android-illustrated-resources-tertiary .devsite-landing-row-item, .android-illustrated-resources-tertiary-small .devsite-landing-row-item, .android-promo .devsite-landing-row-item, .android-quick-link, .android-samples .devsite-card-wrapper, .fully-clickable" watch=".android-samples, devsite-content"></android-fully-clickable> <script nonce="NWiYcbOIMBxyrVt4/+hpZC6ltNSHgI"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/js/app_loader.js', '[3,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android","https://android-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/android/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/favicon.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/android/images/lockup.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500,600,700|Google+Sans+Text:400,400italic,500,500italic,600,600italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developer.android.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["CloudShell__cloud_code_overflow_menu","Search__enable_suggestions_from_borg","Cloud__enable_cloudx_ping","MiscFeatureFlags__developers_footer_image","Search__enable_page_map","Cloud__enable_cloud_dlp_service","Profiles__enable_developer_profiles_callout","MiscFeatureFlags__enable_variable_operator","EngEduTelemetry__enable_engedu_telemetry","Profiles__enable_awarding_url","DevPro__enable_developer_subscriptions","MiscFeatureFlags__enable_explain_this_code","Profiles__enable_page_saving","Cloud__enable_legacy_calculator_redirect","Profiles__enable_profile_collections","Cloud__enable_llm_concierge_chat","MiscFeatureFlags__enable_dark_theme","Search__enable_ai_search_summaries","Profiles__enable_release_notes_notifications","DevPro__enable_cloud_innovators_plus","MiscFeatureFlags__enable_project_variables","MiscFeatureFlags__developers_footer_dark_image","Significatio__enable_by_tenant","Profiles__enable_complete_playlist_endpoint","MiscFeatureFlags__enable_firebase_utm","Search__enable_ai_eligibility_checks","TpcFeatures__enable_required_headers","BookNav__enable_tenant_cache_key","Profiles__enable_dashboard_curated_recommendations","Analytics__enable_clearcut_logging","MiscFeatureFlags__emergency_css","Profiles__enable_recognition_badges","MiscFeatureFlags__enable_view_transitions","Cloud__enable_free_trial_server_call","Cloud__enable_cloud_shell_fte_user_flow","Cloud__enable_cloud_shell","Concierge__enable_pushui","Profiles__enable_completecodelab_endpoint","Cloud__enable_cloudx_experiment_ids","Profiles__require_profile_eligibility_for_signin","Cloud__enable_cloud_facet_chat","Experiments__reqs_query_experiments","CloudShell__cloud_shell_button","TpcFeatures__enable_mirror_tenant_redirects","Search__enable_dynamic_content_confidential_banner","Profiles__enable_public_developer_profiles"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.googleapis.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.googleapis.com",2,4,null,"https://developerprofiles-pa.googleapis.com",[3,"android","Android Developers","developer.android.com",null,"android-dot-devsite-v2-prod.appspot.com",null,null,[null,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations"],null,null,null,[1,null,1],[1,1,null,1,1]],null,[18,null,null,null,null,null,"/images/lockup.svg","/images/touchicon-180.png",null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,28,29,37,43],null,[[null,null,1],[1,1]],[[null,null,null,null,null,null,null,[["G-QFRN08RN6E"],null,null,[["G-QFRN08RN6E",1]]],null,null,null,null,1],null,[[2,2],[1,1]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"android.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10