diff --git a/Android.mk b/Android.mk
index 95f38c5..5a4c547 100644
--- a/Android.mk
+++ b/Android.mk
@@ -425,10 +425,10 @@
 framework_docs_SDK_PREVIEW:=0
 
 ## Latest ADT version identifiers, for reference from published docs
-framework_docs_ADT_VERSION:=0.9.5
-framework_docs_ADT_DOWNLOAD:=ADT-0.9.5.zip
-framework_docs_ADT_BYTES:=3372982
-framework_docs_ADT_CHECKSUM:=227ec538359fbe417ccde7f0ad614a96
+framework_docs_ADT_VERSION:=0.9.6
+framework_docs_ADT_DOWNLOAD:=ADT-0.9.6.zip
+framework_docs_ADT_BYTES:=7456339
+framework_docs_ADT_CHECKSUM:=ea45d271be52b87b5dd1c9fb17536223
 
 framework_docs_LOCAL_DROIDDOC_OPTIONS += \
 		-hdf sdk.version $(framework_docs_SDK_VERSION) \
diff --git a/docs/html/guide/appendix/media-formats.jd b/docs/html/guide/appendix/media-formats.jd
index db5a15e..94a6471 100644
--- a/docs/html/guide/appendix/media-formats.jd
+++ b/docs/html/guide/appendix/media-formats.jd
@@ -2,7 +2,6 @@
 @jd:body
 
 <p>The <a href="#core">Core Media Formats</a> table below describes the media format support built into the Android platform. Note that any given mobile device may provide support for additional formats or file types not listed in the table. </p>
-<p>For your convenience, the table <a href="#g1">T-Mobile G1 Media Formats</a> describes additional media formats and characteristics provided by the T-Mobile G1 device. Other devices may support additional formats not listed on this page. </p>
 
 <p>As an application developer, you are free to make use of any media codec that is available on any Android-powered device, including those provided by the Android platform and those that are device-specific.</p>
 
@@ -152,56 +151,6 @@
 
 </tbody></table>
 
-<h2 id="g1">T-Mobile G1 Media Formats and Characteristics</h2>
-
-<p>The table below lists media formats supported by the T-Mobile G1 in addition to those provided as part of the Android platform. This table also details G1-specific performance characteristics of some Android core media formats.</p>
-
-<table>
-<tbody>
-
-<tr>
-<th>Type</th>
-<th>Format</th>
-<th>Encoder</th>
-<th>Decoder</th>
-<th>Comment</th>
-<th>File Type(s) Supported</th>
-</tr>
-
-<tr>
-<td>Audio</td>
-<td>WMA</td>
-<td>&nbsp;</td>
-<td style="text-align: center;">X</td>
-<td>Supports WMA standard L1-L3:
-<ul>
-<li>L1: 64 kbps - 161 kbps @ 44.1kHz</li>
-<li>L2: &lt;=161 kbps &lt;=48 kHz</li>
-<li>L3: &lt;385 kbps &lt;=48 kHz</li>
-</ul>
-Mono and stereo profiles with 16-bits per sample. Decoder does not support WMA Pro, Lossless, or Speech codecs. 
-</td>
-<td>Windows Media Audio (.wma)</td>
-</tr>
-
-<tr>
-<td rowspan="2">Video</td>
-<td>WMV</td>
-<td>&nbsp;</td>
-<td style="text-align: center;">X</td>
-<td>Versions 7, 8 and 9. Simple profile only</td>
-<td>Windows Media Video (.wmv)</td>
-</tr>
-
-<tr>
-<td>H.264&nbsp;AVC</td>
-<td>&nbsp;</td>
-<td style="text-align: center;">X</td>
-<td>On the G1, this decoder is limited to baseline profile up to 480x320, and 600 kbps average bitrate for the video stream.</td>
-<td>3GPP (.3gp) and MPEG-4 (.mp4)</td>
-</tr>
-
-</tbody></table>
 
 
 
diff --git a/docs/html/index.jd b/docs/html/index.jd
index e3bf685..913f83d 100644
--- a/docs/html/index.jd
+++ b/docs/html/index.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 
-	<div id="mainBodyFixed">
+<div id="mainBodyFixed">
               <div id="mainBodyLeft">			
                     <div id="homeMiddle">
                         <div id="topAnnouncement">
@@ -11,10 +11,10 @@
                             </div><!-- end homeTitle -->
                             <div id="announcement-block">
                             <!-- total max width is 520px -->
-                                  <img src="/assets/images/home/Android_Dev_Lab_l.png" alt="Android developer labs" width="100px" style="padding-left:78px;padding-right:46px;padding-bottom: 8px;"/>
+                                  <img src="{@docRoot}assets/images/home/gdc-logo.png" alt="Android at GDC 2010" width="203px" style="padding-left:22px;padding-bottom:28px;padding-top:22px;"/>
                                   <div id="announcement" style="width:275px">
-<p>We're hosting the next Android Developer Lab in Barcelona at <a href="http://www.mobileworldcongress.com/index.htm">Mobile World Congress&nbsp;&raquo;</a> on Wednesday February 17th at <a href="http://www.mobileworldcongress.com/exhibition/app_planet.htm">App Planet&nbsp;&raquo;</a>, located in Hall 7.  Come visit us to attend a technical presentation, talk to our Android developer relations team, and meet other members of the developer community.</p><p><a href="http://sites.google.com/site/androidmwc/home">Learn more &raquo;</a></p>
-<!--<p><a href="http://android-developers.blogspot.com/2009/11/bring-your-lab-coats.html">Learn more &raquo;</a></p>-->
+<p>Android will be at the <a href="http://www.gdconf.com/">2010 Game Developers Conference</a> in San Francisco, from March 9th to 11th. We're looking forward to seeing you there!</p>
+<p><a href="http://android-developers.blogspot.com/2010/03/android-at-game-developers-conference.html">Learn more &raquo;</a></p>
                                 </div> <!-- end annoucement -->
                             </div> <!-- end annoucement-block -->
                         </div><!-- end topAnnouncement -->
diff --git a/docs/html/resources/community-groups.jd b/docs/html/resources/community-groups.jd
index a36a425..72bdf7a 100644
--- a/docs/html/resources/community-groups.jd
+++ b/docs/html/resources/community-groups.jd
@@ -2,21 +2,27 @@
 page.title=Developer Forums
 @jd:body
 
-<p>Welcome to the Android developers community! We're glad you're here and invite you to participate in discussions with other Android application developers on topics that interest you.</p>
+<div id="qv-wrapper">
+<div id="qv">
 
-<p>The lists on this page are primarily for discussion about Android application development. If you are seeking discussion about Android source code (not application development), then please refer to the <a href="http://source.android.com/discuss">Open Source Project Mailing lists</a>.</p>
-
-<p style="margin-bottom:.5em"><strong>Contents</strong></p>
-<ol class="toc">
-  <li><a href="#StackOverflow">Stack Overflow</a> <span class="new">new!</span></li>
-  <li><a href="#MailingLists">Mailing lists</a><ol>
+  <h2>In this document</h2>
+  <ol>
+  <li><a href="#StackOverflow">Android on Stack Overflow</a></li>
+  <li><a href="#MailingLists">Mailing lists</a>
+  <ol>
     <li><a href="#BeforeYouPost">Before you post</a></li>
     <li><a href="#UsingEmail">Using email with the mailing lists</a></li>
     <li><a href="#ApplicationDeveloperLists">Application developer mailing lists</a></li>
   </ol></li>
   <li><a href="#MarketHelp">Android Market Help Forum</a></li>
-</ol>
+  </ol>
 
+</div>
+</div>
+
+<p>Welcome to the Android developers community! We're glad you're here and invite you to participate in discussions with other Android application developers on topics that interest you.</p>
+
+<p>The lists on this page are primarily for discussion about Android application development. If you are seeking discussion about Android source code (not application development), then please refer to the <a href="http://source.android.com/discuss">Open Source Project Mailing lists</a>.</p>
 
 <h2 id="StackOverflow">Stack Overflow</h2>
 
diff --git a/docs/html/resources/community-more.jd b/docs/html/resources/community-more.jd
index 2be015a..9f16fea 100644
--- a/docs/html/resources/community-more.jd
+++ b/docs/html/resources/community-more.jd
@@ -2,7 +2,7 @@
 page.title=IRC and Twitter
 @jd:body
 
-<p>In addition to the <a href="community-groups.html">Android developer groups</a>, you can also participate in the Android developer community through IRC, and you can also follow us on Twitter. </p>
+<p>In addition to the <a href="community-groups.html">Android developer forums</a>, you can participate in the Android developer community through IRC and you can follow us on Twitter. </p>
 
 <h3 id="irc">IRC</h3>
 
@@ -31,10 +31,10 @@
 <ul>
 <li>Set your nickname before you join the channel.</li>
 <li>Registering your nickname prevents others from using your nickname or impersonating you later:
-<pre>/nick &lt;yournickname&gt;
-/msg nickserv register &lt;password&gt; &lt;email&gt;</code></pre>
+<pre class="no-pretty-print" style="width:50%;">/nick &lt;yournickname&gt;
+/msg nickserv register &lt;password&gt; &lt;email&gt;</pre>
 <p>Afterwards, when you connect, you'll need to supply a password:</p>
-<pre>/connect irc.freenode.net
+<pre class="no-pretty-print" style="width:50%;">/connect irc.freenode.net
 /nick &lt;yournickname&gt;
 /msg nickserv identify &lt;password&gt;
 /join #android-dev</pre>
diff --git a/docs/html/resources/resources_toc.cs b/docs/html/resources/resources_toc.cs
index 0972029..659e08e 100644
--- a/docs/html/resources/resources_toc.cs
+++ b/docs/html/resources/resources_toc.cs
@@ -171,9 +171,12 @@
                <span class="zh-TW" style="display:none"></span>
     </h2>
     <ul>
+      <li><a href="<?cs var:toroot ?>resources/samples/get.html">
+            <span class="en">Getting the Samples</span>
+          </a></li>
       <li class="toggle-list">
         <div><a href="<?cs var:toroot ?>resources/samples/index.html">
-               <span class="en">List of Sample Apps</span>
+               <span class="en">List of Samples</span>
              </a> <span class="new">new!</span></div>
         <ul>
           <li><a href="<?cs var:toroot ?>resources/samples/ApiDemos/index.html">
diff --git a/docs/html/resources/samples/get.jd b/docs/html/resources/samples/get.jd
new file mode 100644
index 0000000..898bc49
--- /dev/null
+++ b/docs/html/resources/samples/get.jd
@@ -0,0 +1,90 @@
+page.title=Getting the Samples
+
+@jd:body
+
+<p>Sometimes, the best way to learn how things are done is to look at some
+code.</p>
+
+<p>To help you get started quickly, the Android SDK includes a variety of sample
+code and tutorials that illustrate key concepts and techniques of Android
+application development. For example, the samples show the structure of the
+manifest file and the use of activities, services, resources,
+intents, content providers, and permissions. They also show how to add
+specialized capabilities to your apps, such as Bluetooth and Contacts
+integration, multiple screens support, Live Wallpaper, and more. </p>
+
+<p>The SDK provides the samples both as source code and as browseable HTML, as
+described in the sections below. All of the samples included in the SDK are
+licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+2.0 license</a>, so feel free to use any of the code in your own applications as
+needed!</p>
+
+<h3 id="downloading">Downloading the Sample Code</h3>
+
+<p>The SDK sample code is available to you as a set of downloadable SDK
+components, each of which contains the samples for a specific Android platform
+version. Once you have installed the SDK, you can download one or more samples
+component(s) into your SDK environment using the Android SDK and AVD Manager
+tool, which is pre-installed in the SDK. </p>
+
+<p>To download the samples, launch the Android SDK and AVD Manager tool and
+select one of the samples components from the <strong>Available
+Packages</strong> panel, for example "Samples for SDK API 7". Select
+<strong>Install Selected</strong>, verify and accept the download, then select
+<strong>Install Accepted</strong> to download the component into your SDK. If
+you aren't familiar with the Android SDK and AVD Manager and how to launch or
+use it, please read the <a href="{@docRoot}sdk/adding-components.html">Adding
+SDK Components</a> document. </p>
+
+<p>When the download is complete, you can find the samples sources on your
+computer in this location:</p>
+
+<p style="margin-left:2em">
+<code><em>&lt;sdk&gt;</em>/samples/<em>&lt;platform-version&gt;</em>/</code>
+</p>
+
+<p>You can easily create new Android projects with the downloaded samples, modify them
+if you'd like, and then run them on an emulator or device. </p>
+
+<p>For example, if you are developing in Eclipse with the ADT Plugin, you can
+create a project for the "API Demos" sample app by starting a new Android
+Project, selecting "Create project from existing source", and then browsing to
+the <code><em>&lt;sdk&gt;</em>/samples/<em>&lt;platform&gt;</em>/ApiDemos</code>
+directory (the <code>samples</code> directory for the platform version you are
+using).</p>
+
+<p>If you are not working in Eclipse, you can create a project for the API Demos
+sample using the <code>android</code> tool, by executing this command:</p>
+
+<pre class="no-pretty-print">
+android update project -s -n API Demos -t <em>&lt;target_ID></em> -p <em>&lt;path&gt;</em>samples/<em>&lt;platforms&gt;</em>/ApiDemos/
+</pre>
+
+<h3 id="browsing">Browsing the Sample Code</h3>
+
+<p>For your convenience, the SDK provides browseable source code for the latest
+versions of the samples. You can use your browser to navigate through the
+structure of each sample and look at the source code in each of its files. </p>
+
+<p>To browse the samples, go to the <a
+href="{@docRoot}resources/samples/index.html">List of Sample Apps</a> first.
+From there you can read a short summary of each sample application and what
+types of concepts, features, or APIs it includes. Then, use the links provided
+to move through the directories and files of each sample. The browseable source
+is generated from the same source code that is downloadable through the Android
+SDK and AVD Manager, as described above. </p>
+
+<p>The browseable samples files are available online, at the Android Developers
+site only and are not included in the downloadable offline documentation.
+Note that, although samples for several platform versions are available for 
+download, only the samples for the latest platform version are browseable online.
+</p>
+
+
+<h3 id="more">More Sample Code</h3>
+
+<p>If you are looking for more sample code, check out
+<a href="http://code.google.com/p/apps-for-android/">apps-for-android</a>, a
+collection of open source applications that demonstrate various Android APIs.</p>
+
+
diff --git a/docs/html/resources/samples/index.jd b/docs/html/resources/samples/index.jd
index 5ebf41c..044c69d 100644
--- a/docs/html/resources/samples/index.jd
+++ b/docs/html/resources/samples/index.jd
@@ -1,38 +1,21 @@
-page.title=Sample Code
+page.title=List of Sample Apps
 @jd:body
 
+<p>The list below provides a summary of the sample applications that are 
+available with the Android SDK. Using the links on this page, you can view
+the source files of the sample applications in your browser. </p>
 
