home=true
@jd:body


<div id="mainBodyFixed">
              <div id="mainBodyLeft">			
                    <div id="homeMiddle">
                        <div id="topAnnouncement">
                            <div id="homeTitle">
                                <h2>Developer Announcements</h2>
                            </div><!-- end homeTitle -->
                            <div id="announcement-block">
                            <!-- total max width is 520px -->
                                  <img src="{@docRoot}assets/images/home/IO-logo-2011.png"
alt="Android at Google IO 2011" width="200px"
style="padding-left:22px;padding-bottom:15px;padding-top:15px;"/>
                                  <div id="announcement" style="width:275px">
    <p>Thanks to everybody who joined us at Google I/O! If you couldn't make it or would like to
review any of the Android sessions, they're now available on YouTube at the <a
href="http://www.youtube.com/googledevelopers">Google Developers</a> channel, along with the keynote
and other developer sessions. You can also find all the Google I/O Android sessions on this site, on
the <a href="{@docRoot}videos/index.html">Videos</a> page.</p>
                                </div> <!-- end annoucement -->
                            </div> <!-- end annoucement-block -->
                        </div><!-- end topAnnouncement -->
                        <div id="carouselMain" style="height:205px"> <!-- this height can be
                                                            adjusted based on the content height -->
                        </div>
                            <div class="clearer"></div>
                        <div id="carouselWheel">
                            <div class="app-list-container" align="center"> 
                                <a href="javascript:{}" id="arrow-left" onclick="" class="arrow-left-off"></a>
                                <div id="list-clip">
                                    <div style="left: 0px;" id="app-list">
                                      <!-- populated by buildCarousel() -->
                                    </div>
                                </div><!-- end list-clip -->
                                <a href="javascript:{ page_right(); }" id="arrow-right" onclick="" class="arrow-right-on"></a>
                                <div class="clearer"></div>
                            </div><!-- end app-list container -->
                        </div><!-- end carouselWheel -->
                    </div><!-- end homeMiddle -->

                    <div style="clear:both">&nbsp;</div>
              </div><!-- end mainBodyLeft -->

              <div id="mainBodyRight">
                      <table id="rightColumn">
                              <tr>
                                      <td class="imageCell"><a href="{@docRoot}sdk/index.html"><img src="{@docRoot}assets/images/icon_download.jpg" style="padding:0" /></a></td>
                                      <td>
                                              <h2 class="green">Download</h2>
                                              <p>The Android SDK has the tools, sample code, and docs you need to create great apps.</p>
                                              <p><a href="{@docRoot}sdk/index.html">Learn more &raquo;</a></p>
                                      </td>
                              </tr>
                              <tr>
                                      <td colspan="2"><div class="seperator">&nbsp;</div></td>
                              </tr>
                              <tr>
                                      <td class="imageCell"><a href="http://www.android.com/market.html"><img src="{@docRoot}assets/images/icon_market.jpg" style="padding:0" /></a></td>
                                      <td>
                                              <h2 class="green">Publish</h2>
                                              <p>Android Market is an open service that lets you distribute your apps to handsets.</p>
                                              <p><a href="http://market.android.com/publish">Learn more &raquo;</a></p>
                                      </td>
                              </tr>
                              <tr>
                                      <td colspan="2"><div class="seperator">&nbsp;</div></td>
                              </tr>
                              <tr>
                                      <td class="imageCell"><a href="http://source.android.com"><img src="{@docRoot}assets/images/icon_contribute.jpg" style="padding:0" /></a></td>
                                      <td>
                                              <h2 class="green">Contribute</h2>
                                              <p>Android Open Source Project gives you access to the entire platform source.</p>
                                              <p><a href="http://source.android.com">Learn more &raquo;</a></p>
                                      </td>
                              </tr>
                              <tr>
                                      <td colspan="2"><div class="seperator">&nbsp;</div></td>
                              </tr>
                              <tr>
                                      <td class="imageCell"><a
