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}images/home/android-design.png"
alt="Android Design" width="160px" style="padding:10px 33px 5px"/>
                                  <div id="announcement" style="width:275px">
    <p>Introducing <b>Android Design</b>: The place to learn about principles, building blocks, and patterns
      for creating world-class Android user interfaces. Whether you're a UI professional or a developer
      playing that role, these docs will show you how to make good design decisions, big and small.</p>
    <p><a href="{@docRoot}design/index.html">Android Design &raquo;</a></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 4.0.3",
      'img':"ics-android.png",
      'title':"Android 4.0.3",
      'desc': "<p>Android 4.0.3 is an update to the Ice Cream Sandwich release that adds a "
+ "handful of new features for users and developers. Check out the <a "
+ "href='http://developer.android.com/sdk/android-4.0-highlights.html'>Platform Highlights</a> "
+ "for an overview of all features in Android 4.0.x.</p>"
+ "<p>For information about API changes in 4.0.3 (API level 15), read the "
+ "<a href='{@docRoot}sdk/android-4.0.3.html'>platform notes</a> and <a "
+ "href='{@docRoot}sdk/api_diff/15/changes.html'>diff report</a>. If you're new to Android, "
+ "get started with the <a href='/sdk/index.html'>SDK starter package</a>.</p>"
    },

    'tv': {
      'layout':"imgLeft",
      'icon':"GTV_icon_small.png",
      'name':"Google TV",
      'img':"GTV_icon_large.png",
      'title':"Google TV!",
      'desc': "<p>Build something big. By big, we mean <em>worthy-of-the-living-room</em> big.</p>"
	        +  " <p>Google TV brings the power of Android" 
	        +  " and Google Chrome to television."
		+  " The average American watches five hours of TV per day. Give them the apps"
		+  " to update their status, listen to music, watch web videos, and more.</p>"
                +  "<p><a href='http://code.google.com/tv'>Develop for 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>