-<p>Sometimes, the best way to learn how things are done is to look at some code.</p>
-
-<p>Here, you can browse the source of some sample Android applications. Also, each version of the
-Android platform available for the SDK includes a set of sample
-applications (which may vary between different versions of the platform).
-You can find the samples in your SDK at:</p>
-
-<p style="margin-left:2em">
-<code><em>&lt;sdk&gt;</em>/platforms/android-<em>&lt;version&gt;</em>/samples/</code>
-</p>
-
-<p>You can easily create new Android projects with these samples, modify them
-if you'd like, then run them on an emulator or device. For example, to create
-a project for the API Demos app from Eclipse,
-start a new Android Project, select "Create project from existing source", then select
-{@code ApiDemos} in the {@code samples/} directory. To create the API Demos project
-using the {@code android} tool, execute:</p>
-<pre>
-android update project -s -n API Demos -t <em>&lt;target_ID></em> -p <em>&lt;path-to-platform></em>/samples/ApiDemos/
-</pre>
-
-<p>The pages below provide an overview of each sample application (available with most
-platforms) and allow you to view the source files in your browser. </p>
-
+<p>You can also download the source of these samples into your SDK, then 
+modify and reuse it as you need. For more information, see <a 
+href="{@docRoot}resources/samples/get.html">Getting the Samples</a>.</p>
+<!--
 <div class="special">
   <p>Some of the samples in this listing may not yet be available in the
   SDK. To ensure that you have the latest versions of the samples, you can
   <a href="{@docRoot}shareables/latest_samples.zip">download the samples pack</a>
   as a .zip archive.</p>
 </div>
-
+-->
 <dl>
 
  <dt><a href="ApiDemos/index.html">API Demos</a></dt>
diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd
index ae86a4b..a94eba7 100644
--- a/docs/html/sdk/RELEASENOTES.jd
+++ b/docs/html/sdk/RELEASENOTES.jd
@@ -39,8 +39,8 @@
 <li>Notes for the Android 2.0.1 platform are in the <a
 href="{@docRoot}sdk/android-2.0.1.html">Android 2.0.1, Release 1</a> document. </li>
 <li>You can find information about tools changes in the <a
-href="{@docRoot}sdk/tools-notes.html">SDK Tools Notes</a> and <a
-href="{@docRoot}sdk/adt-notes.html">ADT Plugin Notes</a>.</li>
+href="{@docRoot}sdk/tools-notes.html#notes">SDK Tools</a> and <a
+href="{@docRoot}sdk/eclipse-adt.html#notes">ADT Plugin for Eclipse</a>.</li>
 </ul>
 
 <p>To get started with the SDK, review the Quick Start summary on the <a
@@ -109,7 +109,7 @@
 <p>The new version of ADT is downloadable from the usual remote update site or
 is separately downloadable as a .zip archive. For instructions on how to
 download the plugin, please see <a
-href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>. </p>
+href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>. </p>
 
 <h3>Android SDK and AVD Manager</h3>
 
@@ -545,7 +545,7 @@
 Plugin for Eclipse is <strong>0.8.0</strong>. If you are using a
 previous version of ADT, you should update to the latest version for use
 with this SDK. For information about how to update your ADT plugin, see
-<a href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>.</p>
+<a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p>
 
 <h3>Installation and Upgrade Notes</h3>
 
@@ -651,7 +651,7 @@
 Development Tools (ADT) Plugin for Eclipse is <strong>0.8.0</strong>. If you are
 using a previous version of ADT, you should update to the latest version for use
 with this SDK. For information about how to update your ADT plugin, see <a
-href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>.</p>
+href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p>
 
 <h3>Other Notes</h3>
 
diff --git a/docs/html/sdk/adding-components.jd b/docs/html/sdk/adding-components.jd
index d7c886e..90e9045 100644
--- a/docs/html/sdk/adding-components.jd
+++ b/docs/html/sdk/adding-components.jd
@@ -7,22 +7,17 @@
 <h2>Quickview</h2>
 <ul>
   <li>Use the Android SDK and AVD Manager to 
-   keep your SDK up-to-date without having to install new
-   SDK directories.</li>
-  <li>The Android SDK and AVD Manager is available only with the 
-   Android 1.6 SDK or later.</li>
-  <li>The Eclipse ADT plugin may require an update when installing
-   new tools or system images.</li>
+   set up your SDK and keep it up-to-date.</li>
 </ul>
 
 <h2>In this document</h2>
 <ol>
+  <li><a href="#launching">Launching the Android SDK and AVD Manager</a>
   <li><a href="#InstallingComponents">Installing SDK Components</a>
-    <ol>
-      <li><a href="#AddingSites">Adding New Sites</a></li>
-    </ol>
-  </li>
+  <li><a href="#UpdatingComponents">Updating SDK Components</a>
   <li><a href="#dependencies">Component Dependencies</a></li>
+  <li><a href="#AddingSites">Adding New Sites</a></li>
+  <li><a href="#troubleshooting">Troubleshooting</a></li>
 </ol>
 </div>
 </div>
@@ -30,58 +25,102 @@
 <p>Adding and updating components in your Android SDK is fast and easy. To
 perform an update, use the <strong>Android SDK and AVD Manager</strong> to
 install or update the individual SDK components that you need. The Android SDK
-and AVD Manager tool is included in Android 1.6 and later SDK packages.</p>
+and AVD Manager tool is included in the <a href="index.html">Android SDK 
+download</a>.</p>
 
-<p>It only takes a couple of clicks to install
-individual versions of the Android platform, new development tools, new documentation, and
-SDK add-ons. The new SDK components are automatically installed into your existing SDK 
-directory, so you don't need to update your development environment to specify a
-new SDK location.</p>
+<p>It only takes a couple of clicks to install individual versions of the
+Android platform, new development tools, new documentation, and SDK add-ons. The
+new SDK components are automatically installed into your existing SDK directory,
+so you don't need to update your development environment to specify a new SDK
+location.</p>
 
-<p>Because each version of the Android platform can be installed as an individual component
-of your SDK, you can customize your development environment to the Android platforms
-you are targetting. Testing your app on multiple versions of
-the platform is very important in order to successfully operate on as many devices as possible.
-Be sure to install each version of the Android platform with which your app is compatible, then test
-your apps on <a href="{@docRoot}guide/developing/tools/avd.html">AVDs</a> that run each platform.</p>
+<p>Because each version of the Android platform can be installed as an
+individual component of your SDK, you can customize your development environment
+to the Android platforms you are targetting. Testing your app on multiple
+versions of the platform is very important in order to successfully operate on
+as many devices as possible. Be sure to install each version of the Android
+platform with which your app is compatible, then test your apps on <a
+href="{@docRoot}guide/developing/tools/avd.html">AVDs</a> that run each
+platform.</p>
+
+<p>If you are just getting started and you are not sure what components to install,
+see <a href="installing.html#components">Adding Platforms and Other
+Components</a> for information. </p>
 
 <p>If you develop applications using Eclipse, you may also need to update your
-ADT plugin when you update your development tools or in order to compile against
-a new version of the platform. See the <a
-href="{@docRoot}sdk/tools-notes.html">SDK Tools Notes</a> document for ADT
-compatibility.</p>
+ADT plugin when you update your development tools, in order to compile against
+a new version of the platform. See the revisions listed in the <a
+href="{@docRoot}sdk/tools-notes.html">SDK Tools</a> document for ADT
+Plugin compatibility.</p>
+
+<div style="TEXT-ALIGN:left; width:600px;"> 
+<img src="{@docRoot}images/sdk_manager_packages.png" 
+style="padding-bottom:0;margin-bottom:0;" /> 
+<p class="caption" style="margin:0 0 1.5em 1em;padding:0 0 0
+1em;"><strong>Figure 1.</strong> The Android SDK and AVD Manager's 
+<strong>Available Packages</strong>
+panel, which shows the SDK components that are
+available for you to download into your environment. </p>
+</div> 
+
+<h2 id="launching">Launching the Android SDK and AVD Manager</h2>
+
+<p>The Android SDK and AVD Manager is the tool that you use to install and 
+upgrade SDK components in your development environment. </p>
+
+<p>You can access the tool in any of three ways:</p>
+<ul>
+<li>If you are developing in the Eclipse IDE with the ADT Plugin, you can access
+the tool directly from the Eclipse UI.</li>
+<li>On Windows only, you can launch he tool by double-clicking a script file.</li>
+<li>In all environments, you can access the tool from a command line.</li>
+</ul>
+
+<h4>Launching from Eclipse/ADT</h4>
+
+<p>If you are developing in Eclipse and have already installed the ADT Plugin,
+follow these steps to access the Android SDK and AVD Manager tool:</p>
+
+<ol>
+<li>Open Eclipse</li>
+<li>Select <strong>Window</strong> &gt; <strong>Android SDK and AVD 
+Manager</strong>.</li>
+</ol>
+
+<h4>Launching from the setup script (Windows only)</h4>
+
+<p>For Windows only, the SDK includes a script that invokes the Android SDK and
+AVD Manager. To launch the tool using the script, double-click "SDK
+Setup.exe" at the root of the the SDK directory.</p>
+
+<h4>Launching from a command line</h4>
+
+<p>In all development environments, follow these steps to access the Android SDK
+and AVD Manager tool from the command line: </p>
+
+<ol>
+<li>Navigate to the <code>&lt;<em>sdk</em>&gt;/tools/</code> directory.</li>
+<li>Execute the {@code android} tool command with no options. 
+  <pre style="width:400px">$ android</pre></li>
+</ol>
 
 
 <h2 id="InstallingComponents">Installing SDK Components</h2>
 
-<p>Use the Android SDK and AVD Manager to install new SDK components. </p>
-
 <p class="caution"><strong>Important:</strong> Before you install SDK components, 
 we recommend that you disable any antivirus programs that may be running on
 your computer.</p>
 
-<p>You can launch the SDK and AVD Manager in one of these ways:</p>
-<ul>
-  <li>Execute the {@code android}</a> tool command with no options. If you
-haven't used the tool before, change to the <code>&lt;sdk&gt;/tools</code>
-directory and run the command: 
-  <pre style="width:400px">$ android</pre></li>
-  <li>If you have downloaded the SDK Tools (Revision 3 or higher) and are 
-  running Windows, you can double-click "SDK Setup.exe" in the SDK directory.
-  <li>If you are developing in Eclipse with ADT, you can select 
-  <strong>Window</strong> &gt;<strong>Android SDK and AVD Manager</strong>.</li>
-</ul>
+<p>Follow these steps to install new SDK components in your environment:</p>
 
-<img src="{@docRoot}images/sdk_manager_packages.png" alt="" style="float:right" />
-
-<p>When a new platform version, add-on, set of development tools or
-documentation becomes available, you can quickly install them into your existing
-Android SDK:</p>
 <ol>
-  <li>Select <strong>Available Components</strong> in the left panel.
-  This will reveal all components currently available for download.</li>
-  <li>Select the components you'd like to install and click <strong>Install
-  Selected</strong>.</li>
+  <li>Launch the Android SDK and AVD Manager as described in the section above.</li>
+  <li>Select <strong>Available Packages</strong> in the left panel.
+  This will reveal all of the components that are currently available for download 
+  from the SDK repository.</li>
+  <li>Select the component(s) you'd like to install and click <strong>Install
+  Selected</strong>. If you aren't sure which packages to select, read <a 
+  href="installing.html#which">Which components do I need?</a>.</li>
   <li>Verify and accept the components you want and click <strong>Install
   Accepted</strong>. The components will now be installed into your existing
   Android SDK directories.</li>
@@ -93,14 +132,56 @@
 directory; and new documentation is saved in the existing
 <code><em>&lt;sdk>/</em>docs/</code> directory (old docs are replaced).</p>
 
+
+<h2 id="UpdatingComponents">Updating SDK Components</h2>
+
+<p>From time to time, new revisions of existing SDK components are released and
+made available to you through the SDK repository. In most cases, if you have those
+components installed in your environment, you will want
+to download the new revisions as soon as possible. </p>
+
+<p>You can learn about the release of new revisions in two ways: </p>
+
+<ul>
+<li>You can watch for updates listed in the "SDK" tab of the Android Developers
+site, in the "Downloadable SDK Components" section. </li>
+<li>You can watch for updates listed in the <strong>Available Packages</strong>
+panel of the Android SDK and AVD Manager. </li>
+</ul>
+
+<p>When you see that a new revision is available, you can use the Android SDK
+and AVD Manager to quickly download it to your environment. Follow the same
+procedure as given in <a href="">Installing SDK Components</a>, above. The new
+component is installed in place of the old, but without impacting your
+applications. </p>
+
 <p class="note"><strong>Tip:</strong>
 Use the "Display updates only" checkbox to show only the components
 you do not have.</p>
 
 
-<h3 id="AddingSites">Adding New Sites</h3>
+<h2 id="dependencies">SDK Component Dependencies</h2>
 
-<p>By default, <strong>Available Components</strong> only shows the default
+<p>In some cases, an SDK component may require a specific minimum revision of
+another component or SDK tool. Where such dependencies exist, they are
+documented in the revision notes for each component, available from the links in
+the "Downloadable SDK Components" section at left.</p>
+
+<p>For example, there may be a dependency between the ADT Plugin for Eclipse and
+the SDK Tools component. When you install the SDK Tools
+component, you would then need to upgrade to the required version of ADT (if you
+are developing in Eclipse). In this case, you would find dependencies listed in
+"Revisions" section of the <a href="{@docRoot}sdk/eclipse-adt.html#notes">ADT
+Plugin Notes</a> and <a href="{@docRoot}sdk/tools-notes.html#notes">SDK Tools
+Notes</a> documents. </p>
+
+<p>Additionally, the development tools will notify you with debug warnings
+if there is dependency that you need to address. </p>
+
+
+<h2 id="AddingSites">Adding New Sites</h2>
+
+<p>By default, <strong>Available Packages</strong> only shows the default
 repository site, which offers platforms, SDK tools, documentation, the 
 Google APIs Add-on, and other components. You can add other sites that host 
 their own Android SDK add-ons, then download the SDK add-ons
@@ -115,14 +196,14 @@
 Manager:</p>
 
 <ol>
-  <li>Select <strong>Available Components</strong> in the left panel.</li>
+  <li>Select <strong>Available Packages</strong> in the left panel.</li>
   <li>Click <strong>Add Site</strong> and enter the URL of the 
 {@code repository.xml} file. Click <strong>OK</strong>.</li>
 </ol>
 <p>Any SDK components available from the site will now be listed under
-<strong>Available Components</strong>.</p>
+<strong>Available Packages</strong>.</p>
 
-<h3 id="troubleshooting">Troubleshooting</h3>
+<h2 id="troubleshooting">Troubleshooting</h2>
 
 <p><strong>Problems connecting to the SDK repository</strong></p>
 