href="{@docRoot}resources/dashboard/platform-versions.html"><img
src="{@docRoot}images/icon_dashboard.png" style="padding:0" /></a></td>
                                      <td>
                                              <h2 class="green">Target Devices</h2>
                                              <p>The Device Dashboard
provides information about deployed Android devices to
help you target suitable device configurations as you build and update your
apps.</p>
                                              <p><a
href="{@docRoot}resources/dashboard/platform-versions.html">Learn more &raquo;</a></p>
                                      </td>
                              </tr>

                      </table>
              </div>
	</div>

<!--[if lte IE 6]>
  <style>
    #arrow-left {
      margin:0 0 0 5px;
    }
    #arrow-right {
      margin-left:0;
    }
    .app-list-container {
      margin: 37px 0 0 23px;
    }
    div#list-clip { 
      width:468px;
    }
  </style>
<![endif]-->

<script type="text/javascript">

// * -- carousel dictionary -- * //
  /* layout:  imgLeft, imgRight, imgTop
     icon:    image for carousel entry. cropped (height:70px, width:90px)
     name:    string for carousel entry
     img:     image for bulletin post. cropped (height: 170, width:230px)
     title:   header for bulletin (optional, insert "" value to skip
     desc:    the bulletin post. must include html tags. 
  */

  var droidList = {
    'sdk': {
      'layout':"imgLeft",
      'icon':"sdk-small.png",
      'name':"Android 3.1",
      'img':"honeycomb-android.png",
      'title':"Android 3.1 now available!",
      'desc': "<p>Android 3.1 includes new developer features such as APIs for USB "
+ "accessories, MTP/PTP, and RTP, as well as new input events from mice, trackballs, joysticks, "
+ "and more.</p>"
+ "<p>For more information about all the new APIs in Android 3.1, read the "
+ "<a href='{@docRoot}sdk/android-3.1.html'>version notes</a>.</p>"
/*
+ "<p>If you have an existing SDK, add Android 3.0 as an "
+ "<a href='{@docRoot}sdk/adding-components.html'>SDK "
+ "component</a>. If you're new to Android, install the "
+ "<a href='{@docRoot}sdk/index.html'>SDK starter package</a>."
*/
    },

    'tv': {
      'layout':"imgLeft",
      'icon':"tv_s.png",
      'name':"Google TV",
      'img':"tv_l.png",
      'title':"Announcing Google TV!",
      'desc': "<p><a href='http://www.google.com/tv/'>Google TV</a> is a new platform "
               + "for television built on Android. Google "
               + "has partnered with Sony and Logitech to integrate "
               + "this platform into TVs, blu-ray players, and companion "
               + "boxes. </p>"
               + "<p><a href='http://www.google.com/tv/'>Learn more about "
               + "Google TV &raquo;</a></p>"
    },

    'devphone': {
      'layout':"imgLeft",
      'icon':"devphone-small.png",
      'name':"Dev Phones",
      'img':"devphone-large.png",
      'title':"Android Dev Phones",
      'desc': "<p>Run and debug your Android applications directly on one of these "
 + "devices. Modify and rebuild the Android operating system, and flash it onto "
 + "the phone. The Android Dev Phones are carrier-independent, and available for "
 + "purchase by developers through their Android Market publisher accounts.</p><p> "
 + "<a href='http://market.android.com/publish'>Visit Android Market "
 + "to learn more &raquo;</a></p>"
    },

    'mapskey': {
      'layout':"imgLeft",
      'icon':"maps-small.png",
      'name':"Maps API Key",
      'img':"maps-large.png",
      'title':"Maps API Key",
      'desc':"<p>If you're writing an Android application that uses Google Maps (with MapView), you must register your application to obtain a Maps API Key. Without the key, your maps application will not work on Android devices. Obtaining a key requires just a couple of steps.</p><p><a href='http://code.google.com/android/add-ons/google-apis/maps-overview.html'>Learn more &raquo;</a></p>"
    }

  }
</script>
<script type="text/javascript" src="{@docRoot}assets/carousel.js"></script>
<script type="text/javascript">
  initCarousel("sdk");
</script>
