page.title=Android TV
page.viewport_width=970
fullpage=true
no_footer_links=true
page.type=about

@jd:body

<style>
.fullpage>#footer,
#jd-content>.content-footer.wrap {
  display:none;
}
</style>


<div class="landing-body-content">

  <div class="landing-hero-container">

    <div class="landing-section tv-hero">
      <div class="landing-hero-scrim"></div>
      <div class="landing-hero-wrap">
        <div class="vertical-center-outer">
          <div class="vertical-center-inner">

            <div class="col-10">
              <div class="landing-section-header">
                <div class="landing-h1 hero">Android TV</div>
                <div class="landing-subhead hero">Big screen apps, games, and content</div>
                <div class="landing-hero-description">
                  <p>Recommend great content to users right on the home screen.
                    Enable users to find movies through voice search.
                    Engage users with fluid, immersive games.</p>
                </div>
              </div>

              <div class="landing-body">
                <a href="{@docRoot}preview/tv/start/index.html" class="landing-button
                  landing-primary" style="margin-top: 40px;">
                  Get Started
                </a>
              </div>
            </div>
          </div>
        </div>
      </div> <!-- end .wrap -->
      <div class="landing-scroll-down-affordance">
        <a class="landing-down-arrow" href="#reimagine-your-app">
          <img src="{@docRoot}wear/images/carrot.png" alt="Scroll down to read more">
        </a>
      </div>
    </div> <!-- end .landing-section .landing-hero -->

    <div class="landing-rest-of-page">

      <div class="landing-section" style="background-color:#f5f5f5" id="reimagine-your-app">
        <div class="wrap">

          <div class="landing-section-header">
            <div class="landing-h1">Reimagine Your App</div>
            <div class="landing-subhead">
              Design your app to shine on the biggest screen in the house.
            </div>
          </div>

          <div class="landing-body landing-align-center">
            <img src="{@docRoot}tv/images/atv-framed.png" alt="Android TV" >
            <p>Simple. Cinematic. Beautiful.</p>
            <p class="landing-small">
              Smooth, fast interactions are key to a successful TV app. Keep navigation simple
              and light. <br>Bring your content forward to let users enjoy it with a minimum of
              effort.
            </p>
            <p class="landing-small">
              <a href="{@docRoot}preview/tv/design/index.html">Learn about design for TV</a>
            </p>
          </div>

        </div>  <!-- end .wrap -->
      </div>  <!-- end .landing-section -->

      <div class="landing-section landing-gray-background">
        <div class="wrap">
          <div class="landing-section-header">
            <div class="landing-h1">Build to Entertain</div>
            <div class="landing-subhead">
              Android TV lets you engage your users in a new, shared environment.<br>
              Find out how to get your app ready for its big-screen debut.
            </div>
          </div>


          <div class="landing-body">
            <div class="landing-breakout cols">

              <div class="col-3-wide">
                <img src="{@docRoot}tv/images/components.png" alt="TV layout components"
                  style="margin-left: 23px;">

                <p>Made for TV</p>
                <p class="landing-small">
                  Take advantage of pre-built fragments for browsing and interacting with media
                  catalogs.
                </p>
                <p class="landing-small">
                  <a href="{@docRoot}preview/tv/ui/browse.html">Learn pre-built fragments</a>
                </p>
              </div>

              <div class="col-3-wide">
                <img src="{@docRoot}tv/images/search.png" alt="Search"
                  style="margin-left: 23px;">

                <p>Get Found</p>
                <p class="landing-small">
                  Help users find your content quickly with in-app searching.
                </p>
                <p class="landing-small">
                  <a href="{@docRoot}preview/tv/ui/in-app-search.html">Learn about app search</a>
                </p>
              </div>

              <div class="col-3-wide">
                <img src="{@docRoot}tv/images/recommendations.png" alt="Recommendations"
                  style="margin-left: 23px;">

                <p>Recommend</p>
                <p class="landing-small">
                  Suggest content from your app to keep your users coming back.
                </p>
                <p class="landing-small">
                  <a href="{@docRoot}preview/tv/ui/recommendations.html">Learn about
                    recommendations</a>
                </p>
              </div>

            </div>

          </div>
        </div>  <!-- end .wrap -->
      </div> <!-- end .landing-section -->

      <div class="landing-section landing-red-background" id="start">
        <div class="wrap">
          <div class="landing-section-header">
            <div class="landing-h1 landing-align-left">Get Started with Android TV</div>
            <div class="landing-body">
              <p>Begin building TV apps right away using these developer resources:</p>
            </div>
          </div>

          <div class="landing-body">
            <div class="landing-breakout cols">
              <div class="col-8" style="margin-left: -8px;">
                <p style="font-size: 24px;">L Developer Preview</p>
                <p>
                   Get all the tools you need to build and test TV apps. Download the preview and
                   start creating your big-screen experience.
                </p>

              </div>

              <div class="col-8">
                <p style="font-size: 24px;">ADT-1 Developer Kit</p>
                <p>
                  Request an <a href="{@docRoot}preview/tv/adt-1/index.html"
                  style="color: white;"><u>ADT-1 Developer Kit</u></a>, a compact and powerful
                  streaming media player and gamepad, ideal for developing and testing apps for TV.
                </p>

              </div>

            </div>
          </div>

          <div class="landing-body">
            <div class="landing-breakout cols">

              <div class="col-8">
                <a href="{@docRoot}preview/tv/start/index.html" class="landing-button landing-primary">
                  Get Started
                </a>
              </div>

              <div class="col-8">
                <a href="https://support.google.com/googleplay/android-developer/contact/adt_request"
                  class="landing-button landing-primary">
                  Request the ADT-1 Developer Kit
                </a>
              </div>
            </div>
          </div>

        </div>  <!-- end .wrap -->
      </div> <!-- end .landing-section -->

    </div> <!-- end .landing-rest-of-page -->

      <div class="content-footer wrap" itemscope="" itemtype="http://schema.org/SiteNavigationElement"
        style="border-top: none;">
        <div class="layout-content-col col-16" style="padding-top:4px">
          <style>#___plusone_0 {float:right !important;}</style>
          <div class="g-plusone" data-size="medium"></div>
        </div>
      </div>
      <div id="footer" class="wrap" style="width:940px;position:relative;top:-35px;z-index:-1">
        <div id="copyright">
          Except as noted, this content is
          licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
          Creative Commons Attribution 2.5</a>. For details and
          restrictions, see the <a href="/license.html">Content
          License</a>.
        </div>
      </div>

  </div> <!-- end .landing-hero-container -->

  <script>
  $("a.landing-down-arrow").on("click", function(e) {
    $("body").animate({
      scrollTop: $(".tv-hero").height() + 120
    }, 1000, "easeOutQuint");
    e.preventDefault();
  });
  </script>

</div> <!-- end landing-body-content -->