@@ -138,18 +219,4 @@
   <li>Click <strong>Save &amp; Apply</strong>.</li>
 </ol>
 
-<h2 id="dependencies">SDK Component Dependencies</h2>
 
-<p>In some cases, a specific SDK component may require a specific minimum
-version of another component or SDK tool. Such dependencies are documented
-in the release notes for each component. </p>
-
-<p>For example, there may be a dependency between the ADT plugin for Eclipse and
-a specific version of the SDK Tools component. When you install the SDK Tools
-component, you would then need to upgrade to the required version of ADT (if you
-are developing in Eclipse). In this case, you would find dependencies listed in
-the <a href="{@docRoot}sdk/adt-notes.html">ADT Plugin Notes</a> and <a
-href="{@docRoot}sdk/tools-notes.html">SDK Tools Notes</a> documents. </p>
-
-<p>Additionally, the development tools will notify you with debug warnings
-if there is dependency that you need to address. </p>
diff --git a/docs/html/sdk/adt-notes.jd b/docs/html/sdk/adt-notes.jd
index 361d99a..291b543 100644
--- a/docs/html/sdk/adt-notes.jd
+++ b/docs/html/sdk/adt-notes.jd
@@ -1,83 +1,5 @@
-page.title=ADT Plugin Notes
+page.title=ADT Plugin for Eclipse
+sdk.redirect=true
+sdk.redirect.path=eclipse-adt.html
+
 @jd:body
-
-<p>Android Development Tools (ADT) is a development plugin for the Eclipse IDE.  It
-extends the capabilites of Eclipse to let you quickly set up new Android
-projects, create an application UI, add components based on the Android
-Framework API, debug your applications using the Android SDK tools, and even export
-signed (or unsigned) APKs in order to distribute your application.</p>
-
-<p>This document provides version-specific information about ADT releases. To
-keep up-to-date on new releases, make sure that you view this page at <a
-href="http://developer.android.com/sdk/adt-notes.html">http://developer.
-android.com/sdk/adt-notes.html</a>.</p>
-
-<p>To install ADT in your Eclipse IDE environment, use the Eclipse Update Site
-feature. For more information, see <a
-href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>. </p>
-
-
-<h2 id="0.9.5">ADT 0.9.5</h2>
-
-<p>December 2009. ADT 0.9.5 provides several bug fixes for developers, 
-as described below.
-</p>
-
-<h3>Dependencies</h3>
-
-<p>ADT 0.9.5 requires features provided in SDK Tools r4. If you install
-ADT 0.9.5, which is highly recommended, you should use the Android SDK and AVD
-Manager to download SDK Tools r4 or higher into your SDK. For more information,
-see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.
-</p>
-
-<h3>General Notes</h3>
-<ul>
-<li>AVD Launch dialog now shows scale value.</li>
-<li>Fixes potential NPE in SDK Manager on AVD launch, for older AVD with no skin name specified.</li>
-<li>Fixes XML validation issue in on older Java versions.</li>
-<li>.apk packaging now properly ignores vi swap files as well as hidden files.</li>
-</ul>
-
-
-<h2 id="0.9.4">ADT 0.9.4</h2>
-
-<p>October 2009. ADT 0.9.4 provides several new features for developers, as described below.
-</p>
-
-<h3>Dependencies</h3>
-
-<p>ADT 0.9.4 requires features provided in SDK Tools, revision 3. If you install
-ADT 0.9.4, which is highly recommended, you should use the Android SDK and AVD
-Manager to download SDK Tools r3 or higher into your SDK. For more information,
-see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.
-</p>
-
-<h3>Project Creation Wizard</h3> 
-<ul>
-<li>New option to create a project from a sample by choosing it from a list.</li>
-</ul>
-
-<h3>Layout Editor</h3>
-<ul>
-<li>Improved Configuration selector that lets you see how your layout will
-render on different devices. Default device descriptions include ADP1
-and Google Ion, while SDK add-ons can also provide new descriptions.
-A new UI allows you to create custom descriptions.</li>
-<li>Adds a new clipping toggle, to let you see your full layout even if it's
-bigger than the screen.</li>
-</ul>
-
-<h3>DDMS Integration</h3>
-<ul>
-<li>Includes the improvements from the standlone DDMS, revision 3.</li>
-<li>Adds an option to open HPROF files into eclipse instead of writing them on
-disk. If a profiler such as MAT (<a href="http://eclipse.org/mat">Memory Analyzer 
-Tool</a>) is installed, it'll open the file.</li>
-</ul>
-
-<h3>Android SDK and AVD Manager integration</h3>
-<ul>
-<li>Includes the improvements from the standalone Android SDK and AVD Manager, 
-revision 3.</li>
-</ul>
\ No newline at end of file
diff --git a/docs/html/sdk/adt_download.jd b/docs/html/sdk/adt_download.jd
index 6dbca48..96896c7 100644
--- a/docs/html/sdk/adt_download.jd
+++ b/docs/html/sdk/adt_download.jd
@@ -22,10 +22,17 @@
     <th>Notes</th>
   </tr>
   <tr>
-     <td>0.9.5</td>
-     <td><a href="http://dl-ssl.google.com/android/ADT-0.9.5.zip">ADT-0.9.5.zip</a></td>
+     <td>0.9.6</td>
+     <td><a href="http://dl-ssl.google.com/android/ADT-0.9.6.zip">ADT-0.9.6.zip</a></td>
      <td><nobr>{@adtZipBytes} bytes</nobr></td>
      <td>{@adtZipChecksum}</td>
+     <td>Requires SDK Tools, Revision 5 <em><nobr>March 2009</nobr></em></td>
+  </tr>
+  <tr>
+     <td>0.9.5</td>
+     <td><a href="http://dl-ssl.google.com/android/ADT-0.9.5.zip">ADT-0.9.5.zip</a></td>
+     <td><nobr>3372982 bytes</nobr></td>
+     <td>227ec538359fbe417ccde7f0ad614a96</td>
      <td>Requires SDK Tools, Revision 4 <em><nobr>December 2009</nobr></em></td>
   </tr>
   <tr>
diff --git a/docs/html/sdk/android-1.5.jd b/docs/html/sdk/android-1.5.jd
index 4612682..b3eea77 100644
--- a/docs/html/sdk/android-1.5.jd
+++ b/docs/html/sdk/android-1.5.jd
@@ -1,4 +1,4 @@
-page.title=Android 1.5, Release 3
+page.title=Android 1.5 Platform
 sdk.platform.version=1.5
 sdk.platform.apiLevel=3
 sdk.platform.majorMinor=major
@@ -13,6 +13,7 @@
   <h2>In this document</h2>
   <ol>
 	<li><a href="#features">Platform Highlights</a></li>
+	<li><a href="#relnotes">Revisions</a></li>
 	<li><a href="#apps">Built-in Applications</a></li>
 	<li><a href="#locs">Locales</a></li>
 	<li><a href="#skins">Emulator Skins</a></li>
@@ -33,7 +34,6 @@
 </div>
 
 <p>
-<em>Date:</em> {@sdkPlatformReleaseDate}<br />
 <em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
 
 <p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
@@ -60,6 +60,81 @@
 href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights.html">Android 
 {@sdkPlatformVersion} Platform Highlights</a> document.</p>
 
+<h2 id="relnotes">Revisions</h2>
+
+<p>The sections below provide notes about successive releases of
+the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by
+revision number. To determine what revision(s) of the Android
+{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to
+the "Installed Packages" listing in the Android SDK and AVD Manager.</p>
+
+<script type="text/javascript">
+function toggleDiv(link) {
+  var toggleable = $(link).parent();
+  if (toggleable.hasClass("closed")) {
+    //$(".toggleme", toggleable).slideDown("fast");
+    toggleable.removeClass("closed");
+    toggleable.addClass("open");
+    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
+  } else {
+    //$(".toggleme", toggleable).slideUp("fast");
+    toggleable.removeClass("open");
+    toggleable.addClass("closed");
+    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
+  }
+  return false;
+}
+</script>
+<style>
+.toggleable {
+padding: .25em 1em;
+}
+.toggleme {
+  padding: 1em 1em 0 2em;
+  line-height:1em;
+}
+.toggleable a {
+  text-decoration:none;
+}
+.toggleable.closed .toggleme {
+  display:none;
+}
+#jd-content .toggle-img {
+  margin:0;
+}
+</style>
+
+<div class="toggleable opened">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" />
+        Android 1.5, Revision 3</a> <em>(July 2009)</em></a>
+  <div class="toggleme">
+<dl>
+<dt>Dependencies:</dt>
+<dd>
+<p>Requires SDK Tools r3 or higher.</p>
+</dd>
+</dl>
+ </div>
+</div>
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+        Android 1.5, Revision 2</a> <em>(May 2009)</em></a>
+  <div class="toggleme">
+<p>Not available as an SDK component &mdash; please use Android 1.5, r3 instead. </p>
+ </div>
+</div>
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+        Android 1.5, Revision 1</a> <em>(April 2009)</em></a>
+  <div class="toggleme">
+<p>Not available as an SDK component &mdash; please use Android 1.5, r3 instead. </p>
+ </div>
+</div>
 
 <h2 id="apps">Built-in Applications</h2>
 
diff --git a/docs/html/sdk/android-1.6.jd b/docs/html/sdk/android-1.6.jd
index 7151325..e0bac41 100644
--- a/docs/html/sdk/android-1.6.jd
+++ b/docs/html/sdk/android-1.6.jd
@@ -1,4 +1,4 @@
-page.title=Android 1.6, Release 2
+page.title=Android 1.6 Platform
 sdk.platform.version=1.6
 sdk.platform.apiLevel=4
 sdk.platform.majorMinor=minor
@@ -13,7 +13,7 @@
   <h2>In this document</h2>
   <ol>
 	<li><a href="#features">Platform Highlights</a></li>
-	<li><a href="#releases">Release Notes</a></li>
+	<li><a href="#relnotes">Revisions</a></li>
 	<li><a href="#apps">Built-in Applications</a></li>
 	<li><a href="#locs">Locales</a></li>
 	<li><a href="#skins">Emulator Skins</a></li>
@@ -34,7 +34,6 @@
 </div>
 
 <p>
-<em>Date:</em> {@sdkPlatformReleaseDate}<br />
 <em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
 
 <p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
@@ -63,44 +62,106 @@
 {@sdkPlatformVersion} Platform Highlights</a> document.</p>
 
 
-<h2 id="relnotes">Release Notes</h2>
+<h2 id="relnotes">Revisions</h2>
 
-<p>The sections below provide information about the available releases of the 
-Android 1.6 platform.</p>
+<p>The sections below provide notes about successive releases of
+the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by
+revision number. To determine what revision(s) of the Android
+{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to
+the "Installed Packages" listing in the Android SDK and AVD Manager.</p>
 
-<h3>Android 1.6, Release 2</h3>
+<script type="text/javascript">
+function toggleDiv(link) {
+  var toggleable = $(link).parent();
+  if (toggleable.hasClass("closed")) {
+    //$(".toggleme", toggleable).slideDown("fast");
+    toggleable.removeClass("closed");
+    toggleable.addClass("open");
+    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
+  } else {
+    //$(".toggleme", toggleable).slideUp("fast");
+    toggleable.removeClass("open");
+    toggleable.addClass("closed");
+    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
+  }
+  return false;
+}
+</script>
+<style>
+.toggleable {
+padding: .25em 1em;
+}
+.toggleme {
+  padding: 1em 1em 0 2em;
+  line-height:1em;
+}
+.toggleable a {
+  text-decoration:none;
+}
+.toggleable.closed .toggleme {
+  display:none;
+}
+#jd-content .toggle-img {
+  margin:0;
+}
+</style>
 
-<p>December 2009. Requires SDK Tools r4 or higher.</p>
+<div class="toggleable opened">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" />
+        Android 1.6, Revision 2</a> <em>(December 2009)</em></a>
+  <div class="toggleme">
+<dl>
+<dt>Dependencies:</dt>
+<dd>
+<p>Requires SDK Tools r4 or higher.</p>
+</dd>
 
-<p>API related:</p>
-<ul>
-<li>Properly exposes CDMA-related constants in {@link android.telephony.TelephonyManager android.telephony.TelephonyManager}: <code>DATA_ACTIVITY_DORMANT</code>,
+<dt>API related:</dt> 
+<dd>
+<ul> 
+<li>Properly exposes CDMA-related constants in <code><a href="{@docRoot}reference/android/telephony/TelephonyManager.html">android.telephony.TelephonyManager</a></code>: <code>DATA_ACTIVITY_DORMANT</code>,
 <code>PHONE_TYPE_CDMA</code>, <code>NETWORK_TYPE_CDMA</code>,
 <code>NETWORK_TYPE_EVDO_0</code>, <code>NETWORK_TYPE_EVDO_A</code>, and
-<code>NETWORK_TYPE_1xRTT</code>.</li>
-</ul>
-<p>System image:</p>
-<ul>
-<li>Fixes bug so that Bitmap's density is now propagated through Parcelable.</li>
-<li>Fixes NinePatchDrawable to properly scale its reported padding for compatibility mode.</li>
-<li>Fixes TextView to properly compute styled font metrics based on the screen density.</li>
+<code>NETWORK_TYPE_1xRTT</code>.</li> 
+</ul> 
+</dd>
+<dt>System image:</dt> 
+<dd>
+<ul> 
+<li>Fixes bug so that Bitmap's density is now propagated through Parcelable.</li> 
+<li>Fixes NinePatchDrawable to properly scale its reported padding for compatibility mode.</li> 
+<li>Fixes TextView to properly compute styled font metrics based on the screen density.</li> 
 <li>Updates kernel to 2.6.29, to match kernel on commercially
-available Android-powered devices.</li>
-</ul>
-<p>Tools:</p>
-<ul>
+available Android-powered devices.</li> 
+</ul> 
+</dd>
+<dt>Tools:</dt> 
+<dd>
+<ul> 
 <li>Adds new Ant build system with support for Emma instrumentation projects
-(code coverage).</li>
-<li>Fixes emulator skins to properly emulate d-pad in landscape mode.</li>
-<li>Fixes density rendering in the layout editor in ADT.</li>
-</ul>
+(code coverage).</li> 
+<li>Fixes emulator skins to properly emulate d-pad in landscape mode.</li> 
+<li>Fixes density rendering in the layout editor in ADT.</li> 
+</ul> 
+</dd>
+</dl>
+ </div>
+</div>
 
-
-
-<h3>Android 1.6, Release 1</h3>
-
-<p>September 2009. Initial release. Requires SDK Tools r3 or higher.</p>
-
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+        Android 1.6, Revision 1</a> <em>(September 2009)</em></a>
+  <div class="toggleme">
+<dl>
+<dt>Dependencies</dt>
+<dd>
+<p>Requires SDK Tools r3 or higher.</p>
+</dd>
+</dl>
+ </div>
+</div>
 
 <h2 id="apps">Built-in Applications</h2>
 
