CINXE.COM

Getting Started Developing Apps and Games for Fire TV | Amazon Fire TV

<!doctype html><!--[if IE 8]><html data-19ax5a9jf="dingo" lang="en_US" class="a-no-js a-lt-ie10 a-lt-ie9 a-ie8"><![endif]--><!--[if IE 9]><html data-19ax5a9jf="dingo" lang="en_US" class="a-no-js a-lt-ie10 a-ie9"><![endif]--><!--[if !(IE 8)&!(IE 9)]><!--><html data-19ax5a9jf="dingo" lang="en_US" class="a-no-js"><!--<![endif]--> <head><script>var aPageStart = (new Date()).getTime();</script><meta charset="utf-8"/> <link rel="stylesheet" href="https://images-na.ssl-images-amazon.com/images/I/11EIQ5IGqaL._RC|01e5ncglxyL.css,01lF2n-pPaL.css,41DLtM-IPiL.css,31iNSIr1kuL.css,011DCEwfbwL.css,013z33uKh2L.css,01R9dtRDQdL.css,01rhj7BIeEL.css,410iOIpxjqL.css,11TIuySqr6L.css,01ElnPiDxWL.css,114oHnH0QRL.css,01crd53+KxL.css,01IdKcBuAdL.css,01y-XAlI+2L.css,01RgENaJKWL.css,219sMS379pL.css,01oDR3IULNL.css,51CguxBmgsL.css,01XPHJk60-L.css,01lN1FNc-RL.css,21Z4Q-IpuWL.css,11MrAKjcAKL.css,21qHKSTSJCL.css,11Zh8bU-hoL.css,01CFUgsA-YL.css,31jsrAUX5KL.css,11WHSxzwhML.css,11MO3b1rxzL.css,11ylgxpE+pL.css,11b-GR26DVL.css,01j2JE3j7aL.css,11maZ3sCvAL.css,21+98GSaU1L.css,11TxiWYBNOL.css,01chhhuYckL.css,21Q7cg1AwNL.css,1128pDOWgAL.css,11mA7+zB7BL.css,01G+-woTSUL.css,01890+Vwk8L.css,01b3+vZ+YbL.css,01cbS3UK11L.css,21kdNu0AlvL.css,0116OOHSwvL.css_.css?AUIClients/AmazonUI#us.trident" /> <link rel="stylesheet" href="https://images-na.ssl-images-amazon.com/images/I/71cTjwDJRNL.css?AUIClients/DeXWebsiteAUIAssets" /> <meta charset="utf-8"> <title>Getting Started Developing Apps and Games for Fire TV | Amazon Fire TV </title> <meta name="description" content="When developing apps for Fire TV, you can choose from a variety of frameworks and options depending on your skillset, your platform preference, the features you want, and more."> <meta name="keywords" content="develop apps for fire tv, develop games fire tv, get started with fire tv"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="icon" type="image/x-icon" href="https://amzndevresources.com/jekyll/css/favicon.ico"> <!-- FontAwesome (GPL license) --> <link rel="stylesheet" type="text/css" href="https://amzndevresources.com/jekyll/css/font-awesome/css/font-awesome.min.css"> <meta name="google-site-verification" content="wfEDah_6uJe9Y7uIfLrVycd_efr8wQ9YO-fM_5MI5w0" /> <meta name="google-site-verification" content="Eu8BqTWMhRRdfCAdqUh2RYb3SjAiuFp4wmgTtGcteM0" /> <link rel="alternate" href="https://developer.amazon.com/docs/fire-tv/getting-started-developing-apps-and-games.html" hreflang="en_US" /> <link rel="canonical" href="https://developer.amazon.com/docs/fire-tv/getting-started-developing-apps-and-games.html" /> <meta name="google-site-verification" content="KHmp6TUPKc1gHlM9TuB842pcV7TxZVV6TgenZtsYoNY" /> <meta name="msvalidate.01" content="9761B379C1B64F587D71BA40337FDD07" /> <script language="JavaScript" type="text/javascript"> var digitalData ={ page:{ pageInfo: { pageInstanceID: "docs\/fire\-tv\/getting\-started\-developing\-apps\-and\-games.html", path: "\/docs\/fire\-tv\/getting\-started\-developing\-apps\-and\-games.html", pageID: "", pageTitle: "", pageType: "DeX", primaryCategory: "appstore", pageName: "", language: "en_US" } }, user:{ userID: "", ipAddress: "8.222.208.146" } }; var urlSplit = "\/docs\/fire\-tv\/getting\-started\-developing\-apps\-and\-games.html".split("/"); var trailingSlash = urlSplit.pop(); var pTitle = trailingSlash; if (trailingSlash == ""){ pTitle = urlSplit.pop() } if ("".indexOf("search") !== -1) { digitalData.page.pageInfo.searchResultsNum = ""; } if ("".indexOf("dex-home") !== -1){ digitalData.page.pageInfo.pageID = "Home"; digitalData.page.pageInfo.pageTitle = "Home"; digitalData.page.pageInfo.primaryCategory = "Home"; } else { digitalData.page.pageInfo.pageID = pTitle; pTitle = pTitle.replace(/(^|-)[a-z]/g,function(f){return f.toUpperCase();}); pTitle = pTitle.replace(/-/g, ''); digitalData.page.pageInfo.pageTitle = pTitle; var pCat = digitalData.page.pageInfo.primaryCategory; pCat = pCat.replace(/(^|-)[a-z]/g,function(f){return f.toUpperCase();}); pCat = pCat.replace(/-/g, ''); digitalData.page.pageInfo.primaryCategory = pCat; } var pageNameStr = "" + digitalData.page.pageInfo.primaryCategory; //Todo: add in logic for sub-categories when AOI is implemented. if (digitalData.page.pageInfo.pageTitle != null){ if (pageNameStr != ""){ pageNameStr += ":"; } pageNameStr += digitalData.page.pageInfo.pageTitle; } digitalData.page.pageInfo.pageName = pageNameStr; (function (w) { w.URLSearchParams = w.URLSearchParams || function (searchString) { var self = this; self.searchString = searchString; self.get = function (name) { var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(self.searchString); if (results == null) { return null; } else { return decodeURI(results[1]) || 0; } }; } })(window); </script> <script src="https://m.media-amazon.com/images/G/01/envImprovement/js/jquery/jquery-3.5.1.min.js" crossorigin="anonymous"></script> <script src="https://ds6yc8t7pnx74.cloudfront.net/content/dam/developer-portal/analytics/prod/launch-EN968f8a7401fc4ccea43ced61e7b0c2bb.min.js" async></script> <link rel="stylesheet" type="text/css" href="https://d20632htc2msyc.cloudfront.net/static/css/main.css" /> <script defer src="https://d20632htc2msyc.cloudfront.net/static/js/main.js"></script> <script type="text/javascript"> (function() { var didInit = false; function initMunchkin() { if(didInit === false) { didInit = true; Munchkin.init('365-EFI-026'); } } var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = '//munchkin.marketo.net/munchkin.js'; s.onreadystatechange = function() { if (this.readyState == 'complete' || this.readyState == 'loaded') { initMunchkin(); } }; s.onload = initMunchkin; document.getElementsByTagName('head')[0].appendChild(s); })(); </script> </head> <body class="a-m-us a-aui_72554-c a-aui_a11y_1_699934-c a-aui_a11y_4_835613-c a-aui_a11y_6_837773-c a-aui_a11y_sr_678508-c a-aui_killswitch_csa_logger_372963-c a-aui_pci_risk_banner_210084-c a-aui_preload_261698-c a-aui_rel_noreferrer_noopener_309527-c a-aui_template_weblab_cache_333406-c a-aui_tnr_v2_180836-c"><div id="a-page"><script type="a-state" data-a-state="{&quot;key&quot;:&quot;a-wlab-states&quot;}">{"AUI_A11Y_6_837773":"C","AUI_TNR_V2_180836":"C","AUI_PRELOAD_261698":"C","AUI_TEMPLATE_WEBLAB_CACHE_333406":"C","AUI_72554":"C","AUI_A11Y_1_699934":"C","AUI_A11Y_4_835613":"C","AUI_KILLSWITCH_CSA_LOGGER_372963":"C","AUI_A11Y_SR_678508":"C","AUI_REL_NOREFERRER_NOOPENER_309527":"C","AUI_PCI_RISK_BANNER_210084":"C"}</script> <link rel="stylesheet" type="text/css" href="https://m.media-amazon.com/images/G/01/Fonts/FontAwesome/css/font-awesome.min._V516135338_.css"> <header class='dpHeader dphThemedark'> <div class='dphTopBar clearfix'> <div class='dphLeft'> <div class='dphMenuToggle'> <i class='dphMenuIcon'></i> <i class='dphMenuBackIcon'></i> </div> <a class='dphLogo' href='/apps-and-games'> <img src="https://m.media-amazon.com/images/G/01/mobile-apps/dex/logos/amazonAppstoreLogoDarkBG1x_new.png" srcset="https://m.media-amazon.com/images/G/01/mobile-apps/dex/logos/amazonAppstoreLogoDarkBG1x_new.png 1x, https://m.media-amazon.com/images/G/01/mobile-apps/dex/logos/amazonAppstoreLogoDarkBG2x.png 2x" alt="Amazon Developer Logo"> </a> </div> <div class='dphRight'> <div class="dphSearchBarWrap"> <!-- Used in tech docs to hide side bar search results when we rollout new search --> <script type="text/javascript"> window.newSearch = true; </script> <div hidden style="display: none;" class="new-search-flag" data-val="enabled"></div> <div hidden style="display: none;" class="new-search-metadata"> {"settingsUrl":"https://ds6yc8t7pnx74.cloudfront.net/devportal-digital-assets/cf/developer-portal/getDeXSearchData"} </div> <div id="dex-search-header-bar"> </div> </div> <a href="/home.html" class='dphConsole dphLink'>Developer Console</a> <div class='dphUserInfo'> <a class="dphLink" href="/settings/console/registration?return_to=/docs/fire-tv/getting-started-developing-apps-and-games.html">Sign In</a> </div> <style> #notification-counter { position: absolute; top: 2px; padding: 0 2px; min-width: 20px; background: #BF2727; color: white; font-size: 11px; border-radius: 3px; line-height: 20px; text-align: center; } #notification_click_icon { width: 32px; height: 32px; background-color: #31465f; text-align: center; line-height: 32px; border-radius: 50%; margin-right: 15px; color: white; font-weight: 300; cursor: pointer; } #notification-placeholder { position: absolute; top:45px; } #notification_flyout_iframe_id { display: none; position: absolute; width: 425px; border: none; transform: translate(-80%); transition: all 0.2s; } @media screen and (max-width: 992px) { #notification_click_icon { position: fixed; display: inline-block; right: 44px; } #notification_click_icon ~ .dphSearch.active { position: relative; z-index: 0; } #notification-placeholder { top:28px; } #notification-counter { top: -6px; } } @media screen and (max-width: 414px) { #notification_flyout_iframe_id { transform: none; right: -99px; width: 100vw; } #notification_click_icon ~ .dphSearch.active { position: relative; z-index: 0; } } </style> <div id='navFlyout?' class='dphFlyoutItem dphDevConsoleLinkTopBar dphButton'> <span class='dphConsole dphLink'>?</span> <div class='dphDropdownWrap'> <nav class='dphDropdown accrItem'> <div class='dpIconArrow accrHandle'></div> <ul class='dphDropdownList'> <li class='dphdItem'><a href='/support/'>Support</a></li> <li class='dphdItem'><a href='/documentation/'>Docs</a></li> <li class='dphdItem'><a href='/support/contact-us'>Contact Us</a></li> <li class='dphdItem'><a href='/support/cases'>My Appstore Cases</a></li> </ul> </nav> </div> </div> </div> </div> <div class='dphNavigation accordion' data-accr_active_width='327'> <div class='dphnWrap'> <div class='dphUserInfo'> <a class="dphLink" href="/settings/console/registration?return_to=/docs/fire-tv/getting-started-developing-apps-and-games.html">Sign In</a> </div> <a href="/home.html" class='dphConsole dphLink'>Developer Console</a> <nav class="dpPrimaryNav"> <ul class="dppnItems"> <li class="dppnItem accrItem"> <span class="dppnLink"> Devices </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnFlyoutWrap'> <div class='dppnSecondaryNavWrap'> <ul class="dppnFlyout dppnSecondaryNav"> <li class="dppnfItem accrItem"> <span class="dppnfLink"> <span class="dppnfTitle">Fire TV</span> <span class="dppnfSubtitle"></span> </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnLevel3NavWrap'> <ul class="dppnFlyout dppnLevel3Nav"> <li class="dppnfItem "> <a href="/apps-and-games/fire-tv" class="dppnfLink"> <span class="dppnfTitle">About</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tv/getting-started-developing-apps-and-games.html" class="dppnfLink"> <span class="dppnfTitle">Get started</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tv/device-specifications.html" class="dppnfLink"> <span class="dppnfTitle">Device specs</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tv/device-specifications-comparison-table.html" class="dppnfLink"> <span class="dppnfTitle">Compare devices</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tv/fire-os-overview.html" class="dppnfLink"> <span class="dppnfTitle">Fire OS for TV</span> <span class="dppnfSubtitle"></span> </a> </li> </ul> </div> </li> <li class="dppnfItem accrItem"> <span class="dppnfLink"> <span class="dppnfTitle">Fire tablets</span> <span class="dppnfSubtitle"></span> </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnLevel3NavWrap'> <ul class="dppnFlyout dppnLevel3Nav"> <li class="dppnfItem "> <a href="/apps-and-games/fire-tablets" class="dppnfLink"> <span class="dppnfTitle">About</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tablets/ft-get-started.html" class="dppnfLink"> <span class="dppnfTitle">Get started</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tablets/ft-device-specifications.html" class="dppnfLink"> <span class="dppnfTitle">Device specs</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tablets/fire-os-8.html" class="dppnfLink"> <span class="dppnfTitle">Fire OS for tablets</span> <span class="dppnfSubtitle"></span> </a> </li> </ul> </div> </li> </ul> </div> </div> </li> <li class="dppnItem accrItem"> <span class="dppnLink"> Build </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnFlyoutWrap'> <div class='dppnSecondaryNavWrap'> <ul class="dppnFlyout dppnSecondaryNav"> <li class="dppnfItem accrItem"> <span class="dppnfLink"> <span class="dppnfTitle">Fire TV apps</span> <span class="dppnfSubtitle"></span> </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnLevel3NavWrap'> <ul class="dppnFlyout dppnLevel3Nav"> <li class="dppnfItem "> <a href="/docs/fire-tv/getting-started-developing-apps-and-games.html" class="dppnfLink"> <span class="dppnfTitle">Get started</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tv/design-and-user-experience-guidelines.html" class="dppnfLink"> <span class="dppnfTitle">UX guidelines</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tv/remote-input.html" class="dppnfLink"> <span class="dppnfTitle">Remote control input</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tv/connecting-adb-to-device.html" class="dppnfLink"> <span class="dppnfTitle">Connect through Android Debug Bridge</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tv/self-service-advertising.html" class="dppnfLink"> <span class="dppnfTitle">Promote your TV app</span> <span class="dppnfSubtitle"></span> </a> </li> </ul> </div> </li> <li class="dppnfItem accrItem"> <span class="dppnfLink"> <span class="dppnfTitle">Fire tablet apps</span> <span class="dppnfSubtitle"></span> </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnLevel3NavWrap'> <ul class="dppnFlyout dppnLevel3Nav"> <li class="dppnfItem "> <a href="/docs/fire-tablets/ft-get-started.html" class="dppnfLink"> <span class="dppnfTitle">Get started</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tablets/ft-ux-specifications.html" class="dppnfLink"> <span class="dppnfTitle">UX guidelines</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/fire-tablets/connecting-adb-to-device.html" class="dppnfLink"> <span class="dppnfTitle">Connect through Android Debug Bridge</span> <span class="dppnfSubtitle"></span> </a> </li> </ul> </div> </li> <li class="dppnfItem accrItem"> <a href="/apps-and-games/sdks" class="dppnfLink"> <span class="dppnfTitle">SDKs</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/docs/app-submission/migrate-existing-app.html" class="dppnfLink"> <span class="dppnfTitle">Porting Android apps</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/apps-and-games/services-and-apis/monetization" class="dppnfLink"> <span class="dppnfTitle">Monetizing apps</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/apps-and-games/services-and-apis" class="dppnfLink"> <span class="dppnfTitle">Services & APIs</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/apps-and-games/blogs/tag.best-practices" class="dppnfLink"> <span class="dppnfTitle">Best practices</span> <span class="dppnfSubtitle"></span> </a> </li> </ul> </div> </div> </li> <li class="dppnItem accrItem"> <span class="dppnLink"> Test </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnFlyoutWrap'> <div class='dppnSecondaryNavWrap'> <ul class="dppnFlyout dppnSecondaryNav"> <li class="dppnfItem accrItem"> <a href="/docs/app-testing/test-criteria.html" class="dppnfLink"> <span class="dppnfTitle">App testing criteria</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/docs/app-testing/live-app-testing-getting-started.html" class="dppnfLink"> <span class="dppnfTitle">Live App Testing</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/docs/in-app-purchasing/iap-testing-overview.html" class="dppnfLink"> <span class="dppnfTitle">In-app purchasing testing</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <span class="dppnfLink"> <span class="dppnfTitle">Quality performance</span> <span class="dppnfSubtitle"></span> </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnLevel3NavWrap'> <ul class="dppnFlyout dppnLevel3Nav"> <li class="dppnfItem "> <a href="/docs/app-testing/test-criteria.html#test-criteria-group-2-key-app-performance-indicators" class="dppnfLink"> <span class="dppnfTitle">Key performance indicators</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem "> <a href="/docs/app-testing/app-performance-scripts.html" class="dppnfLink"> <span class="dppnfTitle">App performance scripts</span> <span class="dppnfSubtitle"></span> </a> </li> </ul> </div> </li> </ul> </div> </div> </li> <li class="dppnItem accrItem"> <span class="dppnLink"> Publish </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnFlyoutWrap'> <div class='dppnSecondaryNavWrap'> <ul class="dppnFlyout dppnSecondaryNav"> <li class="dppnfItem accrItem"> <a href="/docs/app-submission/understanding-submission.html" class="dppnfLink"> <span class="dppnfTitle">Publishing overview</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/docs/policy-center/understanding-content-policy.html" class="dppnfLink"> <span class="dppnfTitle">App content policies</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/docs/reports-promo/UI-reports-dashboard.html" class="dppnfLink"> <span class="dppnfTitle">Revenue reporting</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/docs/app-submission/manage-account-and-permissions.html" class="dppnfLink"> <span class="dppnfTitle">Developer account management</span> <span class="dppnfSubtitle"></span> </a> </li> </ul> </div> </div> </li> <li class="dppnItem accrItem"> <span class="dppnLink"> Connect </span> <div class='dpIconArrow accrHandle'></div> <div class='dppnFlyoutWrap'> <div class='dppnSecondaryNavWrap'> <ul class="dppnFlyout dppnSecondaryNav"> <li class="dppnfItem accrItem"> <a href="/apps-and-games/blogs" class="dppnfLink"> <span class="dppnfTitle">Blogs</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/apps-and-games/events" class="dppnfLink"> <span class="dppnfTitle">Events</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="https://community.amazondeveloper.com/" class="dppnfLink"> <span class="dppnfTitle">Appstore Developer Community</span> <span class="dppnfSubtitle"></span> </a> </li> <li class="dppnfItem accrItem"> <a href="/docs/apps-and-games/release-notes.html" class="dppnfLink"> <span class="dppnfTitle">Release notes</span> <span class="dppnfSubtitle"></span> </a> </li> </ul> </div> </div> </li> <li class="dppnItem accrItem"> <a href="/docs/apps-and-games/documentation.html" class="dppnLink"> Docs </a> </li> </ul> </nav> <nav class="dpPrimaryNav dphDevConsoleLinkNavBar"> <ul class="dppnItems"> <li class="dppnItem accrItem"> <span class='dppnLink'>Support</span> <div class="dpIconArrow accrHandle"></div> <div class="dppnFlyoutWrap"> <div class="dppnSecondaryNavWrap"> <ul class='dppnFlyout dppnSecondaryNav'> <li class='dppnfItem accrItem'><a class="dppnfLink" href='/support/'><span class="dppnfTitle">Support</span></a></li> <li class='dppnfItem accrItem'><a class="dppnfLink" href='/documentation/'><span class="dppnfTitle">Docs</span></a></li> <li class='dppnfItem accrItem'><a class="dppnfLink" href='/support/contact-us'><span class="dppnfTitle">Contact Us</span></a></li> <li class='dppnfItem accrItem'><a class="dppnfLink" href='/support/cases'><span class="dppnfTitle">My Appstore Cases</span></a></li> </ul> </div> </div> </li> </ul> </nav> </div> </div> </header> <div id='dpHeaderPlaceholder'></div> <script> (function(){ //Set placeholder height as soon as possible to eliminate page jump "use strict"; var setHeaderPlaceholderHeight = function(header){ var placeholder = document.getElementById('dpHeaderPlaceholder'); var headerHeight = header[0].offsetHeight + "px"; placeholder.style.height = headerHeight; } var checkForHeader = function(){ var header = document.querySelectorAll('.dpHeader'); if(header.length){ setHeaderPlaceholderHeight(header); window.clearInterval(checkForHeaderInterval); } } var checkForHeaderInterval = window.setInterval(checkForHeader, 10); checkForHeader(); //Run once immediately }()); </script> <script> (function(a,b,c,d){if((a=a.AmazonUIPageJS||a.P)&&a.when&&a.register)throw Error("A copy of P has already been loaded on this page.");})(window,document,Date);(function(a,b,c,d){"use strict";a._pSetI=function(){return null}})(window,document,Date);(function(a,c,d,e){"use strict";a._sw=function(){var b;return function(a,c,d,e,f,g,h,k,l,m){b||(b=!0)}}()})(window,document,Date);(function(c,e,I,B){"use strict";c._pd=function(){var a,u;return function(C,f,h,k,b,D,v,E,F){function w(d){try{return d()}catch(J){return!1}}function l(){if(m){var d={w:c.innerWidth||b.clientWidth,h:c.innerHeight||b.clientHeight};5<Math.abs(d.w-q.w)||50<d.h-q.h?(q=d,n=4,(d=a.mobile||a.tablet?450<d.w&&d.w>d.h:1250<=d.w)?k(b,"a-ws"):b.className=v(b,"a-ws")):0<n&&(n--,x=setTimeout(l,16))}}function G(d){(m=d===B?!m:!!d)&&l()}function H(){return m}if(!u){u=!0;var r=function(){var d=["O","ms","Moz","Webkit"], c=e.createElement("div");return{testGradients:function(){return!0},test:function(a){var b=a.charAt(0).toUpperCase()+a.substr(1);a=(d.join(b+" ")+b+" "+a).split(" ");for(b=a.length;b--;)if(""===c.style[a[b]])return!0;return!1},testTransform3d:function(){return!1}}}(),y=b.className,z=/(^| )a-mobile( |$)/.test(y),A=/(^| )a-tablet( |$)/.test(y);a={audio:function(){return!!e.createElement("audio").canPlayType},video:function(){return!!e.createElement("video").canPlayType},canvas:function(){return!!e.createElement("canvas").getContext}, svg:function(){return!!e.createElementNS&&!!e.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect},offline:function(){return navigator.hasOwnProperty&&navigator.hasOwnProperty("onLine")&&navigator.onLine},dragDrop:function(){return"draggable"in e.createElement("span")},geolocation:function(){return!!navigator.geolocation},history:function(){return!(!c.history||!c.history.pushState)},webworker:function(){return!!c.Worker},autofocus:function(){return"autofocus"in e.createElement("input")}, inputPlaceholder:function(){return"placeholder"in e.createElement("input")},textareaPlaceholder:function(){return"placeholder"in e.createElement("textarea")},localStorage:function(){return"localStorage"in c&&null!==c.localStorage},orientation:function(){return"orientation"in c},touch:function(){return"ontouchend"in e},gradients:function(){return r.testGradients()},hires:function(){var a=c.devicePixelRatio&&1.5<=c.devicePixelRatio||c.matchMedia&&c.matchMedia("(min-resolution:144dpi)").matches;E("hiRes"+ (z?"Mobile":A?"Tablet":"Desktop"),a?1:0);return a},transform3d:function(){return r.testTransform3d()},touchScrolling:function(){return f(/Windowshop|android|OS ([5-9]|[1-9][0-9]+)(_[0-9]{1,2})+ like Mac OS X|SOFTWARE=([5-9]|[1-9][0-9]+)(.[0-9]{1,2})+.*DEVICE=iPhone|Chrome|Silk|Firefox|Trident.+?; Touch/i)},ios:function(){return f(/OS [1-9][0-9]*(_[0-9]*)+ like Mac OS X/i)&&!f(/trident|Edge/i)},android:function(){return f(/android.([1-9]|[L-Z])/i)&&!f(/trident|Edge/i)},mobile:function(){return z}, tablet:function(){return A},rtl:function(){return"rtl"===b.dir}};for(var g in a)a.hasOwnProperty(g)&&(a[g]=w(a[g]));for(var t="textShadow textStroke boxShadow borderRadius borderImage opacity transform transition".split(" "),p=0;p<t.length;p++)a[t[p]]=w(function(){return r.test(t[p])});var m=!0,x=0,q={w:0,h:0},n=4;l();h(c,"resize",function(){clearTimeout(x);n=4;l()});b.className=v(b,"a-no-js");k(b,"a-js");!f(/OS [1-8](_[0-9]*)+ like Mac OS X/i)||c.navigator.standalone||f(/safari/i)||k(b,"a-ember"); h=[];for(g in a)a.hasOwnProperty(g)&&a[g]&&h.push("a-"+g.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()}));k(b,h.join(" "));b.setAttribute("data-aui-build-date",F);C.register("p-detect",function(){return{capabilities:a,localStorage:a.localStorage&&D,toggleResponsiveGrid:G,responsiveGridEnabled:H}});return a||{}}}}()})(window,document,Date);(function(g,l,C,D){function E(a){n&&n.tag&&n.tag(p(":","aui",a))}function m(a,b){n&&n.count&&n.count("aui:"+a,0===b?0:b||(n.count("aui:"+a)||0)+1)}function F(a){try{return a.test(navigator.userAgent)}catch(b){return!1}}function G(a){return"function"===typeof a}function u(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)}function p(a,b,c,f){b=b&&c?b+a+c:b||c;return f?p(a,b,f):b}function y(a,b,c){try{Object.defineProperty(a,b,{value:c,writable:!1})}catch(f){a[b]= c}return c}function O(a,b){a.className=P(a,b)+" "+b}function P(a,b){return(" "+a.className+" ").split(" "+b+" ").join(" ").replace(/^ | $/g,"")}function ca(a,b,c){var f=c=a.length,e=function(){f--||(H.push(b),I||(q?q.set(z):setTimeout(z,0),I=!0))};for(e();c--;)Q[a[c]]?e():(v[a[c]]=v[a[c]]||[]).push(e)}function da(a,b,c,f,e){var d=l.createElement(a?"script":"link");u(d,"error",f);e&&u(d,"load",e);a?(d.type="text/javascript",d.async=!0,c&&/AUIClients|images[/]I/.test(b)&&d.setAttribute("crossorigin", "anonymous"),d.src=b):(d.rel="stylesheet",d.href=b);l.getElementsByTagName("head")[0].appendChild(d)}function R(a,b){return function(c,f){function e(){da(b,c,d,function(b){J?m("resource_unload"):d?(d=!1,m("resource_retry"),e()):(m("resource_error"),a.log("Asset failed to load: "+c));b&&b.stopPropagation?b.stopPropagation():g.event&&(g.event.cancelBubble=!0)},f)}if(S[c])return!1;S[c]=!0;m("resource_count");var d=!0;return!e()}}function ea(a,b,c){for(var f={name:a,guard:function(c){return b.guardFatal(a, c)},guardTime:function(a){return b.guardTime(a)},logError:function(c,d,e){b.logError(c,d,e,a)}},e=[],d=0;d<c.length;d++)A.hasOwnProperty(c[d])&&(e[d]=K.hasOwnProperty(c[d])?K[c[d]](A[c[d]],f):A[c[d]]);return e}function w(a,b,c,f,e){return function(d,k){function n(){var a=null;f?a=k:G(k)&&(q.start=r(),a=k.apply(g,ea(d,h,l)),q.end=r());if(b){A[d]=a;a=d;for(Q[a]=!0;(v[a]||[]).length;)v[a].shift()();delete v[a]}q.done=!0}var h=e||this;G(d)&&(k=d,d=D);b&&(d=d?d.replace(T,""):"__NONAME__",L.hasOwnProperty(d)&& h.error(p(", reregistered by ",p(" by ",d+" already registered",L[d]),h.attribution),d),L[d]=h.attribution);for(var l=[],m=0;m<a.length;m++)l[m]=a[m].replace(T,"");var q=x[d||"anon"+ ++fa]={depend:l,registered:r(),namespace:h.namespace};d&&ha.hasOwnProperty(d);c?n():ca(l,h.guardFatal(d,n),d);return{decorate:function(a){K[d]=h.guardFatal(d,a)}}}}function U(a){return function(){var b=Array.prototype.slice.call(arguments);return{execute:w(b,!1,a,!1,this),register:w(b,!0,a,!1,this)}}}function M(a,b){return function(c, f){f||(f=c,c=D);var e=this.attribution;return function(){h.push(b||{attribution:e,name:c,logLevel:a});var d=f.apply(this,arguments);h.pop();return d}}}function B(a,b){this.load={js:R(this,!0),css:R(this)};y(this,"namespace",b);y(this,"attribution",a)}function V(){l.body?k.trigger("a-bodyBegin"):setTimeout(V,20)}"use strict";var t=C.now=C.now||function(){return+new C},r=function(a){return a&&a.now?a.now.bind(a):t}(g.performance),ia=r(),ha={},n=g.ue;E();E("aui_build_date:3.24.1-2024-12-05");var W={getItem:function(a){try{return g.localStorage.getItem(a)}catch(b){}}, setItem:function(a,b){try{return g.localStorage.setItem(a,b)}catch(c){}}},q=g._pSetI(),H=[],ja=[],I=!1,ka=navigator.scheduling&&"function"===typeof navigator.scheduling.isInputPending;var z=function(){for(var a=q?q.set(z):setTimeout(z,0),b=t();ja.length||H.length;)if(H.shift()(),q&&ka){if(150<t()-b&&!navigator.scheduling.isInputPending()||50<t()-b&&navigator.scheduling.isInputPending())return}else if(50<t()-b)return;q?q.clear(a):clearTimeout(a);I=!1};var Q={},v={},S={},J=!1;u(g,"beforeunload",function(){J= !0;setTimeout(function(){J=!1},1E4)});var T=/^prv:/,L={},A={},K={},x={},fa=0,X=String.fromCharCode(92),h=[],Y=!0,Z=g.onerror;g.onerror=function(a,b,c,f,e){e&&"object"===typeof e||(e=Error(a,b,c),e.columnNumber=f,e.stack=b||c||f?p(X,e.message,"at "+p(":",b,c,f)):D);var d=h.pop()||{};e.attribution=p(":",e.attribution||d.attribution,d.name);e.logLevel=d.logLevel;e.attribution&&console&&console.log&&console.log([e.logLevel||"ERROR",a,"thrown by",e.attribution].join(" "));h=[];Z&&(d=[].slice.call(arguments), d[4]=e,Z.apply(g,d))};B.prototype={logError:function(a,b,c,f){b={message:b,logLevel:c||"ERROR",attribution:p(":",this.attribution,f)};if(g.ueLogError)return g.ueLogError(a||b,a?b:null),!0;console&&console.error&&(console.log(b),console.error(a));return!1},error:function(a,b,c,f){a=Error(p(":",f,a,c));a.attribution=p(":",this.attribution,b);throw a;},guardError:M(),guardFatal:M("FATAL"),guardCurrent:function(a){var b=h[h.length-1];return b?M(b.logLevel,b).call(this,a):a},guardTime:function(a){var b= h[h.length-1],c=b&&b.name;return c&&c in x?function(){var b=r(),e=a.apply(this,arguments);x[c].async=(x[c].async||0)+r()-b;return e}:a},log:function(a,b,c){return this.logError(null,a,b,c)},declare:w([],!0,!0,!0),register:w([],!0),execute:w([]),AUI_BUILD_DATE:"3.24.1-2024-12-05",when:U(),now:U(!0),trigger:function(a,b,c){var f=t();this.declare(a,{data:b,pageElapsedTime:f-(g.aPageStart||NaN),triggerTime:f});c&&c.instrument&&N.when("prv:a-logTrigger").execute(function(b){b(a)})},handleTriggers:function(){this.log("handleTriggers deprecated")}, attributeErrors:function(a){return new B(a)},_namespace:function(a,b){return new B(a,b)},setPriority:function(a){Y?Y=!1:this.log("setPriority only accept the first call.")}};var k=y(g,"AmazonUIPageJS",new B);var N=k._namespace("PageJS","AmazonUI");N.declare("prv:p-debug",x);k.declare("p-recorder-events",[]);k.declare("p-recorder-stop",function(){});y(g,"P",k);V();if(l.addEventListener){var aa;l.addEventListener("DOMContentLoaded",aa=function(){k.trigger("a-domready");l.removeEventListener("DOMContentLoaded", aa,!1)},!1)}var ba=l.documentElement,la=g._pd(k,F,u,O,ba,W,P,m,"3.24.1-2024-12-05");F(/UCBrowser/i)||la.localStorage&&O(ba,W.getItem("a-font-class"));k.declare("a-event-revised-handling",!1);g._sw(N,p,F,X,m,n,E,G,u,k);k.declare("a-fix-event-off",!1);m("pagejs:pkgExecTime",r()-ia)})(window,document,Date); (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://images-na.ssl-images-amazon.com/images/I/61ZS63EQSsL._RC|11Y+5x+kkTL.js,51-UZWCmY3L.js,11yKORv-GTL.js,11na7Dl1tFL.js,21uGjv2MRDL.js,01VRMV3FBdL.js,21BJeD9yjcL.js,01cS+tLhj4L.js,11rRjDLdAVL.js,51UOrPXYGsL.js,11YA5PIFcPL.js,11UNP9ncXuL.js,11qGWmpSUoL.js,11EWRk6r74L.js,21paGe30x-L.js,01490L6yBnL.js,51Xt+PG12aL.js,01JYHc2oIlL.js,31nfKXylf6L.js,01ezj5Rkz1L.js,11bEz2VIYrL.js,31o2NGTXThL.js,01rpauTep4L.js,01RMmNcPMuL.js_.js?AUIClients/AmazonUI#trident'); (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://images-na.ssl-images-amazon.com/images/I/616qGtYUw7L.js?AUIClients/DeXWebsiteAUIAssets'); </script> <div class="content-section"> <div class="docs"> <!-- jQuery (MIT license)--> <script src="https://amzndevresources.com/jekyll/js/jquery-3.6.0.min.js"></script> <!-- Bootstrap 4.4 css --> <link rel="stylesheet" href="https://amzndevresources.com/jekyll/css/bootstrap4.css"> <link rel="stylesheet" href="https://amzndevresources.com/jekyll/css/styleoverrides.css"> <link rel="stylesheet" href="https://amzndevresources.com/jekyll/css/popovers.css"> <!-- Navgoco --> <script src="https://amzndevresources.com/jekyll/js/jquery.navgoco.min.js"></script> <!-- jQuery cookie (MIT license)--> <script type="text/javascript" src="https://amzndevresources.com/jekyll/js/jquery.cookie.js"></script> <!-- Bootstrap (MIT license)--> <script src="https://amzndevresources.com/jekyll/js/bootstrap.4.4.1.bundle.min.js"></script> <!-- Anchor JS (MIT license)--> <script src="https://amzndevresources.com/jekyll/js/anchor.min.js"></script> <!-- Initialization scripts --> <script src="https://amzndevresources.com/jekyll/js/initialization_scripts.js"></script> <!-- Tech doc css fixes now incorporated into stylesheet --> <div class="container"> <!-- sidebar --> <div id="sidebar"> <!-- sidebar_hide_weblab --> <div class="mydocsidebar"> <div id="search-searchbar"></div> <script src="https://amzndevresources.com/alexa/jekyll/js/new-nav/CoveoJsSearch.min.js"></script> <link rel="stylesheet" href="https://amzndevresources.com/alexa/jekyll/js/new-nav/CoveoFullSearch.css"> <link rel="stylesheet" href="https://amzndevresources.com/jekyll/css/search.css"> <script> if (!window.newSearch) { document.addEventListener("DOMContentLoaded", function () { const searchBoxRoot = document.getElementById("searchbox"); const organizationId = "amazoncomproduction9q1by2xb"; const accessToken = "xx42d66989-6d5b-4bd4-bc36-d3b3a04aa40f"; Coveo.SearchEndpoint.configureCloudV2Endpoint(organizationId, accessToken); Coveo.initSearchbox(searchBoxRoot, "https://developer.amazon.com/docs/appstore/search.html"); }); } </script> <div id="searchbox" class="CoveoSearchInterface" data-enable-history="true" data-results-per-page="80" data-excerpt-length="120" data-enable-duplicate-filtering="true" data-pipeline="AppstoreTechDocs" style="display:none"> <script> document.addEventListener("DOMContentLoaded", function () { let root = document.querySelector("#searchbox"); // event handler to group results by “source” Coveo.$$(root).on("preprocessResults", function (e, args) { // Split the "title suffix" to be the "category" because we don't have anything else in yet in the index. let results = args.results.results.map((r) => { const title = r.title; if (title.includes("|")) { // set the category r.raw.category = title.split("|")[1].trim(); r.title = title.split("|")[0].trim(); } else { r.raw.category = "YouTube"; } return r; }); // sort results per category results = results.sort((a, b) => { return a.raw.category.localeCompare(b.raw.category); }); // Set a category Label for the first results of the category. // Keep only 3 items per category. let lastCategory = ""; let categoryCount = 0; results.forEach((r, idx) => { if (lastCategory !== r.raw.category) { lastCategory = r.raw.category; categoryCount = 0; r.raw.categoryLabel = r.raw.category; } categoryCount++; if (categoryCount > 3) { // we already have 3 items for this category r.toDelete = true; } }); // clear out the results marked for deletion results = results.filter((r) => !r.toDelete); args.results.results = results; }); }); $(document).ready(function () { $(".inline").click(function () { $(".coveo-show-if-no-results").hide(); }); }); document.addEventListener("DOMContentLoaded", function () { $("#searchbox .magic-box input").attr("placeholder", "Search Appstore Docs (BETA)"); }); </script> <div class="CoveoAnalytics" data-anonymous="true" data-search-hub="appstore-dropdown-search"></div> <div class="coveo-search-section"> <div class="CoveoSearchbox" data-enable-omnibox="true" data-enable-query-syntax="true" data-search-as-you-type-delay="300"> <div class="CoveoOmniboxResultList" data-layout="list"> <div class="coveo-show-if-results"> <script class="result-template" type="text/x-underscore"> <div> <% if (raw.categoryLabel ) { %> <div class="category-label CoveoFieldValue" data-field="@categoryLabel"></div> <% } %> <div class="co-highlight"> <div> <a class='CoveoResultLink'></a> </div> <div class='CoveoExcerpt'></div> <div class="CoveoFieldValue CoveoCrumb" data-field="@crumb"></div> </div> </div> </script> </div> <div class="coveo-show-if-no-results"> <p>No results found</p> <div class="co-empty">Try a different or more specific query.</div> </div> </div> </div> </div> </div> <script> document.addEventListener("DOMContentLoaded", function () { var searchInterface = document.querySelector("#searchbox"); Coveo.$$(searchInterface).on("populateOmnibox", function (e, populateOmniboxObject) { var linkElement = document.createElement("a"); var query = populateOmniboxObject.completeQueryExpression.word; if (!query) { return; } linkElement.href = "https://developer.amazon.com/docs/appstore/search.html#q=" + encodeURIComponent(query); linkElement.text = 'See more results for "' + query + '"'; linkElement.className = "coveo-omnibox-selectable co-more-results"; linkElement["no-text-suggestion"] = true; linkElement.addEventListener("keyboardSelect", function () { linkElement.click(); }); populateOmniboxObject.rows.push({ element: linkElement, zIndex: 0 }); }); }); </script> <div class="productTitle">Amazon Fire TV</div> <p class="external"> <a href="#" id="collapseAll">Collapse All</a> | <a href="#" id="expandAll">Expand All</a> </p> <ul id="docnavsidebar" class="docnav"> <li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Overview</a> <ul> <li class="level1items open"><a href="../fire-tv/getting-started-developing-apps-and-games.html">Get Started Developing Apps and Games</a></li> <li class="level1items"><a href="../fire-tv/toolkits-for-building-fire-tv-apps.html">Fire App Builder: A Toolkit for Building Fire TV Apps</a></li> <li class="level1items"><a href="../fire-tv/differences-from-android-tv-development.html">Fire TV Development Versus Android TV Development</a></li> <li class="level1items"><a href="../fire-tv/design-and-user-experience-guidelines.html">TV App Design UX Guidelines</a></li> <li class="level1items"><a href="../fire-tv/whats-new.html">What's New in Fire TV Development</a></li> <li class="level1items"><a href="../fire-tv/faq-general.html">Fire TV FAQs</a></li> <li class="level1items"><a href="../fire-tv/submitting-your-app-to-the-amazon-appstore.html">Submitting Your Fire TV App to the Appstore</a></li> <li class="level1items"><a href="../fire-tv/self-service-advertising.html">Promote Your App On Fire TV</a></li> <li class="level1items"><a href="../fire-tv/glossary-fire-tv.html">Glossary</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Automotive</a> <ul> <li class="level1items"><a href="../fire-tv/automotive-ux-guidelines.html">Automotive UX Guidelines</a></li> <li class="level1items"><a href="../fire-tv/automotive-add-touch.html">Add touch to Fire TV</a></li> <li class="level1items"><a href="../fire-tv/automotive-developer-reference.html">Automotive Developer Reference</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Fire TV Device Specifications</a> <ul> <li class="level1items"><a href="../fire-tv/device-specifications.html">Device Specifications Overview</a></li> <li class="level1items"><a href="../fire-tv/device-specifications-fire-tv-edition-smart-tv-na.html">Smart TV Specifications - NA</a></li> <li class="level1items"><a href="../fire-tv/device-specifications-fire-tv-edition-smart-tv-emea.html">Smart TV Specifications - EMEA</a></li> <li class="level1items"><a href="../fire-tv/device-specifications-fire-tv-edition-smart-tv-apac.html">Smart TV Specifications - APAC</a></li> <li class="level1items"><a href="../fire-tv/device-specifications-echo-show.html">Echo Show Specifications</a></li> <li class="level1items"><a href="../fire-tv/device-specifications-automotive.html">Automotive Specifications</a></li> <li class="level1items"><a href="../fire-tv/device-specifications-fire-tv-streaming-media-player.html">Fire TV Streaming Media Player Specifications</a></li> <li class="level1items"><a href="../fire-tv/device-specifications-fire-tv-cube.html">Fire TV Cube Specifications</a></li> <li class="level1items"><a href="../fire-tv/device-specifications-fire-tv-edition-soundbar.html">Fire TV Soundbar Specifications</a></li> <li class="level1items"><a href="../fire-tv/device-specifications-comparison-table.html">Comparison Table for Fire TV Devices</a></li> <li class="level1items"><a href="../fire-tv/fire-tv-edition-faq.html">Smart TV FAQ</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Set Up Your Development Environment</a> <ul> <li class="level1items"><a href="../fire-tv/setting-up-your-development-environment.html">Set Up Your Development Environment</a></li> <li class="level1items"><a href="../fire-tv/connecting-adb-to-device.html">Connect to Fire TV through ADB</a></li> <li class="level1items"><a href="../fire-tv/installing-and-running-your-app.html">Install and Run Your App</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Fire OS</a> <ul> <li class="level1items"><a href="../fire-tv/fire-os-overview.html">Fire OS Overview</a></li> <li class="level1items"><a href="../fire-tv/fire-os-6.html">Developing for Amazon Fire TV Devices Running Fire OS 6</a></li> <li class="level1items"><a href="../fire-tv/fire-os-7.html">Developing for Amazon Fire TV Devices Running Fire OS 7</a></li> <li class="level1items"><a href="../fire-tv/fire-os-8.html">Developing for Amazon Fire TV Devices Running Fire OS 8</a></li> <li class="level1items"><a href="../fire-tv/android-14-based-fire-tv.html">Developing for Amazon Fire TV Devices Running Android 14</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Controllers in Android Apps</a> <ul> <li class="level1items"><a href="../fire-tv/remote-input.html">Remote Control Input</a></li> <li class="level1items"><a href="../fire-tv/game-controller-input.html">Game Controller Input</a></li> <li class="level1items"><a href="../fire-tv/controller-input-with-unity.html">Controller Input with Unity</a></li> <li class="level1items"><a href="../fire-tv/identify-controllers.html">Identify Controllers</a></li> <li class="level1items"><a href="../fire-tv/controller-behavior-guidelines.html">Controller Behavior Guidelines</a></li> <li class="level1items"><a href="../fire-tv/controller-image-assets.html">Controller Image Assets</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Voice</a> <ul> <li class="level1items"><a href="../fire-tv/voice-enable-your-app-and-content.html">Overview for Voice-enabling Your App and Content</a></li> <li class="level1items"><a href="../fire-tv/mediasession-api-integration.html">Voice-enabling Transport Controls with Media Session API</a></li> <li class="level1items"><a href="../fire-tv/voice-scrolling-and-selection.html">In-App Voice Scrolling and Selection</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Multimedia</a> <ul> <li class="level1items"><a href="../fire-tv/managing-audio-focus.html">Managing Audio Focus</a></li> <li class="level1items"><a href="../fire-tv/testing-audio-focus.html">Testing Audio Focus</a></li> <li class="level1items"><a href="../fire-tv/dolby-integration-guidelines.html">Dolby Integration</a></li> <li class="level1items"><a href="../fire-tv/multimedia-app-requirements.html">Requirements for Multimedia Apps</a></li> <li class="level1items"><a href="../fire-tv/audio-video-synchronization.html">AV Synchronization in Android Applications</a></li> <li class="level1items"><a href="../fire-tv/4k-apis-for-hdmi-mode-switch.html">APIs for HDMI Mode Switch</a></li> <li class="level1items"><a href="../fire-tv/4k-tunnel-mode-playback.html">Tunnel Mode Playback</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Fire TV Integration SDK</a> <ul> <li class="level1items"><a href="../fire-tv/get-started-with-firetv-integration-sdk.html">Get Started with the Fire TV Integration SDK</a></li> <li class="level1items"><a href="../fire-tv/set-up-sample-app.html">Setup the Sample Fire TV App</a></li> <li class="level2 folderTitle"> <a class="subfoldersTitle" href="#">Content Personalization</a> <ul> <li class="level2items"><a href="../fire-tv/introduction-content-personalization.html">Introduction to Content Personalization</a></li> <li class="level3 folderTitle"> <a class="subfoldersTitle" href="#">Data Types</a> <ul> <li class="level3items"><a href="../fire-tv/watch-activity.html">Watch Activity</a></li> <li class="level3items"><a href="../fire-tv/watchlist.html">Watchlist</a></li> </ul> </li> </ul> </li> <li class="level1items"><a href="../fire-tv/data-type-reference.html">Data Type Reference</a></li> <li class="level1items"><a href="../fire-tv/summary-reference.html">Summary Reference Table</a></li> <li class="level1items"><a href="../fire-tv/general-troubleshooting-firetv-integration.html">Fire TV Integration SDK General Troubleshooting</a></li> <li class="level1items"><a href="../fire-tv/firetv-integration-release-notes.html">Release Notes</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Live TV Integrations</a> <ul> <li class="level2 folderTitle"> <a class="subfoldersTitle" href="#">Linear Integration</a> <ul> <li class="level2items"><a href="../fire-tv/introduction-linear-tv-integration.html">Introduction to Linear Television Integration</a></li> <li class="level2items"><a href="../fire-tv/tv-input-framework-on-fire-tv.html">TV Input Framework on Fire TV</a></li> <li class="level3 folderTitle"> <a class="subfoldersTitle" href="#">Step-by-step Integration Guide</a> <ul> <li class="level3items"><a href="../fire-tv/linear-tv-integration-guide-overview.html">Linear TV Integration Guide Overview</a></li> <li class="level3items"><a href="../fire-tv/import-tif-companion-library.html">Step 1: Import TIF Companion Library</a></li> <li class="level3items"><a href="../fire-tv/set-up-tvinputservice.html">Step 2: Set Up TvInputService</a></li> <li class="level3items"><a href="../fire-tv/insert-your-first-channel.html">Step 3: Insert Your First Channel</a></li> <li class="level3items"><a href="../fire-tv/insert-programs.html">Step 4: Insert Programs</a></li> <li class="level3items"><a href="../fire-tv/playback-in-fire-tv-ui.html">Step 5: Playback in Fire TV UI</a></li> <li class="level3items"><a href="../fire-tv/test-cases-for-linear-apps.html">Test Cases for Linear Apps</a></li> </ul> </li> <li class="level2items"><a href="../fire-tv/live-tv-resources.html">Live TV Resources</a></li> </ul> </li> <li class="level2 folderTitle"> <a class="subfoldersTitle" href="#">Events Integration</a> <ul> <li class="level2items"><a href="../fire-tv/live-events-integration.html">Events Integration on Fire TV</a></li> <li class="level2items"><a href="../fire-tv/test-cases-for-events-apps.html">Test Cases for Events Apps</a></li> </ul> </li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Development Best Practices</a> <ul> <li class="level1items"><a href="../fire-tv/customize-mouse-pointer.html">Mouse Pointers</a></li> <li class="level1items"><a href="../fire-tv/display-and-layout.html">Display and Layout</a></li> <li class="level1items"><a href="../fire-tv/media-players.html">Media Players</a></li> <li class="level1items"><a href="../fire-tv/identify-amazon-fire-tv-devices.html">Identifying Fire TV Devices</a></li> <li class="level1items"><a href="../fire-tv/handling-hdmi-events.html">HDMI Events</a></li> <li class="level1items"><a href="../fire-tv/user-interface.html">Android Menu and ActionBar widgets</a></li> <li class="level1items"><a href="../fire-tv/dial-integration.html">DIAL Integration</a></li> <li class="level1items"><a href="../fire-tv/implementing-search.html">Search</a></li> <li class="level1items"><a href="../fire-tv/notifications.html">Notifications</a></li> <li class="level1items"><a href="../fire-tv/specifying-installation-location.html">App Installation Location</a></li> <li class="level1items"><a href="../fire-tv/advertising-id.html">Advertising ID</a></li> <li class="level1items"><a href="../fire-tv/deep-linking-featured-content.html">Deep Linking to Featured Content from the Fire TV UI</a></li> <li class="level1items"><a href="../fire-tv/international-locales.html">Resources for International Locales</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">How to Build an Android App for Fire TV</a> <ul> <li class="level1items"><a href="../fire-tv/creating-media-streaming-app.html">Step 1: Create a Media Streaming App</a></li> <li class="level1items"><a href="../fire-tv/leanback-enabled-android-app.html">Step 2: Understand the Anatomy of a Leanback-Enabled Android App for Amazon Fire TV</a></li> <li class="level1items"><a href="../fire-tv/browsing-content-leanback-enabled-android-app.html">Step 3: Browse the Content of a Leanback-Enabled Android App</a></li> <li class="level1items"><a href="../fire-tv/editing-through-presenters.html">Step 4: Edit the User Interface Through Presenters</a></li> <li class="level1items"><a href="../fire-tv/providing-details-detailsfragment.html">Step 5: Provide the Details of the App Content Through the DetailsFragment</a></li> <li class="level1items"><a href="../fire-tv/how-to-play-video-content.html">Step 6: Play Video Content with the PlaybackOverlayFragment</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Developer Tools and System X-ray</a> <ul> <li class="level1items"><a href="../fire-tv/developer-tools.html">Developer Tools Menu</a></li> <li class="level1items"><a href="../fire-tv/system-xray.html">System X-Ray</a></li> <li class="level1items"><a href="../fire-tv/system-xray-customized-metrics.html">Customizing System X-Ray</a></li> <li class="level1items"><a href="../fire-tv/network-proxy.html">Network Proxy</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Accessibility</a> <ul> <li class="level1items"><a href="../fire-tv/assistive-technologies-fire-os.html">Assistive Technologies for Fire OS</a></li> <li class="level1items"><a href="../fire-tv/implement-accessibility-fire-os.html">Implement Accessibility in Fire OS</a></li> <li class="level1items"><a href="../fire-tv/implement-voiceview-accessibility-features-fire-os.html">Implement VoiceView Accessibility Features</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Recommendations</a> <ul> <li class="level1items"><a href="../fire-tv/recommendations-overview.html">Recommendations Overview</a></li> <li class="level1items"><a href="../fire-tv/recommendations-send-recommendations.html">Send Recommendations that Include Amazon Extras</a></li> <li class="level1items"><a href="../fire-tv/recommendations-testing.html">Test Your Recommendations</a></li> <li class="level1items"><a href="../fire-tv/recommendations-best-practices.html">Best Practices with Recommendations</a></li> <li class="level1items"><a href="../fire-tv/recommendations-faq.html">Recommendations FAQ</a></li> </ul> </li><li class="level1 folderTitle"> <a class="subfoldersTitle" href="#">Web Apps for Fire TV</a> <ul> <li class="level1items"><a href="../fire-tv/getting-started-with-web-apps.html">Get Started with Web Apps</a></li> <li class="level1items"><a href="../fire-tv/supporting-controllers-in-web-apps.html">Web App Controllers</a></li> <li class="level1items"><a href="../fire-tv/customizing-your-web-app.html">Customize your App</a></li> <li class="level1items"><a href="../fire-tv/user-agent-strings.html">User Agent Strings</a></li> <li class="level1items"><a href="../fire-tv/migrating-your-web-app.html">Migrate Your Existing Web App</a></li> <li class="level1items"><a href="../fire-tv/cordova-plugin-catalog.html">Cordova plugin for Amazon Catalog Integration</a></li> <li class="level1items"><a href="../fire-tv/web-app-faq.html">Web App FAQ</a></li> <li class="level1items"><a href="../fire-tv/webapp-http-caching.html">HTTP Caching</a></li> <li class="level1items"><a href="../fire-tv/webapp-app-security.html">Protect Your Web App</a></li> <li class="level1items"><a href="../fire-tv/webapp-app-tester.html">Install and Use the Amazon Web App Tester</a></li> <li class="level1items"><a href="../fire-tv/webapp-debug-app.html">Use the Debug APK to Test Your App</a></li> <li class="level1items"><a href="../fire-tv/webapp-use-debug-apk.html">Install and Run the Debug APK to Test Your App</a></li> <li class="level1items"><a href="../fire-tv/hybrid-apps-overview.html">HTML5 Hybrid Apps</a></li> <li class="level1items"><a href="../fire-tv/build-and-test-your-hybrid-app.html">Build and Test Your HTML5 Hybrid App</a></li> <li class="level1items"><a href="../fire-tv/web-hybrid-app-faq.html">HTML5 Hybrid App FAQs</a></li> </ul> </li> </ul> <hr class="resourceSeparator"> <div class="relatedResources">Related Resources</div> <ul id="entrypages"> <li><a href="../catalog/getting-started-catalog-ingestion.html">Catalog Integration</a></li> <li><a href="../fire-app-builder/overview.html">Fire App Builder</a></li> <li><a href="../app-submission/getting-started.html">Appstore Submission</a></li> <li><a href="../reports-promo/payments-understand.html">Revenue Reports and Promotions</a></li> <li><a href="../app-testing/test-criteria.html">App Testing</a></li> <li><a href="../policy-center/understanding-content-policy.html">Policy Center</a></li> <li><a href="../fire-tablets/ft-get-started.html">Fire Tablets</a></li> <li><a href="../in-app-purchasing/iap-whats-new.html">In-App Purchasing API</a></li> <li><a href="../fling/understanding-the-amazon-fling-service.html">Fling SDK</a></li> <li><a href="https://community.amazondeveloper.com/tag/appstore-fire-tv">Fire TV Forum</a></li> <li><a href="https://developer.amazon.com/blogs/appstore/tag/Amazon+Fire+TV">Fire TV Blog (Appstore)</a></li> <li><a href="https://amazonfiretv.blog/tagged/product-updates">Fire TV Blog (Consumer)</a></li> </ul> </div> <script> $("li.open").parents('li').toggleClass("open"); </script> </div> <!-- main area --> <div class="mainColumn"> <div id="content"> <h1>Getting Started Developing Apps and Games for Fire TV</h1> <script> function activateContentBasedOnHash() { const currentHash = window.location.hash.substring(1); if (currentHash) { const contentElement = document.getElementById(currentHash); if (contentElement) { activateTabAndContent(contentElement); scrollToHashWithOffset(contentElement); } } } function activateTabAndContent(contentElement) { const tabSection = contentElement.closest('.tab-pane'); if (tabSection) { const parentTabLink = document.querySelector(`a[href='#${tabSection.id}']`); if (parentTabLink) { const parentNavTabs = parentTabLink.closest('.nav-tabs'); if (parentNavTabs) { parentNavTabs.querySelectorAll('.nav-link').forEach(link => { link.classList.remove('active', 'show'); }); parentTabLink.classList.add('active', 'show'); } const parentTabContent = tabSection.closest('.tab-content'); if (parentTabContent) { parentTabContent.querySelectorAll('.tab-pane').forEach(tab => { tab.classList.remove('active', 'show'); }); tabSection.classList.add('active', 'show'); } } } } function scrollToHashWithOffset(contentElement) { const header = document.querySelector('.dpHeader'); const totalHeaderHeight = header ? header.offsetHeight + 80 : 80; const targetPosition = contentElement.offsetTop; window.scrollTo({ top: targetPosition - totalHeaderHeight, behavior: 'smooth' }); } document.addEventListener('DOMContentLoaded', () => { setTimeout(activateContentBasedOnHash, 10); }); </script> <p>When developing apps for Fire TV, you can choose from a variety of frameworks and options depending on your skillset (Java developer, web developer, or content developer), your platform preference (Android or HTML5 web app), the features you want (advertising, authentication, etc.), and more. The information here will help you get started in building an app.</p> <ul id="markdown-toc"> <li><a href="#options-for-building-fire-tv-apps" id="markdown-toc-options-for-building-fire-tv-apps">Options for Building Fire TV Apps</a></li> <li><a href="#android-app-development-for-amazon-fire-tv" id="markdown-toc-android-app-development-for-amazon-fire-tv">Android App Development for Amazon Fire TV</a></li> <li><a href="#html5-web-app-development-for-amazon-fire-tv" id="markdown-toc-html5-web-app-development-for-amazon-fire-tv">HTML5 Web App Development for Amazon Fire TV</a></li> <li><a href="#apis-for-your-amazon-fire-tv-app" id="markdown-toc-apis-for-your-amazon-fire-tv-app">APIs for Your Amazon Fire TV App</a></li> <li><a href="#device-and-media-specifications" id="markdown-toc-device-and-media-specifications">Device and Media Specifications</a></li> <li><a href="#amazon-fire-tv-forums" id="markdown-toc-amazon-fire-tv-forums">Amazon Fire TV Forums</a></li> </ul> <h2 id="options-for-building-fire-tv-apps">Options for Building Fire TV Apps</h2> <p>To build an app for Amazon Fire TV, you have several options:</p> <ul> <li> <p><strong>Custom Android App</strong>: The recommended way to build a Fire TV app is to use Android tools (like <a href="https://developer.android.com/studio/">Android Studio</a> and <a href="https://developer.android.com/">Android frameworks</a>) to <a href="https://developer.android.com/training/tv/start/">build a TV app</a>. Sample code, documentation, and guidelines are available to help you make the most of your apps in the Android documentation. Additionally, see the high-level tutorial <a href="../fire-tv/creating-media-streaming-app.html">Build an Android App for Fire TV</a>. Most apps that work on Android will also work on Fire TV because Fire TV is built on Android. The only difference is with services — for Fire TV, you'll want to use Amazon services instead of Google services (see <a href="../fire-tv/differences-from-android-tv-development.html">How Fire TV Development Differs from Android TV Development</a>). Additionally, you'll need to accommodate three different versions of <a href="../fire-tv/fire-os-overview.html">Fire OS</a>:</p> <ul> <li>Fire OS 5: Based on Android 5.1 (Lollipop, API level 22)</li> <li><a href="../fire-tv/fire-os-6.html">Fire OS 6</a>: Based on Android 7.1 (Nougat, API level 25)</li> <li><a href="../fire-tv/fire-os-7.html">Fire OS 7</a>: Based on Android 9 (Pie, API level 28)</li> </ul> </li> <li> <p><strong>Fire App Builder</strong>: Fire App Builder is a robust development framework created by Amazon specifically for producing Fire TV media apps. It is based on Java and uses Android Studio, Gradle, and other tools common to Android development. When you create an app with Fire App Builder, you configure the settings for your data feed, screen layouts, and functionality through a series of JSON files. Similarly, simple config file changes allow you to customize the look and feel of your app with no Java coding. Fire App Builder is designed to help you create high-quality media apps without advanced Java programming, but it is also extensible. If you are comfortable coding in Java, you are free to build on top of Fire App Builder to add more advanced features. See <a href="../fire-app-builder/overview.html">Fire App Builder: A Starter Kit for Java-based Amazon Fire TV and Android Apps</a> for more details.</p> </li> <li> <p><strong>Game App</strong>: If you're building a game app, there are many third-party development frameworks that work with Android, so you have lots of alternatives to choose from. If you are proficient using Unity, Cocos2d-x, GameMaker, or one of the many other systems popular among mobile app developers, you will find it straightforward to package your game for Fire TV. If you can produce an .APK file, you can probably install it on Fire TV.</p> </li> </ul> <p>In choosing the right option, consider your skill set. Are you Java-based Android developer, an HTML5/web developer, or a content creator? Choose an approach that aligns with your expertise and app requirements.</p> <h2 id="android-app-development-for-amazon-fire-tv">Android App Development for Amazon Fire TV</h2> <p>For Java-based Android developers, Amazon Fire TV uses the same tools, IDEs, and APIs you're already used to for Android development. If you're building your own app from scratch, see these topics:</p> <ul> <li><a href="../fire-tv/setting-up-your-development-environment.html">Setting Up Your Development Environment</a>: If you're new to Android development, this page helps you get started.</li> <li><a href="../fire-tv/connecting-adb-to-device.html">Connecting to Amazon Fire TV Through ADB</a>: Connect your development computer to a Fire TV device over adb.</li> <li><a href="../fire-tv/installing-and-running-your-app.html">Installing and Running Your App</a>: Install, run, and uninstall your app on a Fire TV device for testing before you submit it to the Appstore.</li> </ul> <p>If you're an experienced Android developer, also check out this list of what's <a href="../fire-tv/differences-from-android-tv-development.html">different about developing on Fire OS</a>.</p> <h2 id="html5-web-app-development-for-amazon-fire-tv">HTML5 Web App Development for Amazon Fire TV</h2> <p>See <a href="../fire-tv/getting-started-with-web-apps.html">Getting Started with Web Apps</a> for tips on building a web app.</p> <h2 id="apis-for-your-amazon-fire-tv-app">APIs for Your Amazon Fire TV App</h2> <p>When you build your Amazon Fire TV app, you can also implement other Amazon APIs to provide a more robust experience:</p> <ul> <li><a href="../in-app-purchasing/iap-overview.html">In-App Purchasing API</a>: When customers buy Fire TV devices and register with their Amazon accounts, they are already set up with their Amazon payment profiles and are ready to purchase apps or in-app items with no further effort. Amazon Fire TV and Fire TV Stick support the Amazon In-App Purchasing API, so you can offer consumable items, permanently entitled items, and even subscriptions for sale in your app.</li> <li><a href="../fling/understanding-the-amazon-fling-service.html">Amazon Fling SDK</a>: The Amazon Fling SDK allows customers to fling or cast the screen that appears on their phone or tablet directly onto their television. Extending apps to two screens allows more than one person to engage with your app.</li> </ul> <p>To see more Fire TV APIs and SDKs, see <a href="https://developer.amazon.com/apps-and-games/sdks">SDKs and samples</a>.</p> <h2 id="device-and-media-specifications">Device and Media Specifications</h2> <p>If you're looking for information about the media, device, and specifications Amazon Fire TV supports, such as video formats, DRM, codecs, resolution rates, and more, see <a href="../fire-tv/device-specifications.html">Fire TV Device Specifications</a>. Detailed developer specifications are available for each device.</p> <p>In general, Fire TV is flexible and provides high performance across a wide range of applications. It has a powerful quad-core CPU and a dedicated GPU. The hardware on the latest Amazon Fire TV offers 2GB RAM, 8GB internal storage, support for 4K video output, support for HDR, and Dolby Atmos audio. These features mean that Fire TV has the muscle to run all sorts of apps and games—streaming media is just one more thing it handles well.</p> <h2 id="amazon-fire-tv-forums">Amazon Fire TV Forums</h2> <p>If you need help, have a question, or want to share other feedback, use the <a href="https://community.amazondeveloper.com/tag/appstore-fire-tv">Fire TV and Fire TV Stick categories</a> on the Amazon Developer Forum.</p> <hr> <p id="tech-docs-updated-date"><small><i>Last updated: Oct 29, 2024</i></small></p> </div> </div> </div><!--/.container--> </div><!--/.page-container--> <style> .dpFooter .dpfNav { min-height: 220px; } </style> <link rel="stylesheet" href="https://amzndevresources.com/jekyll/css/search-fullpage.css"> <link rel="stylesheet" href="https://amzndevresources.com/jekyll/js/unload.js"> </div> <section class="dp-content-slot dp-content-pixel-tracker-slot"> <div class="dp-content-slot-inner container"> </div> </section> <footer class='dpFooter'> <a class='dpfBackToTopLink' href='#'>Back to top</a> <nav class="dpfNav accordion clearfix"> <div class='dpfWidth'> <div class='dpfnHideRightMargin'> <div class='dpfnColWrap'> <div class="dpfnCol"> <div class="dpfnGroup accrItem"> <div class='dpIconArrow accrHandle'></div> <h3>Resources</h3> <ul> <li><a href="/apps-and-games/blogs">Appstore Developer Blog</a></li> <li><a href="/apps-and-games/documentation">Technical Documentation</a></li> <li><a href="/apps-and-games/devhuddle">Amazon Developer Huddle</a></li> </ul> </div> </div> <div class="dpfnCol"> <div class="dpfnGroup accrItem"> <div class='dpIconArrow accrHandle'></div> <h3>Supported devices</h3> <ul> <li><a href="/apps-and-games/fire-tv">Amazon Fire TV</a></li> <li><a href="/apps-and-games/fire-tablets">Fire tablets</a></li> </ul> </div> </div> </div> <div class='dpfnColWrap'> <div class="dpfnCol"> <div class="dpfnGroup accrItem"> <div class='dpIconArrow accrHandle'></div> <h3>Other services & APIs</h3> <ul> <li><a href="/apps-and-games/small-business-program">Small Business Accelerator Program</a></li> <li><a href="/docs/reports-promo/promo-overview.html ">Developer Promotions Console</a></li> <li><a href="/apps-and-games/alexa-for-video-publishers">Alexa for video publishers</a></li> <li><a href="/apps-and-games/login-with-amazon">Login with Amazon</a></li> <li><a href="/docs/amazon-data-portability/overview.html">Amazon Data Portability</a></li> <li><a href="/frustration-free-setup">Frustration-Free Setup</a></li> <li><a href="/incentives-api">Amazon Incentives API</a></li> <li><a href="/apps-and-games/merch">Amazon Merch on Demand</a></li> <li><a href="/docs/music/landing_home.html">Amazon Music</a></li> </ul> </div> </div> <div class="dpfnCol"> <div class="dpfnGroup accrItem"> <div class='dpIconArrow accrHandle'></div> <h3>Support</h3> <ul> <li><a href="https://community.amazondeveloper.com/">Appstore Developer Community</a></li> <li><a href="/docs/app-submission/faq-landing.html">FAQs</a></li> <li><a href="/support/contact-us">Contact Us</a></li> </ul> </div> <div class="dpfnGroup accrItem"> <div class='dpIconArrow accrHandle'></div> <h3>Legal</h3> <ul> <li><a href="/terms-and-agreements">Terms & Agreements</a></li> <li><a href="https://www.amazon.com/gp/help/customer/display.html?nodeId=GX7NJQ4ZB8MHFRNJ">Privacy Notice</a></li> </ul> </div> </div> </div> </div> </div> </nav> <div class="dpfSocialLocal clearfix"> <div class='dpfWidth'> <div class='dpfLocale'> <nav class="dpLangSwitcher dpsfFlyout"> <span class='dplsTitle'>Language</span> <div class='dplsSwitch'> <span class="dplsCurrent dpsfFlyoutCurrent"> <i class='dpsfIcon dpsfIconGlobe'></i> English </span> <div class='dplsOptionsWrap dpsfFlyoutWrap'> <ul class="dplsOptions dpsfFlyoutContent"> <li class="dplsOption dpsfFlyoutItem dplsOptionActive"> <a data-locale="en_US" href="/docs/fire-tv/getting-started-developing-apps-and-games.html"> English </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="zh_CN" href="/zh/docs/fire-tv/getting-started-developing-apps-and-games.html"> Chinese (中文) </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="ja_JP" href="/ja/docs/fire-tv/getting-started-developing-apps-and-games.html"> Japanese (日本語) </a> </li> </ul> </div> </div> </nav> </div> <div class="dpfSocial"> <span class="dpfSocialTitle"> Follow Us: </span> <a href="https://www.youtube.com/channel/UCT9ApARFgQJOeqD-ygmxnJQ"> <img src="https://m.media-amazon.com/images/G/01/mobile-apps/dex/logo-youtube.png" alt="youtube_icon"/> </a> <a href="https://www.linkedin.com/showcase/amazon-appstore-developers"> <img src="https://m.media-amazon.com/images/G/01/mobile-apps/dex/logo_linkedin._CB1704305834_.png" alt="linkedin_icon"/> </a> <a href="https://www.twitter.com/AmazonAppDev"> <img src="https://m.media-amazon.com/images/G/01/mobile-apps/dex/logo_X.png" alt="X_icon"/> </a> <a href="https://www.facebook.com/AmazonAppDev"> <img src="https://m.media-amazon.com/images/G/01/mobile-apps/dex/logo_facebook02.png" alt="facebook_icon"/> </a> <a href="/apps-and-games/blog"> <img src="https://images-na.ssl-images-amazon.com/images/G/01/mobile-apps/dex/logo-blog._V290989945_.png" alt="blog_icon"/> </a> </div> </div> </div> <div class="dpfAreaOfInterest dpsfFlyout"> <span class='dpfaCurrent'> <i class='dpsfIcon dpsfIconDots'></i> </span> <div class="dpfWidth dpsfFlyoutWrap"> <div class="dpfaItems dpsfFlyoutContent"> <h3><hza:string id="area_of_interest_title" /></h3> <div class="dpfaItem dpsfFlyoutItem"> <a href="/alexa"> <span class='dpfaiText'>Alexa</span> <img src="https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/white/Alexalogoheaderwhite._V506548913_.png" alt="Alexa" /> </a> </div> <div class="dpfaItem dpsfFlyoutItem"> <a href="/apps-and-games"> <span class='dpfaiText'>Amazon Appstore</span> <img src="https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/white/Appstorelogowhite.png" alt="Amazon Appstore" /> </a> </div> <div class="dpfaItem dpsfFlyoutItem"> <a href="https://aws.amazon.com"> <span class='dpfaiText'>Amazon Web Services</span> <img src="https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/white/AWS_logo_RGB_WHT._CB1506540482_.png" alt="Amazon Web Services" /> </a> </div> </div> </div> </div> <div class="dpfCopyright"> © 2010-2025, Amazon.com, Inc. or its affiliates. All Rights Reserved. </div> </footer> </div></body> <!-- Google Tag Manager (noscript) --> <noscript><iframe sandbox src="https://www.googletagmanager.com/ns.html?id=GTM-5LVXJD4" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> </html>

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