CINXE.COM
Cuttlefish virtual Android devices | Android Open Source Project
<!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 Open Source Project"> <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/androidsource/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=Roboto:300,400,400italic,500,500italic,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/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/androidsource/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/androidsource/images/favicon.svg"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/androidsource/images/touchicon-180.png"><link rel="canonical" href="https://source.android.com/docs/devices/cuttlefish"><link rel="search" type="application/opensearchdescription+xml" title="Android Open Source Project" href="https://source.android.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://source.android.com/docs/devices/cuttlefish" /><link rel="alternate" hreflang="x-default" href="https://source.android.com/docs/devices/cuttlefish" /><link rel="alternate" hreflang="ar" href="https://source.android.com/docs/devices/cuttlefish?hl=ar" /><link rel="alternate" hreflang="bn" href="https://source.android.com/docs/devices/cuttlefish?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://source.android.com/docs/devices/cuttlefish?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://source.android.com/docs/devices/cuttlefish?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://source.android.com/docs/devices/cuttlefish?hl=fa" /><link rel="alternate" hreflang="fr" href="https://source.android.com/docs/devices/cuttlefish?hl=fr" /><link rel="alternate" hreflang="de" href="https://source.android.com/docs/devices/cuttlefish?hl=de" /><link rel="alternate" hreflang="he" href="https://source.android.com/docs/devices/cuttlefish?hl=he" /><link rel="alternate" hreflang="hi" href="https://source.android.com/docs/devices/cuttlefish?hl=hi" /><link rel="alternate" hreflang="id" href="https://source.android.com/docs/devices/cuttlefish?hl=id" /><link rel="alternate" hreflang="it" href="https://source.android.com/docs/devices/cuttlefish?hl=it" /><link rel="alternate" hreflang="ja" href="https://source.android.com/docs/devices/cuttlefish?hl=ja" /><link rel="alternate" hreflang="ko" href="https://source.android.com/docs/devices/cuttlefish?hl=ko" /><link rel="alternate" hreflang="pl" href="https://source.android.com/docs/devices/cuttlefish?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://source.android.com/docs/devices/cuttlefish?hl=pt-br" /><link rel="alternate" hreflang="pt" href="https://source.android.com/docs/devices/cuttlefish?hl=pt" /><link rel="alternate" hreflang="ru" href="https://source.android.com/docs/devices/cuttlefish?hl=ru" /><link rel="alternate" hreflang="es" href="https://source.android.com/docs/devices/cuttlefish?hl=es" /><link rel="alternate" hreflang="es-419" href="https://source.android.com/docs/devices/cuttlefish?hl=es-419" /><link rel="alternate" hreflang="th" href="https://source.android.com/docs/devices/cuttlefish?hl=th" /><link rel="alternate" hreflang="tr" href="https://source.android.com/docs/devices/cuttlefish?hl=tr" /><link rel="alternate" hreflang="vi" href="https://source.android.com/docs/devices/cuttlefish?hl=vi" /><title>Cuttlefish virtual Android devices | Android Open Source Project</title> <meta property="og:title" content="Cuttlefish virtual Android devices | Android Open Source Project"><meta property="og:url" content="https://source.android.com/docs/devices/cuttlefish"><meta property="og:locale" content="en"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Cuttlefish virtual Android devices" } </script> <meta name="keywords" content="cloudandandroid, cloudandroid"> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="androidsource-theme" type="article" layout="docs" display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <a href="#main-content" class="skip-link button"> Skip to main content </a> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner" keep-tabs-visible> <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="androidOpenSourceProject" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/androidsource/images/lockup.svg" class="devsite-site-logo" alt="Android Open Source Project"> </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-active "> <a href="https://source.android.com/docs" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://source.android.com/docs" track-type="nav" track-metadata-position="nav - docs" track-metadata-module="primary nav" aria-label="Docs, selected" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" > Docs </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Docs" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs" track-metadata-position="nav - docs" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column android-source-tabs-dropdown-column-small"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>What's new?</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/whatsnew/release-notes" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/whatsnew/release-notes" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Release notes </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/whatsnew/latest-security-bulletins" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/whatsnew/latest-security-bulletins" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Latest security bulletins </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/whatsnew/latest-cdd" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/whatsnew/latest-cdd" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Latest Compatibility Definition Document (CDD) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/whatsnew/site-updates" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/whatsnew/site-updates" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Site updates </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Getting Started</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/about" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/about" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> About </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/start" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/start" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Start </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/download" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/download" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Download </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/build" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/build" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Build </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/test" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/test" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Test </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/create/coding-tasks" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/create/coding-tasks" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Create </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/contribute" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/contribute" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Contribute </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/community/cofc" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/community/cofc" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Community </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/setup/reference" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/setup/reference" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Tools, build, and related reference </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Security</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/overview" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/overview" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/bulletin" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/bulletin" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Bulletins </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/features" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/features" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Features </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/test/fuzz-sanitize" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/test/fuzz-sanitize" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Testing </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/security/best-practices" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/security/best-practices" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="what's new?" tooltip > <div class="devsite-nav-item-title"> Best Practices </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-source-tabs-dropdown-column-small"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Core Topics</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/architecture" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/architecture" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Architecture </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/audio" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/audio" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Audio </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/camera" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/camera" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Camera </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/connect" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/connect" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Connectivity </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/data" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/data" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Data </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/display" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/display" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Display </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/fonts/custom-font-fallback" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/fonts/custom-font-fallback" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Fonts </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/graphics" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/graphics" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Graphics </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/interaction" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/interaction" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Interaction </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/media" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/media" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Media </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/perf" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/perf" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Performance </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/permissions" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/permissions" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Permissions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/power" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/power" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Power </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/runtime" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/runtime" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Runtime </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/settings" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/settings" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Settings </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/storage" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/storage" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Storage </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/tests" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/tests" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Tests </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/ota" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/ota" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Updates </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/core/virtualization" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/core/virtualization" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="core topics" tooltip > <div class="devsite-nav-item-title"> Virtualization </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column android-source-tabs-dropdown-column-small"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Compatibility</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/compatibility/cdd" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/compatibility/cdd" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Compatibility Definition Document (CDD) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/compatibility/cts" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/compatibility/cts" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Compatibility Test Suite (CTS) </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Android Devices</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/devices/cuttlefish" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/devices/cuttlefish" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Cuttlefish </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/devices/admin" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/devices/admin" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Enterprise </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/devices/tv" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/devices/tv" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> TV </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Automotive</li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/start/what_automotive" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/start/what_automotive" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Get Started </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/guidelines" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/guidelines" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Guidelines for Development </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/dev-tools" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/dev-tools" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Development Tools </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/tools" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/tools" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Testing Tools and Infrastructure </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/docs/automotive/start/releases" track-type="nav" track-metadata-eventdetail="https://source.android.com/docs/automotive/start/releases" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Release Details </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Reference</li> <li class="devsite-nav-item"> <a href="https://source.android.com/reference/hidl" track-type="nav" track-metadata-eventdetail="https://source.android.com/reference/hidl" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> HIDL </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/reference/hal" track-type="nav" track-metadata-eventdetail="https://source.android.com/reference/hal" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> HAL </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/reference/tradefed/classes" track-type="nav" track-metadata-eventdetail="https://source.android.com/reference/tradefed/classes" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Trade Federation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://source.android.com/reference/sts/classes" track-type="nav" track-metadata-eventdetail="https://source.android.com/reference/sts/classes" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="compatibility" tooltip > <div class="devsite-nav-item-title"> Security Test Suite </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://cs.android.com/android/platform/superproject/main" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cs.android.com/android/platform/superproject/main" track-type="nav" track-metadata-position="nav - android code search" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Android Code Search" track-name="android code search" > Android Code Search </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Android Open Source Project" tenant-name="Android Open Source Project" > <form class="devsite-search-form" action="https://source.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-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" >Español</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" >Português</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> <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://source.android.com/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Documentation </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://source.android.com/docs/whatsnew" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://source.android.com/docs/whatsnew" track-type="nav" track-metadata-position="nav - what's new?" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: What's New?" track-name="what's new?" > What's New? </a> </tab> <tab > <a href="https://source.android.com/docs/setup" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://source.android.com/docs/setup" track-type="nav" track-metadata-position="nav - getting started" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Getting Started" track-name="getting started" > Getting Started </a> </tab> <tab > <a href="https://source.android.com/docs/security" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://source.android.com/docs/security" track-type="nav" track-metadata-position="nav - security" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Security" track-name="security" > Security </a> </tab> <tab > <a href="https://source.android.com/docs/core" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://source.android.com/docs/core" track-type="nav" track-metadata-position="nav - core topics" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Core Topics" track-name="core topics" > Core Topics </a> </tab> <tab > <a href="https://source.android.com/docs/compatibility" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://source.android.com/docs/compatibility" track-type="nav" track-metadata-position="nav - compatibility" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Compatibility" track-name="compatibility" > Compatibility </a> </tab> <tab class="devsite-active"> <a href="https://source.android.com/docs/devices" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://source.android.com/docs/devices" track-type="nav" track-metadata-position="nav - android devices" track-metadata-module="primary nav" aria-label="Android Devices, selected" data-category="Site-Wide Custom Events" data-label="Tab: Android Devices" track-name="android devices" > Android Devices </a> </tab> <tab > <a href="https://source.android.com/docs/automotive" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://source.android.com/docs/automotive" track-type="nav" track-metadata-position="nav - automotive" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Automotive" track-name="automotive" > Automotive </a> </tab> <tab > <a href="https://source.android.com/reference" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://source.android.com/reference" 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> </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="androidOpenSourceProject" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/androidsource/images/lockup.svg" class="devsite-site-logo" alt="Android Open Source Project"> </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="/docs" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Docs" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Docs </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: Docs" track-name="docs" > <span class="devsite-nav-text" tooltip menu="Docs"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Docs"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/docs/whatsnew" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: What's New?" track-name="what's new?" data-category="Site-Wide Custom Events" data-label="Responsive Tab: What's New?" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > What's New? </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Getting Started" track-name="getting started" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Getting Started" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Getting Started </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Security" track-name="security" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Core Topics" track-name="core topics" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Core Topics" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Core Topics </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/compatibility" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Compatibility" track-name="compatibility" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compatibility" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compatibility </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devices" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Android Devices" track-name="android devices" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Devices" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Android Devices </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/automotive" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Automotive" track-name="automotive" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Automotive" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Automotive </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="https://cs.android.com/android/platform/superproject/main" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Android Code Search" track-name="android code search" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android Code Search" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android Code Search </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="/docs/devices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices" ><span class="devsite-nav-text" tooltip>Overview</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>Cuttlefish</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Basics</span> </div></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/restart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/restart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/restart" ><span class="devsite-nav-text" tooltip>Restart and reset</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/devices/cuttlefish/snapshot-restore" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/snapshot-restore" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/snapshot-restore" ><span class="devsite-nav-text" tooltip>Snapshot and restore</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/gpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/gpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/gpu" ><span class="devsite-nav-text" tooltip>GPU graphics acceleration</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/control-panel" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/control-panel" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/control-panel" ><span class="devsite-nav-text" tooltip>Control panel</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/webrtc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/webrtc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/webrtc" ><span class="devsite-nav-text" tooltip>WebRTC streaming</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/cts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/cts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/cts" ><span class="devsite-nav-text" tooltip>Run CTS stable</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Edit-compile-run cycle</span> </div></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/devices/cuttlefish/custom-device" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/custom-device" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/custom-device" ><span class="devsite-nav-text" tooltip>Create a custom device</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/kernel-dev" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/kernel-dev" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/kernel-dev" ><span class="devsite-nav-text" tooltip>Develop Android kernel</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/bootloader-dev" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/bootloader-dev" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/bootloader-dev" ><span class="devsite-nav-text" tooltip>Develop Android bootloader features</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Virtual hardware</span> </div></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/display-hotplug" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/display-hotplug" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/display-hotplug" ><span class="devsite-nav-text" tooltip>Display hotplug</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/multi-display" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/multi-display" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/multi-display" ><span class="devsite-nav-text" tooltip>Multi-display</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/multi-tenancy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/multi-tenancy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/multi-tenancy" ><span class="devsite-nav-text" tooltip>Multi-tenancy</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/control-environment" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/control-environment" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/control-environment" ><span class="devsite-nav-text" tooltip>Environment control</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/connectivity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/connectivity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/connectivity" ><span class="devsite-nav-text" tooltip>Test connectivity of multiple devices</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/wifi" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/wifi" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/wifi" ><span class="devsite-nav-text" tooltip>Wi-Fi</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/cuttlefish/bluetooth" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/bluetooth" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/bluetooth" ><span class="devsite-nav-text" tooltip>Bluetooth</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/devices/cuttlefish/nfc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/nfc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/nfc" ><span class="devsite-nav-text" tooltip>NFC</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Cuttlefish hybrid devices</span> </div></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/devices/cuttlefish/create-chd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/create-chd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/create-chd" ><span class="devsite-nav-text" tooltip>Create a Cuttlefish hybrid device</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/devices/cuttlefish/on-premises" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/cuttlefish/on-premises" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/cuttlefish/on-premises" ><span class="devsite-nav-text" tooltip>Run Cuttlefish on an on-premise server</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></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>Enterprise</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/devices/admin" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin" ><span class="devsite-nav-text" tooltip>Device management overview</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/implement" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/implement" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/implement" ><span class="devsite-nav-text" tooltip>Device management</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/device-policy-resolution" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/device-policy-resolution" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/device-policy-resolution" ><span class="devsite-nav-text" tooltip>Device policy resolution framework</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/multi-user" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/multi-user" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/multi-user" ><span class="devsite-nav-text" tooltip>Support multiple users</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/custom-user-types" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/custom-user-types" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/custom-user-types" ><span class="devsite-nav-text" tooltip>Implement custom user types</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/multi-user-testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/multi-user-testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/multi-user-testing" ><span class="devsite-nav-text" tooltip>Test multiple users</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/managed-profiles" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/managed-profiles" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/managed-profiles" ><span class="devsite-nav-text" tooltip>Employ work profiles</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/provision" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/provision" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/provision" ><span class="devsite-nav-text" tooltip>Provision for device management</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/multiuser-apps" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/multiuser-apps" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/multiuser-apps" ><span class="devsite-nav-text" tooltip>Multiuser apps</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/enterprise-telephony" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/enterprise-telephony" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/enterprise-telephony" ><span class="devsite-nav-text" tooltip>Enterprise telephony</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/testing-setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/testing-setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/testing-setup" ><span class="devsite-nav-text" tooltip>Test device management</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/admin/ota-updates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/admin/ota-updates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/admin/ota-updates" ><span class="devsite-nav-text" tooltip>Enterprise OTA updates</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>TV</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/devices/tv" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/tv" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/tv" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/tv/tuner-framework" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/tv/tuner-framework" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/tv/tuner-framework" ><span class="devsite-nav-text" tooltip>Tuner framework</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/tv/media-cas" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/tv/media-cas" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/tv/media-cas" ><span class="devsite-nav-text" tooltip>CAS framework</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/tv/hdmi-cec" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/tv/hdmi-cec" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/tv/hdmi-cec" ><span class="devsite-nav-text" tooltip>HDMI-CEC control service</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/tv/multimedia-tunneling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/tv/multimedia-tunneling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/tv/multimedia-tunneling" ><span class="devsite-nav-text" tooltip>Multimedia tunneling</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/tv/reference-tv-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/tv/reference-tv-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/tv/reference-tv-app" ><span class="devsite-nav-text" tooltip>Reference TV app</span></a></li><li class="devsite-nav-item"><a href="/docs/devices/tv/customize-tv-app" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/devices/tv/customize-tv-app" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/devices/tv/customize-tv-app" ><span class="devsite-nav-text" tooltip>Customize the TV app</span></a></li></ul></div></li> </ul> <ul class="devsite-nav-list" menu="Docs" 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 > What's new? </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/whatsnew/release-notes" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release notes" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Release notes </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/whatsnew/latest-security-bulletins" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Latest security bulletins" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Latest security bulletins </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/whatsnew/latest-cdd" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Latest Compatibility Definition Document (CDD)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Latest Compatibility Definition Document (CDD) </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/whatsnew/site-updates" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Site updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Site updates </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Getting Started </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/setup/about" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: About" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > About </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/start" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Start" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Start </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/download" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Download" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Download </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/test" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Test </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/create/coding-tasks" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Create" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Create </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/contribute" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contribute" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contribute </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/setup/community/cofc" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="navMenu" 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="/docs/setup/reference" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tools, build, and related reference" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Tools, build, and related reference </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="/docs/security/overview" 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/security/bulletin" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Bulletins" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Bulletins </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security/features" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Features" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Features </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security/test/fuzz-sanitize" 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"> <a href="/docs/security/best-practices" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Best Practices" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Best Practices </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Core Topics </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/core/architecture" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Architecture" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Architecture </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/audio" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Audio" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Audio </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/camera" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Camera" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Camera </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/connect" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Connectivity" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Connectivity </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/data" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/display" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Display" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Display </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/fonts/custom-font-fallback" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Fonts" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Fonts </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/graphics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Graphics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Graphics </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/interaction" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Interaction" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Interaction </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/media" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Media" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Media </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/perf" 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="/docs/core/permissions" 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="/docs/core/power" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Power" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Power </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/runtime" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Runtime" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Runtime </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/settings" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Settings" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Settings </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Storage </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/tests" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tests" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Tests </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/ota" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Updates" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Updates </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/core/virtualization" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Virtualization" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Virtualization </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Compatibility </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/compatibility/cdd" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compatibility Definition Document (CDD)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compatibility Definition Document (CDD) </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/compatibility/cts" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compatibility Test Suite (CTS)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compatibility Test Suite (CTS) </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Android Devices </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/devices/cuttlefish" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cuttlefish" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cuttlefish </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devices/admin" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Enterprise" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Enterprise </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devices/tv" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TV" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TV </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Automotive </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/automotive/start/what_automotive" 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"> <a href="/docs/automotive/guidelines" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guidelines for Development" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Guidelines for Development </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/automotive/dev-tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Development Tools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Development Tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/automotive/tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Testing Tools and Infrastructure" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Testing Tools and Infrastructure </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/automotive/start/releases" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release Details" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Release Details </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Reference </span> </span> </li> <li class="devsite-nav-item"> <a href="/reference/hidl" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: HIDL" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > HIDL </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference/hal" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: HAL" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > HAL </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference/tradefed/classes" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Trade Federation" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Trade Federation </span> </a> </li> <li class="devsite-nav-item"> <a href="/reference/sts/classes" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security Test Suite" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security Test Suite </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://source.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 Open Source Project" > AOSP </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://source.android.com/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Docs </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://source.android.com/docs/devices" 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 Devices </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <h1 class="devsite-page-title" tabindex="-1"> Cuttlefish virtual Android devices </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <!-- Copyright 2019 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <p><em>Cuttlefish</em> is a configurable virtual Android device that can run both remotely (using third-party cloud offerings such as Google Cloud Engine) and locally (on Linux x86 and ARM64 machines).</p> <h2 id="cuttlefish_goals" data-text="Cuttlefish goals" tabindex="-1">Cuttlefish goals</h2> <ul> <li>Free the platform and app developer from being dependent on physical hardware to develop and validate code changes.</li> <li>Replicate the framework-based behavior of a real device with a focus on <strong>high fidelity</strong> by maintaining close alignment with the core framework.</li> <li>Support all API levels after 28.</li> <li>Provide a <strong>consistent</strong> level of functionality across API levels, aligned with the behavior on physical hardware.</li> <li><p>Enable scale:</p> <ul> <li>Provide the ability to run multiple devices in parallel.</li> <li>Enable concurrent test execution with high fidelity at a lower cost of entry.</li> </ul></li> <li><p>Provide a configurable device with the ability to adjust form factor, RAM, CPUs, etc.</p></li> </ul> <h2 id="compare_cuttlefish_to_other_devices" data-text="Compare Cuttlefish to other devices" tabindex="-1">Compare Cuttlefish to other devices</h2> <h3 id="cuttlefish_and_android_emulator" data-text="Cuttlefish and Android Emulator" tabindex="-1">Cuttlefish and Android Emulator</h3> <p>There are many similarities with the <a href="/docs/setup/test/avd">Android Emulator</a>, but Cuttlefish guarantees full fidelity with Android framework (whether this is pure AOSP or a custom implementation in your own tree). In real-world application, this means that you should expect Cuttlefish to respond to your interactions at the OS level just like a physical phone target built with the same customized or pure Android OS source.</p> <p>The Android Emulator has been built around the use case of making app development easy, and it contains many functional hooks to appeal to the use cases of the Android app developer. This may present challenges if you want to build an emulator with your customized Android framework. If you need a virtual device that will be representative of your custom platform/framework code or tip-of-tree Android, then Cuttlefish is an ideal virtual option. It is the canonical device for representing the current state of AOSP development.</p> <h3 id="cuttlefish_and_physical_device" data-text="Cuttlefish and physical device" tabindex="-1">Cuttlefish and physical device</h3> <p>The primary differences between a Cuttlefish virtual device and your physical device are at the hardware abstraction layer (HAL) level, as well as any software that interacts with any custom hardware. Except for hardware-specific implementations, you should expect functionally equivalent behavior between Cuttlefish and a physical device.</p> <h2 id="how_can_cuttlefish_help" data-text="How can Cuttlefish help?" tabindex="-1">How can Cuttlefish help?</h2> <p>You can interact with Cuttlefish just like you would with any other Android device that you might use for debugging. It will register itself as a normal device via adb and you can interact with it like a physical device via remote desktop. The use cases are broad and can span app testing, custom system build testing and more.</p> <p>Because Cuttlefish strives for full framework fidelity, it can be used for functional testing of your framework or apps where there are no physical hardware dependencies that are impossible to emulate.</p> <h3 id="how_is_cuttlefish_commonly_used_for_testing_today" data-text="How is Cuttlefish commonly used for testing today?" tabindex="-1">How is Cuttlefish commonly used for testing today?</h3> <p>Some common applications of Cuttlefish for testing include:</p> <ul> <li>CTS</li> <li>Framework compliance</li> <li>Continuous integration testing</li> <li>Custom test suites</li> </ul> <h2 id="can_i_host_cuttlefish_in_the_cloud" data-text="Can I host Cuttlefish in the cloud?" tabindex="-1">Can I host Cuttlefish in the cloud?</h2> <p>Yes, Cuttlefish natively supports Google Cloud and support for other cloud platforms is planned.</p> <h2 id="get_started" data-text="Get started" tabindex="-1">Get started</h2> <p>For guidance on creating a Cuttlefish instance based on AOSP, see <a href="/docs/devices/cuttlefish/get-started">Use Cuttlefish</a>.</p> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <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 2025-02-05 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 2025-02-05 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </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">Build</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//android.googlesource.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android repository </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/source/requirements" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Requirements </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/source/downloading" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Downloading </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com/android/blobs-preview/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Preview binaries </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com/android/images/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Factory images </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com/android/drivers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Driver binaries </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//twitter.com/Android/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > @Android on Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//twitter.com/AndroidDev/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > @AndroidDev on Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//blog.google/products/android/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Android Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//security.googleblog.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Google Security Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//groups.google.com/forum/?fromgroups#!forum/android-platform/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Platform on Google Groups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//groups.google.com/forum/?fromgroups#!forum/android-building/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Building on Google Groups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//groups.google.com/forum/?fromgroups#!forum/android-porting/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > Porting on Google Groups </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Get help</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//support.google.com/android/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Android Help Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//support.google.com/pixelphone/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Pixel Help Center </a> </li> <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 3)" > www.android.com </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.android.com/gms/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Google Mobile Services </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//stackoverflow.com/questions/tagged/android-source/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Stack Overflow </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//issuetracker.google.com/issues?q=status:open%20componentid:190923" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Issue Tracker </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-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="/source/" data-category="Site-Wide Custom Events" data-label="Footer About Android link" > About Android </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/source/community" data-category="Site-Wide Custom Events" data-label="Footer Community link" > Community </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/legal" data-category="Site-Wide Custom Events" data-label="Footer Legal link" > Legal </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="//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="//issuetracker.google.com/issues/new?component=191476" data-category="Site-Wide Custom Events" data-label="Footer Site feedback link" > Site feedback </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> </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" >Español</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" >Português</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [{"id": "G-2TQ26MFY2E", "purpose": 0}], "ga4p": [{"id": "G-2TQ26MFY2E", "purpose": 0}], "gtm": [], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Android Open Source Project", "signedIn": "False", "tenant": "androidsource", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <android-fully-clickable target=" .android-case-study .devsite-landing-row-item, .android-grouped-resources .devsite-landing-row-item, .android-grouped-resources-contained--primary .devsite-landing-row-item, .android-grouped-resources-contained--secondary .devsite-landing-row-item, .android-grouped-resources-contained--tertiary .devsite-landing-row-item, .android-grouped-resources-primary .devsite-landing-row-item, .android-grouped-resources-secondary .devsite-landing-row-item, .android-grouped-resources-uncontained--primary .devsite-landing-row-item, .android-grouped-resources-uncontained--secondary .devsite-landing-row-item, .android-grouped-resources-uncontained--tertiary .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="+33F49xsGv7l062RT/WPoLxMNSOcdJ"> (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/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/androidsource/js/app_loader.js', '[7,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018","https://www.gstatic.com/devrel-devsite/prod/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/androidsource","https://androidsource-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/androidsource/manifest.json","https://www.gstatic.com/devrel-devsite/prod/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/androidsource/images/favicon.svg","https://www.gstatic.com/devrel-devsite/prod/vd2dddc2199cd18ccf014281c77515e1e906f6b98324fd2a8b5fa9e92b09e8018/androidsource/images/lockup.svg","https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,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","source.android.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["MiscFeatureFlags__enable_firebase_utm","Cloud__enable_cloudx_experiment_ids","MiscFeatureFlags__enable_variable_operator","Profiles__enable_stripe_subscription_management","Cloud__enable_free_trial_server_call","Search__enable_ai_eligibility_checks","TpcFeatures__enable_mirror_tenant_redirects","Profiles__enable_profile_collections","Cloud__enable_cloud_shell_fte_user_flow","Profiles__enable_join_program_group_endpoint","Cloud__enable_cloud_dlp_service","DevPro__enable_developer_subscriptions","Search__enable_dynamic_content_confidential_banner","MiscFeatureFlags__enable_view_transitions","Profiles__enable_public_developer_profiles","MiscFeatureFlags__enable_explain_this_code","Analytics__enable_clearcut_logging","Profiles__enable_completequiz_endpoint","Experiments__reqs_query_experiments","CloudShell__cloud_shell_button","MiscFeatureFlags__enable_project_variables","Cloud__enable_cloudx_ping","Profiles__enable_awarding_url","MiscFeatureFlags__emergency_css","Profiles__enable_release_notes_notifications","Concierge__enable_pushui","Search__enable_suggestions_from_borg","Profiles__enable_page_saving","Cloud__enable_cloud_shell","BookNav__enable_tenant_cache_key","MiscFeatureFlags__developers_footer_image","Profiles__require_profile_eligibility_for_signin","Cloud__enable_llm_concierge_chat","Profiles__enable_completecodelab_endpoint","Profiles__enable_developer_profiles_callout","EngEduTelemetry__enable_engedu_telemetry","TpcFeatures__enable_unmirrored_page_left_nav","Cloud__enable_cloud_facet_chat","MiscFeatureFlags__developers_footer_dark_image","Search__enable_page_map","Profiles__enable_complete_playlist_endpoint","Profiles__enable_dashboard_curated_recommendations","Cloud__enable_legacy_calculator_redirect","DevPro__enable_cloud_innovators_plus","Profiles__enable_recognition_badges","CloudShell__cloud_code_overflow_menu"],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",[7,"androidsource","Android Open Source Project","source.android.com",null,"androidsource-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]],null,null,null,[1,null,1],[1,1,null,null,1]],null,[29,null,null,null,null,null,"/images/lockup.svg","/images/touchicon-180.png",null,null,null,null,null,1,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],null,[[null,null,null,[3,7],null,null,[1,[["docType","Choose a content type",[["Guide",null,null,null,null,null,null,null,null,"Guide"],["ReleaseNotes",null,null,null,null,null,null,null,null,"Release Notes"]]],["category","Choose a topic",[["Architecture",null,null,null,null,null,null,null,null,"Architecture"],["Automotive",null,null,null,null,null,null,null,null,"Automotive"],["AndroidBuilding",null,null,null,null,null,null,null,null,"Building"],["AndroidConnectivity",null,null,null,null,null,null,null,null,"Connectivity"],["Camera",null,null,null,null,null,null,null,null,"Camera"],["Compatibility",null,null,null,null,null,null,null,null,"Compatibility"],["Drivers",null,null,null,null,null,null,null,null,"Drivers"],["Graphics",null,null,null,null,null,null,null,null,"Graphics"],["Media",null,null,null,null,null,null,null,null,"Media"],["Security",null,null,null,null,null,null,null,null,"Security"],["Testing",null,null,null,null,null,null,null,null,"Testing"]]]]]],[1,1],null,1],[[null,null,null,null,null,null,null,[["G-2TQ26MFY2E"],null,null,[["G-2TQ26MFY2E",1]]],null,null,null,null,1]],null,4],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>