@@ -188,7 +249,9 @@
 
 <h2 id="skins">Emulator Skins</h2>
 
-<p>The downloadable platform includes a set of emulator skins that you can use for modeling your application in different screen sizes and resolutions. The emulator skins are: </p>
+<p>The downloadable platform includes a set of emulator skins that you can 
+use for modeling your application in different screen sizes and resolutions. 
+The emulator skins are: </p>
 
 <ul>
   <li>
diff --git a/docs/html/sdk/android-2.0.1.jd b/docs/html/sdk/android-2.0.1.jd
index 43b1710..cacb6bf 100644
--- a/docs/html/sdk/android-2.0.1.jd
+++ b/docs/html/sdk/android-2.0.1.jd
@@ -13,6 +13,7 @@
   <h2>In this document</h2>
   <ol>
 	<li><a href="#features">Platform Highlights</a></li>
+	<li><a href="#relnotes">Revisions</a></li>
 	<li><a href="#apps">Built-in Applications</a></li>
 	<li><a href="#locs">Locales</a></li>
 	<li><a href="#skins">Emulator Skins</a></li>
@@ -39,7 +40,7 @@
 </div>
 
 <p>
-<em>Date:</em> {@sdkPlatformReleaseDate}<br />
+
 <em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
 
 <p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
@@ -67,6 +68,64 @@
 href="http://developer.android.com/sdk/android-2.0-highlights.html">Android
 2.0 Platform Highlights</a> document.</p>
 
+<h2 id="relnotes">Revisions</h2>
+
+<p>The sections below provide notes about successive releases of
+the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by
+revision number. To determine what revision(s) of the Android
+{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to
+the "Installed Packages" listing in the Android SDK and AVD Manager.</p>
+
+<script type="text/javascript">
+function toggleDiv(link) {
+  var toggleable = $(link).parent();
+  if (toggleable.hasClass("closed")) {
+    //$(".toggleme", toggleable).slideDown("fast");
+    toggleable.removeClass("closed");
+    toggleable.addClass("open");
+    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
+  } else {
+    //$(".toggleme", toggleable).slideUp("fast");
+    toggleable.removeClass("open");
+    toggleable.addClass("closed");
+    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
+  }
+  return false;
+}
+</script>
+<style>
+.toggleable {
+padding: .25em 1em;
+}
+.toggleme {
+  padding: 1em 1em 0 2em;
+  line-height:1em;
+}
+.toggleable a {
+  text-decoration:none;
+}
+.toggleable.closed .toggleme {
+  display:none;
+}
+#jd-content .toggle-img {
+  margin:0;
+}
+</style>
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+        Android 2.0.1, Revision 1</a> <em>(December 2009)</em></a>
+  <div class="toggleme">
+<dl>
+<dt>Dependencies:</dt>
+<dd>
+<p>Requires SDK Tools r4 or higher.</p>
+</dd>
+</dl>
+ </div>
+</div>
+
 <h2 id="apps">Built-in Applications</h2>
 
 <p>The system image included in the downloadable platform provides these
diff --git a/docs/html/sdk/android-2.0.jd b/docs/html/sdk/android-2.0.jd
index 9dadf8b..a430f34 100644
--- a/docs/html/sdk/android-2.0.jd
+++ b/docs/html/sdk/android-2.0.jd
@@ -13,6 +13,7 @@
   <h2>In this document</h2>
   <ol>
 	<li><a href="#features">Platform Highlights</a></li>
+	<li><a href="#relnotes">Revisions</a></li>
 	<li><a href="#apps">Built-in Applications</a></li>
 	<li><a href="#locs">Locales</a></li>
 	<li><a href="#skins">Emulator Skins</a></li>
@@ -34,7 +35,6 @@
 </div>
 
 <p>
-<em>Date:</em> {@sdkPlatformReleaseDate}<br />
 <em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
 
 <p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
@@ -50,7 +50,7 @@
 
 <p>To get started developing or testing against the Android
 {@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to
-download the platform into your Android 1.6 or later SDK. For more information,
+download the platform into your SDK. For more information,
 see <a href="{@docRoot}sdk/adding-components.html">Adding SDK
 Components</a>.</p>
 
@@ -61,6 +61,64 @@
 href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights.html">Android 
 {@sdkPlatformVersion} Platform Highlights</a> document.</p>
 
+<h2 id="relnotes">Revisions</h2>
+
+<p>The sections below provide notes about successive releases of
+the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by
+revision number. To determine what revision(s) of the Android
+{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to
+the "Installed Packages" listing in the Android SDK and AVD Manager.</p>
+
+<script type="text/javascript">
+function toggleDiv(link) {
+  var toggleable = $(link).parent();
+  if (toggleable.hasClass("closed")) {
+    //$(".toggleme", toggleable).slideDown("fast");
+    toggleable.removeClass("closed");
+    toggleable.addClass("open");
+    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
+  } else {
+    //$(".toggleme", toggleable).slideUp("fast");
+    toggleable.removeClass("open");
+    toggleable.addClass("closed");
+    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
+  }
+  return false;
+}
+</script>
+<style>
+.toggleable {
+padding: .25em 1em;
+}
+.toggleme {
+  padding: 1em 1em 0 2em;
+  line-height:1em;
+}
+.toggleable a {
+  text-decoration:none;
+}
+.toggleable.closed .toggleme {
+  display:none;
+}
+#jd-content .toggle-img {
+  margin:0;
+}
+</style>
+
+<div class="toggleable opened">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" />
+        Android 2.0, Revision 1</a> <em>(October 2009)</em></a>
+  <div class="toggleme">
+<dl>
+<dt>Dependencies:</dt>
+<dd>
+<p>Requires SDK Tools r3 or higher.</p>
+</dd>
+</dl>
+ </div>
+</div>
+
 <h2 id="apps">Built-in Applications</h2>
 
 <p>The system image included in the downloadable platform provides these
diff --git a/docs/html/sdk/android-2.1.jd b/docs/html/sdk/android-2.1.jd
index b546f0f..dfa82b3 100644
--- a/docs/html/sdk/android-2.1.jd
+++ b/docs/html/sdk/android-2.1.jd
@@ -1,8 +1,7 @@
-page.title=Android 2.1, Release 1
+page.title=Android 2.1 Platform
 sdk.platform.version=2.1
 sdk.platform.apiLevel=7
 sdk.platform.majorMinor=minor
-sdk.platform.releaseDate=January 2010
 sdk.platform.deployableDate=January 2010
 
 @jd:body
@@ -13,6 +12,7 @@
 <h2>In this document</h2>
 <ol>
   <li><a href="#features">Platform Highlights</a></li>
+  <li><a href="#relnotes">Revisions</a></li>
   <li><a href="#apps">Built-in Applications</a></li>
   <li><a href="#locs">Locales</a></li>
   <li><a href="#skins">Emulator Skins</a></li>
@@ -36,7 +36,6 @@
 </div>
 
 <p>
-<em>Date:</em> {@sdkPlatformReleaseDate}<br />
 <em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
 
 <p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
@@ -53,7 +52,7 @@
 
 <p>To get started developing or testing against the Android
 {@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to
-download the platform into your Android SDK. For more information,
+download the platform into your SDK. For more information,
 see <a href="{@docRoot}sdk/adding-components.html">Adding SDK
 Components</a>.</p>
 
@@ -64,6 +63,64 @@
 href="http://developer.android.com/sdk/android-2.0-highlights.html">Android
 2.0 Platform Highlights</a> document for the latest user features.</p>
 
+<h2 id="relnotes">Revisions</h2>
+
+<p>The sections below provide notes about successive releases of
+the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by
+revision number. To determine what revision(s) of the Android
+{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to
+the "Installed Packages" listing in the Android SDK and AVD Manager.</p>
+
+<script type="text/javascript">
+function toggleDiv(link) {
+  var toggleable = $(link).parent();
+  if (toggleable.hasClass("closed")) {
+    //$(".toggleme", toggleable).slideDown("fast");
+    toggleable.removeClass("closed");
+    toggleable.addClass("open");
+    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
+  } else {
+    //$(".toggleme", toggleable).slideUp("fast");
+    toggleable.removeClass("open");
+    toggleable.addClass("closed");
+    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
+  }
+  return false;
+}
+</script>
+<style>
+.toggleable {
+padding: .25em 1em;
+}
+.toggleme {
+  padding: 1em 1em 0 2em;
+  line-height:1em;
+}
+.toggleable a {
+  text-decoration:none;
+}
+.toggleable.closed .toggleme {
+  display:none;
+}
+#jd-content .toggle-img {
+  margin:0;
+}
+</style>
+
+<div class="toggleable opened">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" />
+        Android 2.1, Revision 1</a> <em>(January 2010)</em></a>
+  <div class="toggleme">
+<dl>
+<dt>Dependencies:</dt>
+<dd>
+<p>Requires SDK Tools r4 or higher.</p>
+</dd>
+</dl>
+ </div>
+</div>
+
 <h2 id="apps">Built-in Applications</h2>
 
 <p>The system image included in the downloadable platform provides these
diff --git a/docs/html/sdk/eclipse-adt.jd b/docs/html/sdk/eclipse-adt.jd
index 1d99c91..d3e0a10 100644
--- a/docs/html/sdk/eclipse-adt.jd
+++ b/docs/html/sdk/eclipse-adt.jd
@@ -1,4 +1,4 @@
-page.title=Installing and Updating ADT
+page.title=ADT Plugin for Eclipse
 sdk.preview=0
 
 @jd:body
@@ -8,9 +8,12 @@
 
   <h2>In this document</h2>
   <ol>
-    <li><a href="#preparing">Prepare for Installation</a></li>
+    <li><a href="#notes">Revisions</a></li>
     <li><a href="#installing">Installing the ADT Plugin</a>
       <ol>
+        <li><a href="#preparing">Preparing for Installation</a></li>
+        <li><a href="#downloading">Downloading the ADT Plugin</a>
+        <li><a href="#configuring">Configuring the ADT Plugin</a></li>
         <li><a href="#troubleshooting">Troubleshooting</a></li>
       </ol>
     </li>
@@ -21,50 +24,266 @@
 </div>
 </div>
 
-<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT), that is designed to give you a powerful,
-integrated environment in which to build Android applications. </p>
+<p>Android Development Tools (ADT) is a plugin for the Eclipse IDE 
+that is designed to give you a powerful, integrated environment in which
+to build Android applications. </p>
 
 <p>ADT extends the capabilities of Eclipse to let you quickly set up new Android
 projects, create an application UI, add components based on the Android
 Framework API, debug your applications using the Android SDK tools, and even
 export signed (or unsigned) APKs in order to distribute your application.</p>
 
-<p>In general, using Eclipse with ADT is a highly recommended approach to
-Android development and is the fastest way to get started. If you use Eclipse,
-the ADT plugin gives you an incredible boost in developing Android
-applications.</p>
+<p>Developing in Eclipse with ADT is highly recommended and is the fastest way
+to get started. With the guided project setup it provides, as well as tools
+integration, custom XML editors, and debug ouput pane, ADT gives you an
+incredible boost in developing Android applications. </p>
 
-<p>To install and update the ADT Plugin, you can take advantage of the Eclipse
-remote update feature. By setting up a remote update site, you can easily
-download, install, and check for ADT updates. Alternatively, you can download
-the latest ADT to your development computer as a local site archive. The
-sections below provide instructions for both methods.</p>
+<p>This document provides step-by-step instructions on how to download the ADT
+plugin and install it into your Eclipse development environment. Note that
+before you can install or use ADT, you must have compatible versions of both the
+Eclipse IDE and the Android SDK installed. For details, make sure to read <a
+href="#installing">Installing the ADT Plugin</a>, below. </p>
 
+<p>If you are already using ADT, this document also provides instructions on 
+how to update ADT to the latest version or how to uninstall it, if necessary.
+</p>
 
-<h2 id="preparing">Prepare for Installation</h2>
+<h2 id="notes">Revisions</h2>
 
-<p>Before you begin, take a moment to confirm that your development machine
-meets the <a href="requirements.html">System Requirements</a>.</p>
+<p>The sections below provide notes about successive releases of
+the ADT Plugin, as denoted by revision number. </p>
 
-<p>If you will be developing in Eclipse with the Android Development
-Tools (ADT) Plugin &mdash; the recommended path if you are new to
-Android &mdash; make sure that you have a suitable version of Eclipse
-installed on your computer (3.4 or newer is recommended). If you need 
-to install Eclipse, you can download it from this location: </p>
+<script type="text/javascript">
+function toggleDiv(link) {
+  var toggleable = $(link).parent();
+  if (toggleable.hasClass("closed")) {
+    //$(".toggleme", toggleable).slideDown("fast");
+    toggleable.removeClass("closed");
+    toggleable.addClass("open");
+    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
+  } else {
+    //$(".toggleme", toggleable).slideUp("fast");
+    toggleable.removeClass("open");
+    toggleable.addClass("closed");
+    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
+  }
+  return false;
+}
+</script>
+<style>
+.toggleable {
+padding: .25em 1em;
+}
+.toggleme {
+  padding: 1em 1em 0 2em;
+  line-height:1em;
+}
+.toggleable a {
+  text-decoration:none;
+}
+.toggleable.closed .toggleme {
+  display:none;
+}
+#jd-content .toggle-img {
+  margin:0;
+}
+</style>
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+ADT 0.9.6</a> <em>(March 2010)</em>
+  <div class="toggleme">
+
+<dl>
+<dt>Dependencies:</dt>
+
+<dd><p>ADT 0.9.6 is designed for use with SDK Tools r5 and later. Before 
+updating to ADT 0.9.6, we highly recommend that you use the Android SDK and
+AVD Manager to install SDK Tools r5 into your SDK.</p></dd>
+
+<dt>General Notes:</dt>
+<dd>
+<ul>
+<li>Editing <code>default.properties</code> outside of Eclipse will now
+automatically update the project.</li>
+<li>Loads the SDK content only when a project requires it. This will make
+Eclipse use less resources when the SDK contains many versions of Android.</li>
+<li>Resolves potential deadlock between modal dialogs, when launching ADT the
+first time with the SDK Usage panel.</li>
+<li>Fixes issues with the New Project Wizard when selecting samples.</li>
+</ul>
+</dd>
+<dt>AVD/SDK Manager:</dt>
+<dd>
+<ul>
+<li>Adds support for platform samples components.</li>
+<li>Improves support for dependency between components.</li>
+<li>AVDs now sorted by API level.</li>
+<li>The AVD creation dialog now enforces a minimum SD card size of 9MB.</li>
+<li>Prevents deletion of running AVDs.</li>
+</ul>
+</dd>
+<dt>DDMS:</dt>
+<dd>
+<ul>
+<li>DDMS plug-in now contains the Allocation Tracker view.</li>
+<li>New action in the Logcat view: "Go to problem" lets you go directly from an
+exception trace output to the code.</li>
+</ul>
+</dd>
+<dt>Editors:</dt>
+<dd>
+<ul>
+<li>Explode mode in the Visual Layout Editor adds a margin to all layout objects
+so that it's easier to see embedded or empty layouts.</li>
+<li>Outline mode in the Visual Layout Editor draws layout outline to make it
+easier to see layout objects.</li>
+<li>Several fixes in the configuration selector of the Visual Layout
+Editor.</li>
+</ul>
+</dd>
+<dt>Application launching:</dt>
+<dd>
+<ul>
+<li>Applications launched from ADT now behave as if they were clicked from the
+Home screen.</li>
+<li>Fixes issue where add-on with no optional library would not show up as valid
+targets for application launches.</li>
+<li>Resolves possible crash when launching applications.</li>
+</ul>
+</dd>
+</dl>
+ </div>
+</div>
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+ADT 0.9.5</a> <em>(December 2009)</em>
+  <div class="toggleme">
+<dl>
+<dt>Dependencies:</dt>
+
+<dd><p>ADT 0.9.5 requires features provided in SDK Tools r4 or higher. If you install
+ADT 0.9.5, which is highly recommended, you should use the Android SDK and AVD
+Manager to download thye latest SDK Tools into your SDK. For more information,
+see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.</p>
+</dd>
+
+<dt>General Notes:</dt>
+<dd>
+<ul>
+<li>AVD Launch dialog now shows scale value.</li>
+<li>Fixes potential NPE in SDK Manager on AVD launch, for older AVD with no skin name specified.</li>
+<li>Fixes XML validation issue in on older Java versions.</li>
+<li>.apk packaging now properly ignores vi swap files as well as hidden files.</li>
+</ul>
+</dd>
+</dl>
+ </div>
+</div>
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+ADT 0.9.4</a> <em>(October 2009)</em>
+  <div class="toggleme">
+<dl>
+<dt>Dependencies:</dt>
+
+<dd><p>ADT 0.9.4 requires features provided in SDK Tools r3 or higher. If you install
+ADT 0.9.4, which is highly recommended, you should use the Android SDK and AVD
+Manager to download the latest SDK Tools into your SDK. For more information,
+see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.</p>
+</dd>
+
+<dt>Project Creation Wizard:</dt>
+<dd>
+<ul>
+<li>New option to create a project from a sample by choosing it from a list.</li>
+</ul>
+</dd>
+
+<dt>Layout Editor:</dt>
+<dd>
+<ul>
+<li>Improved Configuration selector that lets you see how your layout will
+render on different devices. Default device descriptions include ADP1
+and Google Ion, while SDK add-ons can also provide new descriptions.
+A new UI allows you to create custom descriptions.</li>
+<li>Adds a new clipping toggle, to let you see your full layout even if it's
+bigger than the screen.</li>
+</ul>
+</dd>
+
+<dt>DDMS Integration:</dt>
+<dd>
+<ul>
+<li>Includes the improvements from the standlone DDMS, revision 3.</li>
+<li>Adds an option to open HPROF files into eclipse instead of writing them on
+disk. If a profiler such as MAT (<a href="http://eclipse.org/mat">Memory Analyzer 
+Tool</a>) is installed, it'll open the file.</li>
+</ul>
+</dd>
+
+<dt>Android SDK and AVD Manager integration:</dt>
+<dd>
+<ul>
+<li>Includes the improvements from the standalone Android SDK and AVD Manager, 
+revision 3.</li>
+</ul>
+</dd>
+</dl>
+ </div>
+</div>
+
+<h2 id="installing">Installing the ADT Plugin</h2>
+
+<p>The sections below provide instructions on how to download and install
+ADT into your Eclipse environment. If you encounter problems, see the <a
+href="#troubleshooting">Troubleshooting</a> section.</p>
+
+<h3 id="preparing">Preparing Your Development Computer</h3>
+
+<p>ADT is a plugin for the Eclipse IDE. Before you can install or use ADT,
+you must have a compatible version of Eclipse installed on your development
+computer. </p>
+
+<ul>
+<li>If Eclipse is already installed on your computer, make sure that it is
+a version that is compatible with ADT and the Android SDK. Check the <a
+href="requirements.html">System Requirements</a> document for
+a list of Eclipse versions that are compatible with the Android SDK.</li>
+<li>If you need to install or update Eclipse, you can download it from this
+location:
 
 <p style="margin-left:2em;"><a href=
 "http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a>
 </p>
 
-<p>A Java or RCP version of Eclipse is recommended. </p>
+<p>A Java or RCP version of Eclipse is recommended.</p></li>
+</ul>
 
-<h2 id="installing">Installing the ADT Plugin</h2>
+<p>Additionally, before you can configure or use ADT, you must install the
+Android SDK starter package, as described in <a
+href="installing.html#Installing">Downloading the SDK Starter Pacskage</a>.
+Specifically, you need to install a compatible version of the Android SDK Tools
+and at least one development platform. To simplify ADT setup, we recommend
+installing the Android SDK prior to installing ADT. </p>
 
-<p>Once you have the Eclipse IDE installed, as described in <a
-href="#preparing">Preparing for Installation</a>, above, follow these steps to
-download the ADT plugin and install it in your respective Eclipse environment.
-</p>
+<p>When your Eclipse and Android SDK environments are ready, continue with the
+ADT installation as described in the steps below. </p>
+
+<h3 id="downloading">Downloading the ADT Plugin</h3>
+
+<p>Use Update Manager feature of your Eclipse installation to install the latest
+revision of ADT on your development computer.<p>
+
+<p>Assuming that you have a compatible version of the Eclipse IDE installed, as
+described in <a href="#preparing">Preparing for Installation</a>, above, follow
+these steps to download the ADT plugin and install it in your Eclipse
+environment. </p>
 
 <table style="font-size:100%">
 <tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
@@ -121,7 +340,11 @@
 </tr>
 </table>
 
-<p>Now modify your Eclipse preferences to point to the Android SDK directory:</p>
+<h3 id="preparing">Configuring the ADT Plugin</h3>
+
+<p>Once you've successfully downnloaded ADT as described above, the next step
+is to modify your ADT preferences in Eclipse to point to the Android SDK directory:</p>
+
 <ol>
     <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
         panel (Mac OS X: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>).</li>
@@ -131,8 +354,10 @@
     <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
 </ol>
 
-<p>Done! If you haven't encountered any problems, then you're ready to
-begin developing Android applications. </p>
+<p>Done! If you haven't encountered any problems, then the installation is
+complete. Now read <a href="installing.html#components">Adding Platforms and
+Other Components</a> for instructions on how to complete the setup of your 
+SDK environment. </p>
 
 
 <h3 id="troubleshooting">Troubleshooting ADT Installation</h3>
@@ -179,7 +404,7 @@
 </li>
 
 </li>
-  <li>Follow steps 1 and 2 in the <a href="#InstallingADT">default install 
+  <li>Follow steps 1 and 2 in the <a href="#installing">default install 
       instructions</a> (above).</li>
   <li>In the Add Site dialog, click <strong>Archive</strong>.</li>
   <li>Browse and select the downloaded zip file.</li>
@@ -187,7 +412,7 @@
       "Android Plugin") in the "Name" field.</li>
   <li>Click <strong>OK</strong>.
   <li>Follow the remaining procedures as listed for 
-      <a href="#InstallingADT">default installation</a> above,
+      <a href="#installing">default installation</a> above,
       starting from step 4.</li>
 </ol>
 
@@ -216,13 +441,27 @@
 Plugin.</p>
 
 
-<h2 id="updating">Updating Your Eclipse ADT Plugin</h2>
+<h2 id="updating">Updating the ADT Plugin</h2>
 
-<p>From time to time, a new version of the ADT Plugin becomes available. Follow 
-the steps below to check whether an update is available and, if so, to install it. 
-For 
-information about new features in ADT, see the <a
-href="{@docRoot}sdk/adt-notes.html">ADT Plugin Notes</a> document. </p>
+<p>From time to time, a new revision of the ADT Plugin becomes available, with
+new features and bug fixes. Generally, when a new revision of ADT is available,
+you should update to it as soon as convenient. </p>
+
+<p>In some cases, a new revision of ADT will have a dependency on a specific
+revision of the Android SDK Tools. If such dependencies exist, you will need to
+update the SDK Tools component of the SDK after installing the new revision of
+ADT. To update the SDK Tools component, use the Android SDK and AVD Manager, as
+described in <a href="adding-components.html">Adding SDK Components</a>.</p>
+
+<p>To learn about new features of each ADT revision and also any dependencies on
+the SDK Tools, see the listings in the <a href="#notes">Revisions</a>
+section. To determine the version currently installed, open the 
+Eclipse Installed Software window using <strong>Help</strong>
+&gt; <strong>Software Updates</strong> and refer to the version listed for 
+"Android Development Tools".</p>
+
+<p>Follow the steps below to check whether an update is available and, if so, 
+to install it. </p>
 
 <table style="font-size:100%">
 <tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd
index 25d0a82..e9d20ff 100644
--- a/docs/html/sdk/index.jd
+++ b/docs/html/sdk/index.jd
@@ -1,19 +1,17 @@
 page.title=Android SDK
 sdk.redirect=0
-sdk.version=2.0.1
-sdk.date=December 2009
 
 sdk.win_download=android-sdk_r04-windows.zip
-sdk.win_bytes=23069119
-sdk.win_checksum=c48b407de852ba483869f17337e90997
+sdk.win_bytes=23449838
+sdk.win_checksum=cc2c51a24e2f876e0fa652e182ef5840
 
 sdk.mac_download=android-sdk_r04-mac_86.zip
-sdk.mac_bytes=19657927
-sdk.mac_checksum=b08512765aa9b0369bb9b8fecdf763e3
+sdk.mac_bytes=19871714
+sdk.mac_checksum=6fcfeed0e1c36624c926551637eb3308
 
 sdk.linux_download=android-sdk_r04-linux_86.tgz
-sdk.linux_bytes=15984887
-sdk.linux_checksum=ef84b08fd9da84f4c4ae77564fe4eaee
+sdk.linux_bytes=16208523
+sdk.linux_checksum=1d695d6a31310406f5d49092a1bd9850
 
 @jd:body
 
@@ -22,69 +20,52 @@
 
 <p>The steps below provide an overview of how to get started with the Android
 SDK. For detailed instructions, start with the <a
-href="{@docRoot}sdk/installing.html">Installing</a> guide. </p>
+href="{@docRoot}sdk/installing.html">Installing the SDK</a> guide. </p>
 
-<p><strong>0. Prepare your development computer</strong></p>
+<p><strong>1. Prepare your development computer</strong></p>
 
 <p>Read the <a href="{@docRoot}sdk/requirements.html">System Requirements</a>
 document and make sure that your development computer meets the hardware and
 software requirements for the Android SDK. Install any additional software
-needed before downloading the Android SDK. In particular, if you plan to develop
-Android applications in the Eclipse IDE using the ADT Plugin (see below), make
-sure that you have the correct version of Eclipse installed. 
+needed before downloading the Android SDK. In particular, you may need to
+install the <a href="http://java.sun.com/javase/downloads/index.jsp">JDK</a>
+ (version 5 or 6 required) and <a href="http://www.eclipse.org/downloads/">Eclipse</a>
+ (version 3.4 or 3.5, needed only if you want develop using the ADT Plugin).
 
-<p><strong>1. Download and install the SDK starter package</strong></p>
+<p><strong>2. Download and install the SDK starter package</strong></p>
 
 <p>Select a starter package from the table at the top of this page and download
 it to your development computer. To install the SDK, simply unpack the starter
 package to a safe location and then add the location to your PATH. </p>
 
-<p><strong>2. Install the ADT Plugin for Eclipse</strong></p>
+<p><strong>3. Install the ADT Plugin for Eclipse</strong></p>
 
-<p>If you are developing in Eclipse, set up a remote update site and install the
-Android Development Tools (ADT) plugin. For detailed instructions, see <a
-href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>.</p>
+<p>If you are developing in Eclipse, set up a remote update site at
+<code>https://dl-ssl.google.com/android/eclipse/</code>. Install the Android 
+Development Tools (ADT) Plugin, restart Eclipse, and set the "Android" 
+preferences in Eclipse to point to the SDK install location. For detailed
+instructions, see <a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin 
+for Eclipse</a>.</p>
 
-<p><strong>3. Add Android platforms to your SDK</strong></p>
+<p><strong>4. Add Android platforms and other components to your SDK</strong></p>
 
 <p>Use the Android SDK and AVD Manager, included in the SDK starter package, to
-add one or more Android platforms (for example, Android 1.6 or Android 2.0) to
-your SDK. In most cases, you will want to download multiple platforms, so that
-you can build your application on the lowest version you want to support, but
-test against higher versions that you intend the application to run on.
-Information about each platform is available at left, under "Downloadable SDK
-Components."</p>
+add one or more Android platforms (for example, Android 1.6 or Android 2.0) and
+other components to your SDK. If you aren't sure what to add, see <a
+href="installing.html#which">Which components do I need?</a></p>
 
 <p>To launch the Android SDK and AVD Manager on Windows, execute <code>SDK
 Setup.exe</code>, at the root of the SDK directory. On Mac OS X or Linux,
 execute the <code>android</code> tool in the <code>&lt;sdk&gt;/tools/</code>
-folder. For more information about how to add platforms and other components,
-see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.
-</p>
+folder. For detailed instructions, see <a
+href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.</p>
 
-<p><strong>4. Get the latest documentation</strong></p>
-
-<p>If you develop while offline, use the Android SDK and AVD Manager to download
-the latest documentation package. The documentation covers all versions of the
-API and lets you filter out those versions that your application won't support.
-Once installed, the documentation is also available to you directly from the
-Eclipse IDE. When you are online, you can always access the latest documentation
-at the Android Developers site.</p>
-
-<p><strong>5. Download other SDK components</strong></p>
-
-<p>You can use the Android SDK and AVD Manager to download other SDK components,
-such as the SDK add-ons. An SDK add-on provides a development environment for an
-Android external library or a customized Android system image. For example, the
-Google APIs Add-On lets you develop an application that takes advantage of the
-Google Maps external library. </p>
-
-<p><strong>6. Get started with an application project</strong></p>
-
-<p>Once you've set up your SDK, the next step is to start a new application
-project or move existing applications into the new SDK.</p>
+<p><strong>Done!</strong></p>
 
 <p>If you are new to Android, you can use the <a
 href="{@docRoot}resources/tutorials/hello-world.html">Hello World</a> tutorial to
 get started quickly. <a href="{@docRoot}sdk/installing.html#NextSteps">Next
-Steps</a> offers other suggestions of how to begin. Welcome!</p>
+Steps</a> offers other suggestions of how to begin.</p>
+
+<p>For a more detailed guide to installing and setting up the SDK, read <a 
+href="installing.html">Installing the SDK</a>.</p>
diff --git a/docs/html/sdk/installing.jd b/docs/html/sdk/installing.jd
index 7b98e7f..abf36c7 100644
--- a/docs/html/sdk/installing.jd
+++ b/docs/html/sdk/installing.jd
@@ -1,4 +1,4 @@
-page.title=Installing the Android SDK
+page.title=Installing the SDK
 sdk.preview=0
 
 @jd:body
@@ -8,25 +8,28 @@
 
   <h2>In this document</h2>
   <ol>
-    <li><a href="#Preparing">Prepare for Installation</a></li>
-    <li><a href="#Installing">Install the SDK</a></li>
-    <li><a href="#InstallingADT">Install the ADT Plugin for Eclipse</a></li>
-    <li><a href="#components">Add Platforms and Other SDK Components</a></li>
-    <li><a href="#sdkContents">Explore the SDK</a></li>
+    <li><a href="#Preparing">Preparing Your Development Computer</a></li>
+    <li><a href="#Installing">Downloading the SDK Starter Package</a></li>
+    <li><a href="#InstallingADT">Installing the ADT Plugin for Eclipse</a></li>
+    <li><a href="#components">Adding Platforms and Other Components</a>
+    <ol>
+    <li><a href="#which">Which components do I need?</a></li>
+    </ol></li>
+    <li><a href="#sdkContents">Exploring the SDK</a></li>
     <li><a href="#NextSteps">Next Steps</a></li>
     <li><a href="#troubleshooting">Troubleshooting</a></li>
   </ol>
 
 <h2>See also</h2>
   <ol>
-    <li><a href="{@docRoot}sdk/eclipse-adt.html">Installing ADT</a></li>
+    <li><a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a></li>
     <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
   </ol>
 
 </div>
 </div>
 
-<p>This page describes how to install the latest version of the Android SDK 
+<p>This page describes how to install the Android SDK 
 and set up your development environment for the first time.</p>
 
 <p>If you encounter any problems during installation, see the 
@@ -35,40 +38,51 @@
 
 <h4>Updating?</h4>
 
-<p>If you are currently using the Android 1.6 SDK, you do not necessarily need
-to install a newer SDK, since you can already update the platforms, tools, and
-other components using the Android SDK and AVD Manager tool. To develop against
-the latest Android platform, for example, you could just download the latest SDK
-Tools and then add the new Android platform into your existing SDK.</p>
+<p>If you are currently using the Android 1.6 SDK or later and want to update 
+to the latest tools or platforms, you do not need to install a new SDK. Instead, 
+you can simply update the individual components in your SDK using the 
+Android SDK and AVD Manager tool. For information about how to do that, see <a 
+href="{@docRoot}sdk/adding-components.html#UpdatingComponents">Updating SDK 
+Components</a></p>
 
-<p>If you are using Android 1.5 SDK or older, you should install the new SDK as
+<p>If you are using Android 1.5 SDK or earlier, you should install a new SDK as
 described in this document and move your application projects to the new
 SDK environment. </p>
 
-<h2 id="Preparing">Prepare for Installation</h2>
 
-<p>Before you begin, take a moment to confirm that your development machine
-meets the <a href="requirements.html">System Requirements</a>.</p>
+<h2 id="Preparing">Step 1. Preparing Your Development Computer</h2>
+
+<p>Before getting started with the Android SDK, take a moment to confirm that
+your development computer meets the <a href="requirements.html">System
+Requirements</a>. In particular, you may need to install the <a 
+href="http://java.sun.com/javase/downloads/index.jsp">JDK</a> before 
+continuing, if it's not already installed on your computer. </p>
 
 <p>If you will be developing in Eclipse with the Android Development
 Tools (ADT) Plugin &mdash; the recommended path if you are new to
 Android &mdash; make sure that you have a suitable version of Eclipse
 installed on your computer (3.4 or newer is recommended). If you need 
-to install Eclipse, you can download it from this location: </p>
-
+to install Eclipse, you can download it from this location: </p> 
+ 
 <p style="margin-left:2em;"><a href=
-"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p>
-
+"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p> 
+ 
 <p>A Java or RCP version of Eclipse is recommended. For Eclipse 3.5, the 
-"Eclipse Classic" version is recommended.</p>
+"Eclipse Classic" version is recommended.</p> 
 
-<h2 id="Installing">Download and Install the SDK</h2>
 
-<p>Download the SDK package that is appropriate for your development computer.
-You can get the latest version from the <a href="{@docRoot}sdk/index.html">SDK
-download page</a>.</p>
+<h2 id="Installing">Step 2. Downloading the SDK Starter Package</h2>
 
-<p>After downloading, unpack the Android SDK archive to a suitable location on your
+<p>The first step in setting up your environment for developing Android applications
+is downloading the Android SDK starter package. The starter package is not a full
+development environment &mdash; it includes only the core SDK Tools, which you can 
+use to download the rest of the SDK components. </p>
+
+<p>You can get the latest version of the SDK starter package from the <a
+href="{@docRoot}sdk/index.html">SDK download page</a>. Make sure to download the
+package that is appropriate for your development computer.</p>
+
+<p>After downloading, unpack the Android SDK archive to a safe location on your
 machine. By default, the SDK files are unpacked into a directory named
 <code>android-sdk-&lt;machine-platform&gt;</code>. Make a note of the name and
 location of the unpacked SDK directory on your system &mdash; you will need to
@@ -101,71 +115,80 @@
   <code>tools/</code> directory to the path. </li>
   </ul>
 
-<p>If you will be using the Eclipse IDE as your development environment,
-the next section describes how to install the Android Development Tools (ADT) plugin and set up Eclipse. 
-If you choose not to use Eclipse, you can 
-develop Android applications in an IDE of your choice and then compile, debug and deploy using
-the tools included in the SDK (skip to <a href="#NextSteps">Next Steps</a>).</p>
+<p>If you will be using the Eclipse IDE as your development environment, the
+next section describes how to install the Android Development Tools (ADT) plugin
+and set up Eclipse. If you choose not to use Eclipse, you can develop Android
+applications in an IDE of your choice and then compile, debug and deploy using
+the tools included in the SDK (skip to <a href="#components">Adding Platforms
+and Other Components</a>).</p>
 
 
-<h2 id="InstallingADT">Install the ADT Plugin for Eclipse</h2>
+<h2 id="InstallingADT">Step 3. Installing the ADT Plugin for Eclipse</h2>
 
 <p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT), that is designed to give you a powerful,
-integrated environment in which to build Android applications. It
-extends the capabilites of Eclipse to let you quickly set up new Android
-projects, create an application UI, add components based on the Android
-Framework API, debug your applications using the Android SDK tools, and even export
-signed (or unsigned) APKs in order to distribute your application.</p>
+Development Tools (ADT), that is designed to give you a powerful, integrated
+environment in which to build Android applications. It extends the capabilites
+of Eclipse to let you quickly set up new Android projects, create an application
+UI, add components based on the Android Framework API, debug your applications
+using the Android SDK tools, and even export signed (or unsigned) APKs in order
+to distribute your application. In general, developing in Eclipse with ADT is a
+highly recommended approach and is the fastest way to get started with Android.
+</p>
 
-<p>In general, using Eclipse with ADT is a highly recommended approach to
-Android development and is the fastest way to get started. For complete 
-information about how to install ADT, see 
-<a href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>.</p>
+<p>If you'd like to use ADT for developing Android applications, install it now.
+Read <a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a> for
+step-by-step installation instructions, then return here to continue with the
+last step in setting up your SDK: adding platforms and other
+components.</p>
 
 <p>If you prefer to work in an IDE other than Eclipse, you do not need to
 install Eclipse or ADT, instead, you can directly use the SDK tools to build and
 debug your application.</p>
 
 
-<h2 id="components">Add Android Platforms and Other Components</h2>
+<h2 id="components">Step 4. Adding Android Platforms and Other Components</h2>
 
-<div class="sidebox-wrapper">
-<div class="sidebox">
-<p>The <strong>Android SDK and AVD Manager</strong> tool is pre-installed in
-your SDK. Using the tool is a key part of performing the initial setup of your
-SDK, as well as keeping it up-to-date with the latest platforms, tools, and
-other components. </p>
+<div class="sidebox-wrapper" style="margin-right:2.5em;">
+<div class="sidebox"> <h2>Using the Android SDK and AVD Manager</h2>
 
-<p style="margin-top:.75em;">For full instructions on how to use the tool, see 
-<a href="/sdk/adding-components.html#installingComponents">Adding SDK
-Components</a>.</p> 
+<p>The <em>Android SDK and AVD Manager</em> is a tool that you will use often,
+to add components to your SDK environment and manage Android Virtual Devices.
+</p>
+
+<p style="margin-top:.5em;">The tool is pre-installed in your SDK. See <a
+href="adding-components.html">Adding SDK Components</a> for details on how to
+launch and use the tool.</p>
 </div>
 </div>
 
-<p>The Android SDK uses a modular structure that separates the major parts of
-the SDK &mdash; platforms, add-ons, tools, and the API documentation &mdash;
-into a set of separately installable components. The SDK components are
-available to you for individual download, as needed, from the Android SDK
-repository site. </p>
+<p>The last step in setting up your SDK is using a tool included the SDK starter
+package &mdash; the <em>Android SDK and AVD Manager</em> &mdash; to download
+essential components into your development environment. Read the information
+below to understand what components you'll need, then see <a
+href="adding-components.html">Adding SDK Components</a> for step-by-step
+instructions on how to launch the Android SDK and AVD Manager and download the
+components into your environment.</p>
 
-<p>The Android SDK starter package includes only a single component: the latest
-version of the SDK Tools. Included in that component is a tool called <em>Android
-SDK and AVD Manager</em> that you can use to download other components from the SDK
-repository site. The tool provides a graphical UI that lets you browse the
-repository, select new or updated components for download, and then install them
-in your SDK. </p>
+<p>The SDK uses a modular structure that separates the major parts of the SDK
+&mdash; Android platform versions, add-ons, tools, samples, and the API
+documentation &mdash; into a set of separately installable components. The SDK
+starter package, which you've already downloaded, includes only a single
+component: the latest version of the SDK Tools. To develop any Android
+application, you also need to download at least one Android platform into your
+environment, although downloading additional components is highly recommended.
+See <a href="#which">Which components do I need?</a> for information about
+which components are required and which are optional.</p>
 
-<p>There are several types of SDK components available:</p>
+<p>The SDK repository offers these types of components:</p>
 
 <ul>
-<li><strong>SDK Tools</strong> (available pre-installed in the Android SDK
+<li><strong>SDK Tools</strong> (pre-installed in the Android SDK starter
 package) &mdash; Contains the full set of SDK tools for developing, debugging,
 and testing your application code and UI. You can read about the tools in the <a
 href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them
 in the <code>&lt;sdk&gt;/tools/</code> directory. </li>
 
-<li><strong>Android platforms</strong> &mdash; An SDK platform component is
+<li><strong>Android platforms</strong> &mdash; An SDK platform is
 available for every production Android platform deployable to Android-powered
 devices. Each platform component includes a fully compliant Android library and
 system image, sample code, emulator skins, and any version specific tools. For
@@ -180,30 +203,133 @@
 <code>com.google.android.maps</code> library. You can also add additional
 repositories, so that you can download other SDK add-ons, where available. </li>
 
+<li><strong>USB Driver for Windows</strong> &mdash; Contains driver files 
+that you can install on your Windows computer, so that you can run and debug
+your applications on an actual device. You <em>do not</em> need the USB driver unless
+you plan to debug your application on an actual Android-powered device. If you
+develop on Mac OS X or Linux, you do not need a special driver to debug 
+your application on an Android-powered device.</li>
+
+<li><strong>Samples</strong> &mdash; Contains the sample code and apps available
+for each Android development platform. If you are just getting started with
+Android development, make sure to download the samples to your SDK. <!--The download
+includes not only a set of very useful sample apps, but also the source for <a
+href="{@docRoot}resources/tutorials/hello-world.html">Hello World</a> and other
+tutorials. --></li>
+
 <li><strong>Documentation</strong> &mdash; Contains a local copy of the latest
-multiversion documentation for the Android framework API. 
-</li>
+multiversion documentation for the Android framework API. </li>
 </ul>
 
-<p>To develop <em>any</em> Android application, even if you are following the <a
-href="{@docRoot}resources/tutorials/hello-world.html">Hello World</a> tutorial, you
-<strong>must download at least one Android platform</strong> into your SDK.
-Typically, you will want to download multiple platforms, so that you can build
-your application on the lowest version you want to support, but test against
+<p>To download components, use the graphical UI of the Android SDK and AVD
+Manager, shown in Figure 1, to browse the SDK repository, select new or updated
+components for download, and then install the selected components in your SDK
+environment. </p>
+
+<div style="TEXT-ALIGN:left;width:600px;"> 
+<img src="/images/sdk_manager_packages.png" 
+style="padding-bottom:0;margin-bottom:0;" /> 
+<p class="caption" style="margin:0 0 1.5em 1em;padding:0 0 0
+1em;"><strong>Figure 1.</strong> The Android SDK and AVD Manager's 
+<strong>Available Packages</strong>
+panel, which shows the SDK components that are
+available for you to download into your environment. </p>
+</div> 
+
+
+<h3 id="which">Which components do I need?</h3>
+
+<p>The SDK repository contains a range of components that you can download.
+Use the table below to determine which components you need, based on whether you
+want to set up a basic (but functionnal) development environment or a
+recommended or full development environment: </p>
+
+<table style="width:95%">
+
+<tr>
+<th>Environment</th>
+<th>SDK&nbsp;Component</th>
+<th>Comments</th>
+</tr>
+
+<tr>
+<td rowspan="2" style="font-size:.9em;background-color:#FFE;">Basic</td>
+<td style="font-size:.9em;background-color:#FFE;color:gray">SDK Tools</td>
+<td style="font-size:.9em;background-color:#FFE;color:gray">If you've installed
+the SDK starter package, then you already have this component preinstalled. The
+SDK Tools component is required &mdash; you can't develop or build an application 
+without it. </td>
+</tr>
+
+<tr>
+<td style="font-size:.9em;background-color:#FFE;">SDK platform</td>
+<td style="font-size:.9em;background-color:#FFE;">You need to download <strong
+style="color:red">at least one platform</strong> into your environment, so that
+you will be able to compile your application and set up an Android Virtual
+Device (AVD) to run it on (in the emulator). To start with, just download the
+latest version of the platform. Later, if you plan to publish your application,
+you will want to download other platforms as well, so that you can test your
+application on the full range of Android platform versions that your customers
+are using.</td>
+</tr>
+<tr>
+<td colspan="3" style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td>
+</tr>
+<tr>
+<td rowspan="3">Recommended</td>
+<td>Documentation</td>
+<td>The Documentation component is useful because it lets you work offline and
+also look up API reference information from inside Eclipse.</td>
+</tr>
+
+<tr>
+<td>Samples</td>
+<td>The Samples components give you source code that you can use to learn about
+Android, load as a project and run, or reuse in your own app. Note that multiple
+samples components are available &mdash; one for each Android platform version. When
+you are choosing a samples component to download, select the one whose API Level
+matches the API Level of the Android platform that you plan to use.</td>
+</tr>
+<tr>
+<td>Usb Driver</td>
+<td>The Usb Driver component is needed only if you are developing on Windows and
+have an Android-powered device on which you want to install your application for
+debugging and testing. For Mac OS X and Linux platforms, no
+special driver is needed.</td>
+</tr>
+<tr>
+<td colspan="3" style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td>
+</tr>
+<tr>
+<td rowspan="3">Full</td>
+<td>Google APIs</td>
+<td>The Google APIs add-on gives your application access to the Maps external
+library, which makes it easy to display and manipulate Maps data in your
+application. </td>
+</tr>
+<tr>
+<td>Additional SDK Platforms</td>
+<td>If you plan to publish your application, you will want to download
+additional platforms corresponding to the Android platform versions on which you
+want the application to run. The recommended approach is to compile your
+application against the lowest version you want to support, but test it against
 higher versions that you intend the application to run on. You can test your
-applications on different platforms by running in an 
-Android Virtual Device (AVD) on the Android emulator. </p>
+applications on different platforms by running in an Android Virtual Device
+(AVD) on the Android emulator.</td>
+</tr>
+
+</table>
 
 <p>For step-by-step instructions on how to use the Android SDK and AVD Manager
 to add components, see the <a href="{@docRoot}sdk/adding-components.html">Adding
 SDK Components</a> document. </p>
 
-<p>For release notes and other detailed information about individual SDK 
+<p>For revision notes and other detailed information about individual SDK 
 components, see the documents listed under "Downloadable SDK Components" in 
 the navigation at left.</p>
 
 
-<h2 id="sdkContents">Explore the SDK</h2>
+<h2 id="sdkContents">Step 5. Exploring the SDK</h2>
 
 <p>Once you've installed the SDK and downloaded the platforms, documentation,
 and add-ons that you need, open the SDK directory and take a look at what's
@@ -236,7 +362,7 @@
 <tr>
 <td style="width:2em;border-bottom-color:white;"></td>
 <td colspan="2"><code>&lt;platform&gt;/</code></td>
-<td>Platform version directory, for example "Android 1.6". All platform version 
+<td>Platform version directory, for example "android-1.6". All platform version 
 directories contain a similar set of files and subdirectory structure.</td>
 </tr>
 
@@ -257,13 +383,6 @@
 <tr>
 <td style="width:2em;border-bottom-color:white;"></td>
 <td style="width:2em;border-bottom-color:white;"></td>
-<td><code>samples/</code></td>
-<td>Contains a wide variety of sample applications that you can load as projects
-into your development environment, compile, and run on the emulator.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
 <td><code>skins/</code></td>
 <td>A set of emulator skins available for the platform version. Each skin is
 designed for a specific screen resolution.</td>
@@ -288,6 +407,9 @@
 version.</td>
 </tr>
 <tr>
+<td colspan="3"><code>samples/</code></td>
+<td>Sample code and apps that are specific to platform version.</td>
+</tr>
 <td colspan="3"><code>tools/</code></td>
 <td>Contains the set of development and profiling tools available to you, such
 as the emulator, the <code>android</code> tool, adb, ddms, and more.</td>
@@ -300,7 +422,7 @@
 </tr>
 <tr>
 <td colspan="3"><code>SDK Setup.exe</code></td>
-<td>For Windows SDK only. A shortcut that launches the Android SDK and AVD 
+<td>Windows SDK only. A shortcut that launches the Android SDK and AVD 
 Manager tool, which you use to add components to your SDK. </td>
 </tr>
 <!--<tr>
@@ -315,6 +437,19 @@
 <p>Once you have completed installation, you are ready to
 begin developing applications. Here are a few ways you can get started: </p>
 
+<p><strong>Set up the Hello World application</strong></p>
+<ul>
+  <li>If you have just installed the SDK for the first time, <a 
+  href="{@docRoot}resources/tutorials/hello-world.html">go to the Hello
+  World tutorial</a>. The tutorial takes you step-by-step through the process
+  of setting up your first Android project, including setting up an Android
+  Virtual Device (AVD) on which to run the application. 
+</li>
+</ul>
+
+<p class="caution">Following the Hello World tutorial is an essential 
+first step in getting started with Android development. </p>
+
 <p><strong>Learn about Android</strong></p>
 <ul>
   <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
@@ -329,7 +464,7 @@
   href="{@docRoot}reference/packages.html">Reference</a> tab</li>
 </ul>
 
-<p><strong>Explore the SDK</strong></p>
+<p><strong>Explore the development tools</strong></p>
 <ul>
   <li>Get an overview of the <a
   href="{@docRoot}guide/developing/tools/index.html">development
@@ -340,15 +475,28 @@
   </li>
 </ul>
 
-<p><strong>Explore some code</strong></p>
+<p><strong>Follow the Notepad tutorial</strong></p>
+
 <ul>
-  <li>Set up a <a href="{@docRoot}resources/tutorials/hello-world.html">Hello
-  World application</a> (highly recommended, especially for Eclipse users)</li>
-  <li>Follow the <a href="{@docRoot}resources/tutorials/notepad/index.html">
-  Notepad Tutorial</a> to build a full Android application </li>
-  <li>Create a new project for one of the other sample applications
-  included in <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platform&gt;</em>/samples</code>, 
-  then compile and run it in your development environment</li>
+  <li>The <a href="{@docRoot}resources/tutorials/notepad/index.html">
+  Notepad Tutorial</a> shows you how to build a full Android application 
+  and provides  helpful commentary on the Android system and API. The 
+  Notepad tutorial helps you bring together the important design
+  and architectural concepts in a moderately complex application. 
+  </li>
+</ul>
+<p class="caution">Following the Notepad tutorial is an excellent 
+second step in getting started with Android development. </p>
+
+<p><strong>Explore some code</strong></p>
+
+<ul>
+  <li>The Android SDK includes sample code and applications for each platform
+version. You can browse the samples in the <a 
+href="{@docRoot}resources/index.html">Resources</a> tab or download them
+into your SDK using the Android SDK and AVD Manager. Once you've downloaded the
+samples, you'll find them in
+<code><em>&lt;sdk&gt;</em>/samples/<em>&lt;platform&gt;/</em></code>. </li>
 </ul>
 
 <p><strong>Visit the Android developer groups</strong></p>
@@ -361,7 +509,6 @@
   community is like.</li>
 </ul>
 
-
 <h2 id="troubleshooting">Troubleshooting</h2>
 
 <h3>Ubuntu Linux Notes</h3>
@@ -402,4 +549,4 @@
   in the <a href="requirements.html">System Requirements</a>.
   In particular, note that some Linux distributions may include JDK 1.4 or Gnu
   Compiler for Java, both of which are not supported for Android development.</li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/docs/html/sdk/requirements.jd b/docs/html/sdk/requirements.jd
index c1f74ad..cb9cdf3 100644
--- a/docs/html/sdk/requirements.jd
+++ b/docs/html/sdk/requirements.jd
@@ -2,48 +2,56 @@
 @jd:body
 
 <p>The sections below describe the system and software requirements for developing 
-Android applications using the Android Development Tools, revision 3. </p>
+Android applications using the Android SDK. </p>
 
 <h3>Supported Operating Systems</h3>
 <ul>
   <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
-  <li>Mac OS X 10.4.8 or later (x86 only)</li>
+  <li>Mac OS X 10.5.8 or later (x86 only)</li>
   <li>Linux (tested on Linux Ubuntu Hardy Heron)
     <ul>
       <li>64-bit distributions must be capable of running 32-bit applications. 
       For information about how to add support for 32-bit applications, see
-      the <a href="installing.html#troublehooting">Ubuntu Linux
+      the <a href="installing.html#troubleshooting">Ubuntu Linux
 installation notes</a>.</li>
     </ul>
   </li>
 </ul>
 
 <h3>Supported Development Environments</h3>
-<ul>
-  <li>Eclipse IDE
+
+<h4 style="margin-top:.25em"><em>Eclipse IDE</em></h4>
     <ul>
-      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.4 (Ganymede) or 3.5 (Galileo)
-        <ul>
-        <li>Note: Eclipse 3.3 has not been tested with the latest version of 
-ADT and support can no longer be guaranteed. We suggest you upgrade to Eclipse
-3.4 or 3.5.</li>
-        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE
-Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in
-Developers, or Eclipse Classic (3.5.1+)</li>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin
-(included in most Eclipse IDE packages) </li>
-        </ul>
-      </li>     
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="eclipse-adt.html">Android Development Tools
-plugin</a> (optional)</li>
+      <li>Eclipse 3.4 (Ganymede) or 3.5 (Galileo)
+      <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included
+in most Eclipse IDE packages) </li>
+      <li>If you need to install or update Eclipse, you can download it from <a
+href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a>. 
+
+      <p>Several types of Eclipse packages are available for each platform. For
+developing Android applications, we recommend that you install one of these
+packages: </p>
+         <ul>
+           <li>Eclipse IDE for Java EE Developers</li>
+           <li>Eclipse IDE for Java Developers</li>
+           <li>Eclipse for RCP/Plug-in Developers</li>
+           <li>Eclipse Classic (versions 3.5.1 and higher)</li>
+         </ul>
+      </li>
+      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK
+6</a> (JRE alone is not sufficient)</li>
+      <li><a href="eclipse-adt.html">Android Development Tools plugin</a>
+(optional)</li>
       <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
     </ul>
-  </li>
-  <li>Other development environments or IDEs
+
+
+<h4><em>Other development environments or IDEs</em></h4>
     <ul>
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
+      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK
+6</a> (JRE alone is not sufficient)</li>
+      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for
+Linux and Mac, 1.7 or later for Windows</li>
       <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
     </ul>
   </li>
@@ -53,7 +61,47 @@
 particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
 
 <h3>Hardware requirements</h3>
-<ul>
-  <li>For the base SDK package, at least 600MB of available disk space. For each platform downloaded into the SDK, an additional 100MB is needed. </li>
-</ul>
+
+<p>The Android SDK requires disk storage for all of the components that you choose to install. The table below provides a rough idea of the disk-space requirements to expect, based on the components that you plan to use. </p>
+
+<table>
+<tr>
+<th>Component type</th>
+<th>Approximate size</th>
+<th>Comments</th>
+</tr>
+<tr>
+<td>SDK Tools</td>
+<td>50 MB</td>
+<td>Required.</td>
+</tr>
+<tr>
+<td>Android platform (each)</td>
+<td>150 MB</td>
+<td>At least one platform is required.</td>
+</tr>
+<tr>
+<td>SDK Add-on (each)</td>
+<td>100 MB</td>
+<td>Optional.</td>
+</tr>
+<tr>
+<td>USB Driver for Windows</td>
+<td>10 MB</td>
+<td>Optional. For Windows only.</td>
+</tr>
+<tr>
+<td>Samples (per platform)</td>
+<td>10M</td>
+<td>Optional.</td>
+</tr>
+<tr>
+<td>Offline documentation</td>
+<td>250 MB</td>
+<td>Optional.</td>
+</tr>
+</table>
+
+<p>Note that the disk-space requirements above are <em>in addition to</em> those of the Eclipse IDE, JDK, or other prerequisite tools that you may need to install on your development computer.</p>
+
 
diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs
index b790218..a845e55 100644
--- a/docs/html/sdk/sdk_toc.cs
+++ b/docs/html/sdk/sdk_toc.cs
@@ -24,7 +24,7 @@
           <span style="display:none" class="zh-TW">下載</span>
         </a></li>
       <li><a href="<?cs var:toroot ?>sdk/installing.html">
-          <span class="en">Installing</span>
+          <span class="en">Installing the SDK</span>
           <span style="display:none" class="de">Installieren</span>
           <span style="display:none" class="es">Instalación</span>
           <span style="display:none" class="fr">Installation</span>
@@ -82,10 +82,9 @@
       </li>
     </ul>
     <ul>
-      <li><a href="<?cs var:toroot ?>sdk/tools-notes.html">SDK Tools, r4</a>
-      </li>
+      <li><a href="<?cs var:toroot ?>sdk/tools-notes.html">SDK Tools, r5</a> <span class="new">new!</span></li>
       <li><a href="<?cs var:toroot ?>sdk/win-usb.html">USB Driver for
-Windows, r3</a> <span class="new">new!</span>
+      Windows, r3</a>
       </li>
     </ul>
   </li>
@@ -101,7 +100,8 @@
       <span style="display:none" class="zh-TW"></span>
       </h2>
     <ul>
-      <li><a href="<?cs var:toroot ?>sdk/eclipse-adt.html">Installing and Updating
+      <li><a href="<?cs var:toroot ?>sdk/eclipse-adt.html">ADT
+      <?cs var:adt.zip.version ?></a>  <span class="new">new!</span>
       <span style="display:none" class="de"></span>
       <span style="display:none" class="es"></span>
       <span style="display:none" class="fr"></span>
@@ -110,9 +110,6 @@
       <span style="display:none" class="zh-CN"></span>
       <span style="display:none" class="zh-TW"></span></a>
       </li>
-      <li><a href="<?cs var:toroot ?>sdk/adt-notes.html">ADT <?cs var:adt.zip.version ?> 
-          </a>
-      </li>
     </ul>
   </li>
   <li>
@@ -144,8 +141,8 @@
     <ul>
       <li><a href="<?cs var:toroot ?>sdk/requirements.html">SDK System Requirements</a></li>
       <li><a href="<?cs var:toroot ?>sdk/terms.html">SDK Terms and Conditions</a></li>
-      <li><a href="<?cs var:toroot ?>sdk/RELEASENOTES.html">SDK Release
-            Notes</a></li>
+      <!-- <li><a href="<?cs var:toroot ?>sdk/RELEASENOTES.html">SDK Release
+            Notes</a></li> -->
       <li><a href="<?cs var:toroot ?>sdk/older_releases.html">SDK
             Archives</a></li>
 
diff --git a/docs/html/sdk/tools-notes.jd b/docs/html/sdk/tools-notes.jd
index 1b0d8f0..3db226f 100644
--- a/docs/html/sdk/tools-notes.jd
+++ b/docs/html/sdk/tools-notes.jd
@@ -1,39 +1,131 @@
-page.title=SDK Tools Notes
+page.title=SDK Tools
 @jd:body
 
-<p>SDK Tools is a downloadable component for the Android SDK. It
-includes the complete set of development and debugging tools for the Android
-SDK.</p>
+<p>SDK Tools is a downloadable component for the Android SDK. It includes the
+complete set of development and debugging tools for the Android SDK. </p>
 
-<p>This document provides version-specific information about SDK Tools
-releases. To keep up-to-date on new releases, make sure that you view this page
-at <a
-href="http://developer.android.com/sdk/tools-notes.html">http://developer.
-android.com/sdk/tools-notes.html</a>.</p>
+<p>If you are new to the Android SDK, the <a 
+href="{@docRoot}sdk/index.html">SDK starter package</a> installs the
+latest revision of the SDK Tools in the <code>&lt;sdk&gt;/tools</code> directory.</p>
 
-<p>To install SDK Tools in your SDK environment (and replace the
-existing tools), use the Android SDK and AVD Manager. For more information, see
-<a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>. </p>
+<p>If you are already using the SDK Tools, you should update to the latest revision by
+using the Android SDK and AVD Manager (rather than by downloading a new SDK package).
+For more information about how to update, see <a 
+href="{@docRoot}sdk/adding-components.html#UpdatingComponents">Adding SDK Components</a>. </p>
 
-<h2 id="4">SDK Tools, Revision 4</h2>
+<h2 id="notes">Revisions</h2>
 
-<p>December 2009. SDK Tools r4 provides several new features for developers and includes
-fixes for several issues, as described below. </p>
+<p>The sections below provide notes about successive releases of
+the SDK Tools, as denoted by revision number. To determine what revision of the SDK
+Tools you are using, refer to the "Installed Packages" listing in the Android SDK
+and AVD Manager. </p>
 
-<h3>Dependencies</h3>
+<script type="text/javascript">
+function toggleDiv(link) {
+  var toggleable = $(link).parent();
+  if (toggleable.hasClass("closed")) {
+    //$(".toggleme", toggleable).slideDown("fast");
+    toggleable.removeClass("closed");
+    toggleable.addClass("open");
+    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
+  } else {
+    //$(".toggleme", toggleable).slideUp("fast");
+    toggleable.removeClass("open");
+    toggleable.addClass("closed");
+    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
+  }
+  return false;
+}
+</script>
+<style>
+.toggleable {
+padding: .25em 1em;
+}
+.toggleme {
+  padding: 1em 1em 0 2em;
+  line-height:1em;
+}
+.toggleable a {
+  text-decoration:none;
+}
+.toggleable.closed .toggleme {
+  display:none;
+}
+#jd-content .toggle-img {
+  margin:0;
+}
+</style>
+<div class="toggleable opened">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" />
+SDK Tools, Revision 5</a> <em>(March 2010)</em>
+  <div class="toggleme">
 
-<p>SDK Tools r4 is compatible with ADT 0.9.5 and later, but not
+<dl>
+<dt>Dependencies:</dt>
+<dd><ul>
+<li>If you are developing in Eclipse with ADT, note that SDK Tools r5 is
+designed for use with ADT 0.9.6 and later. After installing SDK Tools r5, we
+highly recommend updating your ADT Plugin to 0.9.6.</li>
+<li>For Mac OS platforms, OS X 10.4.x (Tiger) is no longer
+officially supported. </li>
+</ul>
+</dd>
+
+<dt>SDK and AVD Manager:</dt>
+<dd>
+<ul>
+<li>Fixes SSL download for the standalone version of the SDK Updater.</li>
+<li>Fixes issue with 64-bit JVM on Windows.</li>
+<li>Adds support for platform samples components.</li>
+<li>Improves support for dependency between components.</li>
+<li>AVDs now sorted by API level.</li>
+<li>The AVD creation dialog now enforces a minimum SD card size of 9MB.</li>
+<li>Prevents deletion of running AVDs.</li>
+<li>Settings are now automatically saved, no need to click "Apply".</li>
+</ul>
+</dd>
+
+<dt>Emulator:</dt>
+<dd>
+<ul>
+<li>Emulator now requires SD card to be 9MB or more.</li>
+</ul>
+</dd>
+
+<dt>Layoutopt:</dt>
+<dd>
+<ul>
+<li>Fixes <code>layoutopt.bat</code> to execute correctly on Windows.</li>
+</ul>
+</dd>
+</dl>
+ </div>
+</div>
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+SDK Tools, Revision 4</a> <em>(December 2009)</em>
+  <div class="toggleme">
+
+<dl>
+<dt>Dependencies:</dt>
+<dd><p>SDK Tools r4 is compatible with ADT 0.9.5 and later, but not
 compatible with earlier versions. If you are developing in Eclipse with ADT, you
 <strong>must</strong> update your ADT plugin to version 0.9.5 or higher if you
-install SDK Tools r4 in your SDK. </p>
+install SDK Tools r4 in your SDK. </p></dd>
 
-<h3>General notes</h3>
+<dt>General notes:</dt>
+<dd>
 <ul>
 <li>Launcher script now forces GDK_NATIVE_WINDOW=true (linux only), to fix a 
 compatibility issue between GTK and SWT.</li>
 </ul>
+</dd>
 
-<h3>Android SDK and AVD Manager</h3>
+<dt>Android SDK and AVD Manager:</dt>
+<dd>
 <ul>
 <li>AVD Launch dialog now shows scale value.</li>
 <li>Fixes potential NPE in SDK Manager on AVD launch, for older AVD with no 
@@ -41,38 +133,50 @@
 <li>Fixes XML validation issue in on older Java versions.</li>
 <li>No longer forces the use of Java 1.5 on Mac OS X.</li>
 </ul>
+</dd>
 
-<h3>Emulator</h3>
+<dt>Emulator:</dt>
+<dd>
 <ul>
 <li>No longer limits the size of the system partition.</li>
 </ul>
+</dd>
 
-<h3>Ant build tools</h3>
+<dt>Ant build tools:</dt>
+<dd>
 <ul>
 <li>.apk packaging now properly ignores vi swap files as well as hidden files.</li>
 </ul>
+</dd>
+</dl>
+ </div>
+</div>
 
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+SDK Tools, Revision 3</a> <em>(October 2009)</em>
+  <div class="toggleme">
 
-<h2 id="3">SDK Tools, Revision 3</h2>
-
-<p>October 2009. SDK Tools r3 provides several new features for developers and includes
-fixes for several tools issues, as described below. </p>
-
-<h3>Dependencies</h3>
-
-<p>SDK Tools r3 is compatible with ADT 0.9.4 and later, but not
+<dl>
+<dt>Dependencies:</dt>
+<dd><p>SDK Tools r3 is compatible with ADT 0.9.4 and later, but not
 compatible with earlier versions. If you are developing in Eclipse with ADT, you
 <strong>must</strong> update your ADT plugin to version 0.9.4 or higher if you
-install SDK Tools r3 in your SDK. </p>
+install SDK Tools r3 in your SDK.</p>
+</dd>
 
-<h3>Android tool</h3>
+<dt>Android tool:</dt>
+<dd>
 <ul>
 <li>Adds new <code>android create test-project</code> and <code>android update
 test-project</code> commands to allow for greater flexibility in the location of the
 main and test projects.</li>
 </ul>
+</dd>
 
-<h3>DDMS</h3>
+<dt>DDMS:</dt>
+<dd>
 <ul>
 <li>Adds a button to dump HPROF file for running appplications (app must be able
 to write to the sdcard).</li>
@@ -83,8 +187,10 @@
 10.6.</li>
 <li>Fixed screenshot support for devices running 32-bit framebuffer.</li>
 </ul>
+</dd>
 
-<h3>Android SDK and AVD Manager</h3>
+<dt>Android SDK and AVD Manager:</dt>
+<dd>
 <ul>
 <li>Provides a new UI that lets you set options for controlling
 the emulator skin, screen size/density, and scale factor used when launching 
@@ -94,14 +200,17 @@
 <li>Now enforces dependencies between platforms and tools components, and
 between SDK add-ons and platforms.</li>
 </ul>
+</dd>
 
-<h3>Layoutopt, a new tool for optimizing layouts</h3>
+<dt>Layoutopt, a new tool for optimizing layouts:</dt>
 
-<p>The SDK Tools r3 package includes <code>layoutopt</code>, a new command-line 
+<dd><p>The SDK Tools r3 package includes <code>layoutopt</code>, a new command-line 
 tool that helps you optimize your layout hierarchies. When run against your 
 layout files, the tool analyzes their hierarchies and notifies you of 
 inefficiencies and other potential issues. The tool also provides simple 
 solutions for the issues it finds. For usage, see <a 
-href="{@docRoot}guide/developing/tools/layoutopt.html">layoutopt</a>.
-</p>
-
+href="/guide/developing/tools/layoutopt.html">layoutopt</a>.</p>
+</dd>
+</dl>
+ </div>
+</div>
diff --git a/docs/html/sdk/win-usb.jd b/docs/html/sdk/win-usb.jd
index d3dce9e..38b34ed 100644
--- a/docs/html/sdk/win-usb.jd
+++ b/docs/html/sdk/win-usb.jd
@@ -5,7 +5,7 @@
 <div id="qv">
   <h2>In this document</h2>
   <ol>
-    <li><a href="#RevisionNotes">Revision Notes</a></li>
+    <li><a href="#notes">Revisions</a></li>
     <li><a href="#WinUsbDriver">Installing the USB Driver for Windows</a></li>
   </ol>
   <h2>See also</h2>
@@ -34,18 +34,86 @@
 href="{@docRoot}guide/developing/device.html#setting-up">Setting up a
 Device</a> to start development with a device.</p>
 
-<h2 id="RevisionNotes">Revision Notes</h2>
+<h2 id="notes">Revisions</h2>
 
-<h4>Revision 3</h4>
-<p>Adds support for the Nexus One. Released January 2010.</p>
+<p>The sections below provide notes about successive revisions of the USB Driver
+for Windows, as denoted by revision number. To determine what revision of the
+USB Driver for Windows you are using, refer to the "Installed Packages" listing
+in the Android SDK and AVD Manager.</p>
 
-<h4>Revision 2</h4>
-<p>Adds support for the Verizon Droid (or similar hardware on
-other carriers). Released November 2009.</p>
+<script type="text/javascript">
+function toggleDiv(link) {
+  var toggleable = $(link).parent();
+  if (toggleable.hasClass("closed")) {
+    //$(".toggleme", toggleable).slideDown("fast");
+    toggleable.removeClass("closed");
+    toggleable.addClass("open");
+    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
+  } else {
+    //$(".toggleme", toggleable).slideUp("fast");
+    toggleable.removeClass("open");
+    toggleable.addClass("closed");
+    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
+  }
+  return false;
+}
+</script>
+<style>
+.toggleable {
+padding: .25em 1em;
+}
+.toggleme {
+  padding: 1em 1em 0 2em;
+  line-height:1em;
+}
+.toggleable a {
+  text-decoration:none;
+}
+.toggleable.closed .toggleme {
+  display:none;
+}
+#jd-content .toggle-img {
+  margin:0;
+}
+</style>
 
-<h4>Revision 1</h4>
-<p>This was the initial release of the WinUsb-based driver, with support
-for the T-Mobile G1 and myTouch 3G (and similar devices).</p>
+<div class="toggleable opened">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" />
+USB Driver for Windows, Revision 3</a> <em>(January 2010)</em>
+  <div class="toggleme">
+
+<dl>
+<dt><p>Adds support for the Nexus One.</p></dt>
+</dl>
+ </div>
+</div>
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+USB Driver for Windows, Revision 2</a> <em>(November 2009)</em>
+  <div class="toggleme">
+
+<dl>
+<dt><p>Adds support for the Verizon Droid (or similar hardware on
+other carriers).</p></dt>
+</dl>
+ </div>
+</div>
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
+USB Driver for Windows, Revision 1</a> <em>(October 2009)</em>
+  <div class="toggleme">
+
+<dl>
+<dt><p>Initial release of the WinUsb-based driver, with support
+for the T-Mobile G1 and myTouch 3G (and similar devices).</p></dt>
+</dl>
+ </div>
+</div>
 
 <h2 id="WinUsbDriver">Installing the USB Driver for Windows</h2>
 
@@ -66,21 +134,37 @@
 </div>
 </div>
 
-<p>Before you perform the installation below, you must have the USB
-driver saved to your development computer. To get the USB driver, use
-the AVD and SDK Manager included with the SDK Tools to download the USB driver
-as an SDK component. For more information, read <a
-href="adding-components.html">Adding SDK Components</a>.</p>
 
-<p>Once you have the USB driver saved to your computer, select the
-appropriate procedure below, based on your operating system and whether you're
-installing for the first time or upgrading.</p>
+<p>The sections below provide instructions on how to download the USB Driver
+for Windows and install it on your development computer. </p>
 
-<p>If you are connecting an Android-powered
-device to your computer for the first time, follow the below procedure to
-"Perform a fresh installation." If you have installed one of the older
-USB drivers and would like to upgrade to the latest version, follow the
-procedure to "Upgrade an existing driver."</p>
+<h3>Downloading the USB Driver for Windows</h3>
+
+<p>The USB Driver for Windows is available for download as an optional SDK
+component. You need the driver only if you are developing on Windows and 
+want to connect an Android-powered device to your development environment
+over USB. </p>
+
+<p>To install the driver or upgrade your existing driver to the latest
+revision, you must first download the driver to your development computer. </p>
+
+<p>To download the driver, use the Android SDK and AVD Manager tool that is
+included with the Android SDK. If you haven't yet installed the Android SDK, as
+described in <a href="installing.html">Installing the Android SDK</a>, please do
+so before continuing with the driver installation. </p>
+
+<p>When you are ready to download the driver, follow the instructions given in
+<a href="adding-components.html">Adding SDK Components</a> to launch the Android
+SDK and AVD Manager. From the <strong>Available Packages</strong> panel, select
+"Usb Driver Package" and download it to your computer. The driver files are
+downloaded into the <code>&lt;sdk&gt;\usb_driver</code> directory.</p>
+
+<p>After the download, follow the instructions below to install or upgrade the
+driver, based on your needs and Windows operating system version. If you are
+connecting an Android-powered device to your computer for the first time, follow
+the below procedure to "Perform a fresh installation." If you have installed one
+of the older USB drivers and would like to upgrade to the latest version, follow
+the procedure to "Upgrade an existing driver."</p>
 
 <p>Once you've completed the USB driver installation,
 please see <a
diff --git a/docs/html/sitemap.txt b/docs/html/sitemap.txt
index 5039dfc..b0ec7c9 100644
--- a/docs/html/sitemap.txt
+++ b/docs/html/sitemap.txt
@@ -74,7 +74,6 @@
 http://developer.android.com/sdk/tools-notes.html
 http://developer.android.com/sdk/win-usb.html
 http://developer.android.com/sdk/eclipse-adt.html
-http://developer.android.com/sdk/adt-notes.html
 http://developer.android.com/sdk/ndk/1.6_r1/index.html
 http://developer.android.com/sdk/requirements.html
 http://developer.android.com/sdk/RELEASENOTES.html
