diff --git a/Android.mk b/Android.mk
index 49ee63d..8ed8a16b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -343,7 +343,7 @@
     -since ./frameworks/base/api/2.xml 2 \
     -since ./frameworks/base/api/3.xml 3 \
     -since ./frameworks/base/api/4.xml 4 \
-    -since ./frameworks/base/api/current.xml Eclair \
+    -since ./frameworks/base/api/5.xml 5 \
 		-error 1 -error 2 -warning 3 -error 4 -error 6 -error 8 \
 		-overview $(LOCAL_PATH)/core/java/overview.html
 
@@ -380,10 +380,20 @@
   # flag to build offline docs for a preview release
 framework_docs_SDK_PREVIEW:=0
 
+## Latest ADT version identifiers, for reference from published docs
+framework_docs_ADT_VERSION:=0.9.4
+framework_docs_ADT_DOWNLOAD:=ADT-0.9.4.zip
+framework_docs_ADT_BYTES:=0
+framework_docs_ADT_CHECKSUM:=0
+
 framework_docs_LOCAL_DROIDDOC_OPTIONS += \
 		-hdf sdk.version $(framework_docs_SDK_VERSION) \
 		-hdf sdk.rel.id $(framework_docs_SDK_REL_ID) \
-		-hdf sdk.current $(framework_docs_SDK_CURRENT_DIR)
+		-hdf sdk.current $(framework_docs_SDK_CURRENT_DIR) \
+		-hdf adt.zip.version $(framework_docs_ADT_VERSION) \
+		-hdf adt.zip.download $(framework_docs_ADT_DOWNLOAD) \
+		-hdf adt.zip.bytes $(framework_docs_ADT_BYTES) \
+		-hdf adt.zip.checksum $(framework_docs_ADT_CHECKSUM) 
 
 # ====  the api stubs and current.xml ===========================
 include $(CLEAR_VARS)
diff --git a/docs/html/guide/appendix/api-levels.jd b/docs/html/guide/appendix/api-levels.jd
index 3158192..3f3b6c6 100644
--- a/docs/html/guide/appendix/api-levels.jd
+++ b/docs/html/guide/appendix/api-levels.jd
@@ -83,6 +83,7 @@
 
 <table>
   <tr><th>Platform Version</th><th>API Level</th></tr>
+  <tr><td>Android 2.0</td><td>5</td></tr>
   <tr><td>Android 1.6</td><td>4</td></tr>
   <tr><td>Android 1.5</td><td>3</td></tr>
   <tr><td>Android 1.1</td><td>2</td></tr>
@@ -115,6 +116,10 @@
 <ul>
 <li><code>android:minSdkVersion</code> &mdash; Specifies the minimum API Level
 on which the application is able to run. The default value is "1".</li>
+<li><code>android:targetSdkVersion</code> &mdash; Specifies the API Level
+on which the application is designed to run. In some cases, this allows the
+application to use manifest elements or behaviors defined in the target
+API Level, rather than those in the minimum API Level.</li>
 <li><code>android:maxSdkVersion</code> &mdash; Specifies the maximum API Level
 on which the application is able to run.</li>
 </ul>
@@ -146,7 +151,7 @@
 
 <pre>&lt;manifest&gt;
   ...
-  &lt;uses-sdk android:minSdkVersion="4" /&gt;
+  &lt;uses-sdk android:minSdkVersion="5" /&gt;
   ...
 &lt;/manifest&gt;</pre>
 
@@ -288,23 +293,26 @@
 
 <h2 id="provisional">Using a Provisional API Level</h2>
 
-<p>During an "Early Look" SDK release, the APIs may not be final, so the API Level integer
-will not be specified. You must instead use a provisional API Level in your application
-manifest in order to build applications against the Early Look platform. In this case,
-the provisional API Level is not an integer, but a string matching the codename of the
-unreleased platform version (for example, "Eclair"). The provisional API Level will be specified
-in the Early Look SDK release notes and is case-sensitive.</p>
+<p>In some cases, an "Early Look" Android SDK platform may be available. To let
+you begin developing on the platform although the APIs may not be final, the
+platform's API Level integer will not be specified. You must instead use the
+platform's <em>provisional API Level</em> in your application manifest, in order
+to build applications against the platform. A provisional API Level is not an
+integer, but a string matching the codename of the unreleased platform version.
+The provisional API Level will be specified in the release notes for the Early
+Look SDK release notes and is case-sensitive.</p>
 
-<p>The use of a provisional API Level is designed to protect developers 
-and device users from inadvertently publishing or installing applications based on the 
-Early Look framework API, which may not run properly on actual devices running the final
-system image.</p>
+<p>The use of a provisional API Level is designed to protect developers and
+device users from inadvertently publishing or installing applications based on
+the Early Look framework API, which may not run properly on actual devices
+running the final system image.</p>
 
-<p>The provisional API Level will only be valid while using the Early Look SDK to run
-applications in the emulator. An application using the provisional API Level can never be 
-installed on an Android device. When the final SDK is released, you must replace any
-instances of the provisional API Level in your application manifest with the final 
-API Level integer.</p>
+<p>The provisional API Level will only be valid while using the Early Look SDK
+and can only be used to run applications in the emulator. An application using
+the provisional API Level can never be installed on an Android device. At the
+final release of the platform, you must replace any instances of the provisional
+API Level in your application manifest with the final platform's actual API
+Level integer.</p>
 
 
 <h2 id="filtering">Filtering the Reference Documentation by API Level</h2>
diff --git a/docs/html/guide/developing/eclipse-adt.jd b/docs/html/guide/developing/eclipse-adt.jd
index c3ec2e5..667aa9f 100644
--- a/docs/html/guide/developing/eclipse-adt.jd
+++ b/docs/html/guide/developing/eclipse-adt.jd
@@ -38,12 +38,12 @@
 
 <p>To begin developing Android applications in the Eclipse IDE with ADT, you first need to 
 download the Eclipse IDE and then download and install the ADT plugin. To do so, follow the 
-steps given in <a href="{@docRoot}sdk/{@sdkCurrent}/installing.html#installingplugin">Installing 
+steps given in <a href="{@docRoot}sdk/eclipse-adt.html#installing">Installing 
 the ADT Plugin</a>.</p>
 
 <p>If you are already developing applications using a version of ADT earlier than 0.9, make
 sure to upgrade to the latest version before continuing. See the guide to
-<a href="{@docRoot}sdk/{@sdkCurrent}/upgrading.html#UpdateAdt">Updating Your Eclipse ADT Plugin</a>.</p>
+<a href="{@docRoot}sdk/eclipse-adt.html#updating">Updating Your ADT Plugin</a>.</p>
 
 <p class="note"><strong>Note:</strong> This guide assumes you are using the latest version of
 the ADT plugin. While most of the information covered also applies to previous 
diff --git a/docs/html/guide/developing/tools/othertools.jd b/docs/html/guide/developing/tools/othertools.jd
index b4c4cf3..00f0b8d6 100644
--- a/docs/html/guide/developing/tools/othertools.jd
+++ b/docs/html/guide/developing/tools/othertools.jd
@@ -26,14 +26,14 @@
   <li>Create and update Android projects. See
   <a href="{@docRoot}guide/developing/other-ide.html">Developing in Other IDEs</a>.</li>
   <li>Update your Android SDK with new platforms, add-ons, and documentation. See
-  <a href="{@docRoot}guide/developing/updating-sdk.html">Updating Your SDK</a>.</li>
+  <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.</li>
 </ul>
 
 <p>If you develop in Eclipse with the ADT plugin, you can perform
 these tasks directly from the IDE. To create
 Android projects and AVDs from Eclipse, see <a href="{@docRoot}guide/developing/eclipse-adt.html">Developing
 In Eclipse</a>. To update your SDK from Eclipse, see
-<a href="{@docRoot}guide/developing/updating-sdk.html">Updating Your SDK</a>. 
+<a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>. 
 </p>
 
 
diff --git a/docs/html/guide/tutorials/hello-world.jd b/docs/html/guide/tutorials/hello-world.jd
index 79b723d..58d1a16 100644
--- a/docs/html/guide/tutorials/hello-world.jd
+++ b/docs/html/guide/tutorials/hello-world.jd
@@ -29,7 +29,7 @@
 
 <p>Before you start, you should already have the very latest SDK installed, and if you're using
 Eclipse, you should have installed the ADT plugin as well. If you have not installed these, see 
-<a href="{@docRoot}sdk/{@sdkCurrent}/installing.html">Installing the Android SDK</a> and return
+<a href="{@docRoot}sdk/installing.html">Installing the Android SDK</a> and return
 here when you've completed the installation.</p>
 
 <h2 id="avd">Create an AVD</h2>
diff --git a/docs/html/intl/ja/guide/developing/eclipse-adt.jd b/docs/html/intl/ja/guide/developing/eclipse-adt.jd
index 26cae54..e7accd8 100644
--- a/docs/html/intl/ja/guide/developing/eclipse-adt.jd
+++ b/docs/html/intl/ja/guide/developing/eclipse-adt.jd
@@ -29,8 +29,8 @@
   <li>プロジェクトを、ユーザーに配布可能な署名済みの APK 形式でエクスポートすることもできます。</li>
 </ul>
 
-<p>ADT を組み込んだ Eclipse 総合開発環境で Android アプリケーションの開発を始めるには、最初に Eclipse 総合開発環境をダウンロードしてから、ADT プラグインをダウンロードしてインストールする必要があります。そのためには、<a href="{@docRoot}sdk/{@sdkCurrent}/installing.html#installingplugin">Eclipse 用 ADT プラグインのインストール</a>に記載されている手順どおりに操作します。</p>
-<p>バージョン 0.9 より前の ADT を使用してアプリケーションを既に開発中の場合は、必ず最新バージョンにアップグレードしてから続行してください。<a href="{@docRoot}sdk/{@sdkCurrent}/upgrading.html#UpdateAdt">Eclipse ADT プラグインをアップデート</a>するためのガイドをご覧ください。</p>
+<p>ADT を組み込んだ Eclipse 総合開発環境で Android アプリケーションの開発を始めるには、最初に Eclipse 総合開発環境をダウンロードしてから、ADT プラグインをダウンロードしてインストールする必要があります。そのためには、<a href="{@docRoot}sdk/eclipse-adt.html#installing">Eclipse 用 ADT プラグインのインストール</a>に記載されている手順どおりに操作します。</p>
+<p>バージョン 0.9 より前の ADT を使用してアプリケーションを既に開発中の場合は、必ず最新バージョンにアップグレードしてから続行してください。<a href="{@docRoot}sdk/eclipse-adt.html#updating">Eclipse ADT プラグインをアップデート</a>するためのガイドをご覧ください。</p>
 <p class="note"><strong>注:</strong> このガイドでは、ADT プラグインの最新バージョンを使用していることを前提としています。説明の大半は、以前のバージョンにも当てはまりますが、以前のバージョンを使用している場合は、このドキュメントのオンライン版ではなく、SDK パッケージに付属された資料内の同ドキュメントをご覧ください。</p>
 
 
diff --git a/docs/html/intl/ja/guide/tutorials/hello-world.jd b/docs/html/intl/ja/guide/tutorials/hello-world.jd
index 31857ce..c12965c 100644
--- a/docs/html/intl/ja/guide/tutorials/hello-world.jd
+++ b/docs/html/intl/ja/guide/tutorials/hello-world.jd
@@ -20,7 +20,7 @@
 
 <p>Eclipse を使用していない場合でも問題ありません。<a href="{@docRoot}guide/developing/other-ide.html">Developing in Other IDEs</a>に慣れてから、このチュートリアルに戻り、Eclipse に関する部分以外を参考にしてください。</p>
 
-<p>開始する前に、最新の SDK がインストールされている必要があります。また、Eclipse を使用する場合には、ADT プラグインもインストールされている必要があります。これらのプログラムがインストールされていない場合は、「<a href="{@docRoot}sdk/{@sdkCurrent}/installing.html">Installing the Android SDK</a>」を参考にインストールを実行して、完了後にこのチュートリアルに戻ってください。</p>
+<p>開始する前に、最新の SDK がインストールされている必要があります。また、Eclipse を使用する場合には、ADT プラグインもインストールされている必要があります。これらのプログラムがインストールされていない場合は、「<a href="{@docRoot}sdk/installing.html">Installing the Android SDK</a>」を参考にインストールを実行して、完了後にこのチュートリアルに戻ってください。</p>
 
 <h2 id="avd">AVD の作成</h2>
 
diff --git a/docs/html/intl/ja/sdk/1.5_r2/installing.jd b/docs/html/intl/ja/sdk/1.5_r2/installing.jd
index bcb1ffb..a587b1a 100644
--- a/docs/html/intl/ja/sdk/1.5_r2/installing.jd
+++ b/docs/html/intl/ja/sdk/1.5_r2/installing.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 
-<p>このページでは、Android SDK をインストールして、開発環境を設定する方法について説明します。SDK をまだダウンロードしていない場合は、[<a href="{@docRoot}sdk/{@sdkCurrent}/index.html">ダウンロード</a>] ページからダウンロードしてください。SDK をダウンロードした後に、このページの手順を行ってください。</p>
+<p>このページでは、Android SDK をインストールして、開発環境を設定する方法について説明します。SDK をまだダウンロードしていない場合は、[<a href="{@docRoot}sdk/index.html">ダウンロード</a>] ページからダウンロードしてください。SDK をダウンロードした後に、このページの手順を行ってください。</p>
 
 <p>インストール中に問題が発生した場合は、このページの下部にある<a href="#installnotes">インストールに関する注意事項</a>を参照してください。</p>
 
diff --git a/docs/html/intl/ja/sdk/1.5_r3/installing.jd b/docs/html/intl/ja/sdk/1.5_r3/installing.jd
index bcb1ffb..a587b1a 100644
--- a/docs/html/intl/ja/sdk/1.5_r3/installing.jd
+++ b/docs/html/intl/ja/sdk/1.5_r3/installing.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 
-<p>このページでは、Android SDK をインストールして、開発環境を設定する方法について説明します。SDK をまだダウンロードしていない場合は、[<a href="{@docRoot}sdk/{@sdkCurrent}/index.html">ダウンロード</a>] ページからダウンロードしてください。SDK をダウンロードした後に、このページの手順を行ってください。</p>
+<p>このページでは、Android SDK をインストールして、開発環境を設定する方法について説明します。SDK をまだダウンロードしていない場合は、[<a href="{@docRoot}sdk/index.html">ダウンロード</a>] ページからダウンロードしてください。SDK をダウンロードした後に、このページの手順を行ってください。</p>
 
 <p>インストール中に問題が発生した場合は、このページの下部にある<a href="#installnotes">インストールに関する注意事項</a>を参照してください。</p>
 
diff --git a/docs/html/offline.jd b/docs/html/offline.jd
index 78e2679..fe70d50 100644
--- a/docs/html/offline.jd
+++ b/docs/html/offline.jd
@@ -10,17 +10,17 @@
 
 <h3>If you've downloaded the Android SDK for the first time...</h3>
 
-<p>Complete the online guide to 
-<a href="http://developer.android.com/sdk/{@sdkCurrent}/installing.html">Installing 
+<p>Follow the online guide to 
+<a href="{@docRoot}sdk/installing.html">Installing 
 the Android SDK</a>, which will help you setup your development environment
 (including the Android Development Tools plugin for Eclipse) 
 so you can start developing Android apps.</p>
 
 <p>Once your environment is setup, look at the
-<a href="http://developer.android.com/sdk/{@sdkCurrent}/installing.html#NextSteps">Next
-Steps</a> for some pointers that will teach you about Android and get you started.</p>
+<a href="{@docRoot}sdk/installing.html#NextSteps">Next
+Steps</a> for some suggestions on how to begin learning about Android.</p>
 
-<h3>If you've updated an existing SDK using the <em>SDK and AVD Manager</em>...</h3>
+<h3>If you've just installed new SDK components using the <em>SDK and AVD Manager</em>...</h3>
 
 <p>There's no additional setup.</p>
 
@@ -37,10 +37,11 @@
 Android developer documentation. The offline documentation offers almost all the same
 content and features as the online documentation. Because some features
 such as search and videos are network-based, not everything will work if you
-are not connected to the Internet.<br/><br/>
-For the most current documentation and fully-functional experience, please visit<br/>
-<strong><a href="http://developer.android.com">
-http://developer.android.com</a></strong>.
+are not connected to the Internet.</p>
+
+<p>For the most current documentation and a fully-functional experience, please visit:</p>
+<p style="margin-left:2em;">
+<a href="http://developer.android.com">http://developer.android.com</a></strong>.
 </p>
 
 
diff --git a/docs/html/sdk/1.5_r2/installing.jd b/docs/html/sdk/1.5_r2/installing.jd
index 1530dc5..1e4e0f2 100644
--- a/docs/html/sdk/1.5_r2/installing.jd
+++ b/docs/html/sdk/1.5_r2/installing.jd
@@ -323,7 +323,7 @@
 <ul>
   <li>If JDK is already installed on your development computer, please
   take a moment to make sure that it meets the version requirements listed
-  in the <a href="{@docRoot}sdk/{@sdkCurrent}/requirements.html">System Requirements</a>.
+  in the <a href="{@docRoot}sdk/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>
diff --git a/docs/html/sdk/1.5_r3/installing.jd b/docs/html/sdk/1.5_r3/installing.jd
index 8c3e8ee..ac475d1 100644
--- a/docs/html/sdk/1.5_r3/installing.jd
+++ b/docs/html/sdk/1.5_r3/installing.jd
@@ -323,7 +323,7 @@
 <ul>
   <li>If JDK is already installed on your development computer, please
   take a moment to make sure that it meets the version requirements listed
-  in the <a href="{@docRoot}sdk/{@sdkCurrent}/requirements.html">System Requirements</a>.
+  in the <a href="{@docRoot}sdk/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>
diff --git a/docs/html/sdk/2.0_r1/installing.jd b/docs/html/sdk/2.0_r1/installing.jd
deleted file mode 100644
index fd269dc..0000000
--- a/docs/html/sdk/2.0_r1/installing.jd
+++ /dev/null
@@ -1,389 +0,0 @@
-page.title=Installing the Android 2.0 SDK
-sdk.preview=0
-
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-  <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="#sdkContents">SDK Contents</a></li>
-    <li><a href="#NextSteps">Next Steps</a></li>
-    <li><a href="#InstallationNotes">Installation Notes</a></li>
-    <li><a href="#Troubleshooting">Troubleshooting ADT Installation</a></li>
-  </ol>
-
-</div>
-</div>
-
-<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 
-<a href="#InstallationNotes">Installation Notes</a> at the bottom of
-this page.</p>
-
-<h4>Updating?</h4>
-<p>If you have already installed an earlier version
-of the Android SDK, please instead read <a href="{@docRoot}sdk/updating-sdk.html">Updating Your SDK</a>.
-</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>
-
-<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>
-
-<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>
-
-<h2 id="Installing">Install the SDK</h2>
-
-<p>After downloading the Android SDK, unpack the Android SDK .zip archive 
-to a suitable location on your machine. By default, the SDK files are unpacked 
-into a directory named <code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em></code>. </p>
-
-<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you 
-will need to refer to the SDK directory later, when setting up the Android plugin or when 
-using the SDK tools.</p>
-
-<p>Optionally, you may want to add the location of the SDK's primary <code>tools</code> directory 
-to your system <code>PATH</code>. The primary <code>tools/</code> directory is located at the root of the 
-SDK folder. Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and 
-the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without 
-needing to supply the full path to the tools directory. </p>
-<ul>
-    <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
-    for a line that sets the PATH environment variable and add the
-    full path to the <code>tools/</code> directory to it. If you don't 
-    see a line setting the path, you can add one:</li>
-
-    <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
-
-    <li>On a Mac OS X, look in your home directory for <code>.bash_profile</code> and
-    proceed as for Linux. You can create the <code>.bash_profile</code> if 
-    you haven't already set one up on your machine. </li>
-
-    <li>On Windows, right-click on My Computer, and select Properties.  
-  Under the Advanced tab, hit the Environment Variables button, and in the
-  dialog that comes up, double-click on Path (under System Variables). Add the full path to the 
-  <code>tools/</code> directory to the path. </li>
-  </ul>
-
-<p>Note that, if you update your SDK in the future, you 
-should remember to update your <code>PATH</code> settings to point to the new location, if different.</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="#NextSteps">Next Steps</a>).</p>
-
-
-<h2 id="InstallingADT">Install 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>
-
-<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 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&mdash;skip to <a href="#NextSteps">Next Steps</a>.)</p>
-
-<p>Once you have the Eclipse IDE installed, as described in <a
-href="#Preparing">Preparing for Installation</a>, follow the steps below to
-download the ADT plugin and install it in your respective Eclipse environment.
-</p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
-<tr>
-<td width="45%">
-<!-- 3.4 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>. 
-        In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
-    <li>Click <strong>Add Site...</strong> </li>
-    <li>In the Add Site dialog that appears, enter this URL in the "Location" field:
-      <pre style="margin-left:0">https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Note: If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
-        instead of "https" (https is preferred for security reasons).</p>   
-      <p>Click <strong>OK</strong>.</p></li>
-    <li>Back in the Available Software view, you should see the plugin listed by the URL,
-    with "Developer Tools" nested within it. Select the checkbox next to 
-      Developer Tools and click <strong>Install...</strong></li>
-    <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
-    should both be checked. Click <strong>Next</strong>. </li>
-    <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-<!-- 3.5 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Install
-        New Softare</strong>. </li>
-    <li>In the Available Software dialog, click <strong>Add...</strong>.</li>
-    <li>In the Add Site dialog that appears, enter a name for the remote site
-        (e.g., "Android Plugin") in the "Name" field. 
-        <p>In the "Location" field, enter this URL:</p>
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>Note: If you have trouble aqcuiring the plugin, you can try
-           using "http" in the URL, instead of "https" (https is preferred for 
-           security reasons).</p>
-        <p>Click <strong>OK</strong>.</p>
-    </li>
-    <li>Back in the Available Software view, you should now see "Developer
-        Tools" added to the list. Select the checkbox next to Developer Tools, 
-        which will automatically select the nested tools Android DDMS and Android 
-        Development Tools. 
-        Click <strong>Next</strong>. </li>
-    <li>In the resulting Install Details dialog, the Android DDMS and Android 
-        Development Tools features are listed. Click <strong>Next</strong> to 
-        read and accept the license agreement and install any dependencies, 
-        then click <strong>Finish</strong>. </li>
-    <li>Restart Eclipse. </li>
-	
-</ol>
-</td>
-</tr>
-</table>
-
-<p>Now modify your Eclipse preferences 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>
-    <li>Select <strong>Android</strong> from the left panel. </li>
-    <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and 
-        locate your downloaded SDK directory. </li>
-    <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. See the 
-<a href="#NextSteps">Next Steps</a> section for suggestions on how to start. </p>
-
-
-<h2 id="sdkContents">Contents of the SDK</h2>
-
-<p>Once you've downloaded and unpacked the SDK, open the SDK directory 
-and take a look at what's inside.</p>
-
-<p>The table below describes the SDK directory contents. </p>
-
-<table>
-<tr>
-<th colspan="3">Name</th><th>Description</th>
-</tr>
-<tr>
-<td colspan="3"><code>add-ons/</code></td>
-<td>Contains add-ons to the Android SDK development
-environment, which let you develop against external libraries that are available on some
-devices. </td>
-</tr>
-<tr>
-<td colspan="3"><code>docs/</code></td>
-<td>A full set of documentation in HTML format, including the Developer's Guide,
-API Reference, and other information.</td>
-</tr>
-<tr>
-<td colspan="3"><code>platforms/</code></td>
-<td>Contains a set of Android platform versions that you can develop
-applications against, each in a separate directory.  </td>
-</tr>
-<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 
-directories contain a similar set of files and subdirectory structure.</td>
-</tr>
-
-<tr>
-<td style="width:2em;border-bottom-color:white;">&nbsp;</td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>data/</code></td>
-<td>Storage area for default fonts and resource definitions.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>images/</code></td>
-<td>Storage area for default disk images, including the Android system image, 
-the default userdata image, the default ramdisk image, and more. The images 
-are used in emulator sessions.</td>
-</tr>
-<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>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>templates/</code></td>
-<td>Storage area for file templates used by the SDK development tools.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>tools/</code></td>
-<td>Any development tools that are specific to the platform version.</td>
-</tr>
-<tr>
-<td style="width:2em;"></td>
-<td style="width:2em;"></td>
-<td><code>android.jar</code></td>
-<td>The Android library used when compiling applications against this platform
-version.</td>
-</tr>
-<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>
-</tr>
-<tr>
-<td colspan="3"><code>RELEASE_NOTES.html</code></td>
-<td>A file that loads the local version of the SDK release notes, if
-available.</td>
-</tr>
-<tr>
-<td colspan="3"><code>documentation.html</code></td>
-<td>A file that loads the entry page for the local Android SDK
-documentation.</td>
-</tr>
-
-</table>
-
-<h2 id="InstallationNotes">Installation Notes</h2>
-
-<h3>Ubuntu Linux Notes</h3>
-
-<ul>
-  <li>If you need help installing and configuring Java on your
-    development machine, you might find these resources helpful: 
-    <ul>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
-      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
-    </ul>
-  </li>
-  <li>Here are the steps to install Java and Eclipse, prior to installing
-  the Android SDK and ADT Plugin.
-    <ol>
-      <li>If you are running a 64-bit distribution on your development
-      machine, you need to install the <code>ia32-libs</code> package using
-      <code>apt-get:</code>:
-      <pre>apt-get install ia32-libs</pre>
-      </li>
-      <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
-      <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
-      version for download, so we recommend that you download Eclipse from
-      eclipse.org (<a
-      href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
-      downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
-      <li>Follow the steps given in previous sections to install the SDK 
-      and the ADT plugin. </li>
-    </ol>
-  </li>
-</ul>
-
-<h3>Other Linux Notes</h3>
-
-<ul>
-  <li>If JDK is already installed on your development computer, please
-  take a moment to make sure that it meets the version requirements listed
-  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>
-
-
-<h2 id="Troubleshooting">Troubleshooting ADT Installation</h2>
-
-<p> If you are having trouble downloading the ADT plugin after following the
-steps above, here are some suggestions: </p>
-
-<ul>
-  <li>If Eclipse can not find the remote update site containing the ADT plugin,
-try changing the remote site URL to use http, rather than https. That is, set
-the Location for the remote site to:
-<pre>http://dl-ssl.google.com/android/eclipse/</pre></li> 
-<li>If you are behind a firewall (such as a corporate firewall), make sure that
-you have properly configured your proxy settings in Eclipse. In Eclipse 3.3/3.4,
-you can configure proxy information from the main Eclipse menu in
-<strong>Window</strong> (on Mac OS X, <strong>Eclipse</strong>) &gt;
-<strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network
-Connections</strong>.</li>
-</ul>
-
-<p> If you are still unable to use Eclipse to download the ADT plugin as a
-remote update site, you can download the ADT zip file to your local machine and
-manually install it:</p>
-
-<ol>
-  <li><a href="http://developer.android.com/sdk/preview/index.html">Download the
-      ADT Plugin zip file</a> (do not unpack it).</li>
-  <li>Follow steps 1 and 2 in the <a href="#InstallingADT">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>
-  <li>In Eclipse 3.5 only, enter a name for the local update site (e.g.,
-      "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,
-      starting from step 4.</li>
-</ol>
-
-<p>To update your plugin once you've installed using the zip file, you will have
-to follow these steps again instead of the default update instructions.</p>
-
-<h4>Other install errors</h4>
-
-<p>Note that there are features of ADT that require some optional 
-Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include these components. 
-For information about how to quickly add the necessary components to your 
-Eclipse installation, see the troubleshooting topic 
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT 
-Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-
diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd
index c2aa454..552b699 100644
--- a/docs/html/sdk/RELEASENOTES.jd
+++ b/docs/html/sdk/RELEASENOTES.jd
@@ -3,7 +3,50 @@
 
 <p>This document provides version-specific information about Android SDK
 releases. For the latest known issues, please ensure that you're viewing this
-page at <a href="http://developer.android.com/sdk/RELEASENOTES.html">http://developer.android.com/sdk/RELEASENOTES.html</a>.</p>
+page at <a
+href="http://developer.android.com/sdk/RELEASENOTES.html">http://developer.
+android.com/sdk/RELEASENOTES.html</a>.</p>
+
+<h2 id="multiversion_r1">Android SDK</h2>
+
+<p>The Android SDK has changed! If you've worked with the Android SDK before,
+you will notice several important differences:</p>
+
+<ul>
+<li style="margin-top:.5em">The SDK downloadable package includes <em>only</em>
+the latest version of the Android SDK Tools.</li>
+<li>Once you've installed the SDK, you now use the Android SDK and AVD Manager
+to download all of the SDK components that you need, such as Android platforms,
+SDK add-ons, tools, and documentation. </li>
+<li>The new approach is modular &mdash; you can install only the components you
+need and update any or all components without affecting your development
+environment.</li>
+<li>In short, once you've installed the new SDK, you will not need to download
+an SDK package again. Instead, you will use the Android SDK and AVD Manager to
+keep your development environment up-to-date. </li>
+</ul>
+
+<p>Note that if you are currently using the Android 1.6 SDK, you do not
+necessarily need to install the new SDK, since your existing SDK incudes the
+Android SDK and AVD Manager tool. To develop against Android 2.0, for example,
+you could just download the Android 2.0 platform into your existing SDK. </p>
+
+<p>Release notes for Android platforms that are downloadable into the SDK are
+now available from the "SDK" tab, under "Downloadable SDK Components."</p>
+
+<ul>
+<li>Release notes for the Android 2.0 platform are in the <a
+href="{@docRoot}sdk/android-2.0.html">Android 2.0, 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>
+</ul>
+
+<p>To get started with the SDK, review the Quick Start summary on the <a
+href="{@docRoot}sdk/index.html">Android SDK download page</a> or read <a
+href="{@docRoot}sdk/installing.html">Installing the SDK</a> for more
+information. </p>
+
 
 <h2 id="1.6_r1">Android 1.6 SDK, Release 1</h2>
 
diff --git a/docs/html/sdk/adding-components.jd b/docs/html/sdk/adding-components.jd
new file mode 100644
index 0000000..d4152e1
--- /dev/null
+++ b/docs/html/sdk/adding-components.jd
@@ -0,0 +1,138 @@
+page.title=Adding SDK Components
+@jd:body
+
+
+<div id="qv-wrapper">
+<div id="qv">
+<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>
+</ul>
+
+<h2>In this document</h2>
+<ol>
+  <li><a href="#InstallingComponents">Installing SDK Components</a>
+    <ol>
+      <li><a href="#AddingSites">Adding New Sites</a></li>
+    </ol>
+  </li>
+  <li><a href="#dependencies">Component Dependencies</a></li>
+</ol>
+</div>
+</div>
+
+<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>
+
+<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>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>
+
+
+<h2 id="InstallingComponents">Installing SDK Components</h2>
+
+<p>Use the Android SDK and AVD Manager to install new SDK components. 
+To 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>
+
+<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>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>
+</ol>
+
+<p>New platforms are automatically saved into the 
+<code><em>&lt;sdk>/</em>platforms/</code> directory of your SDK;
+new add-ons are saved in the <code><em>&lt;sdk>/</em>add-ons/</code>
+directory; and new documentation is saved in the existing
+<code><em>&lt;sdk>/</em>docs/</code> directory (old docs are replaced).</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>
+
+<p>By default, <strong>Available Components</strong> only shows 
+the default repository for platforms, the Google APIs
+Add-On, and other SDK components. You can add additional sites that host
+Android SDK add-ons, then download the SDK add-ons from them.</p>	
+
+<p>For example, a mobile carrier or device manufacturer may offer additional
+API libraries that are supported by their own Android-powered devices. In order
+to develop using their libraries, you must install their Android SDK add-on. </p>
+
+<p>If a carrier or device manufacturer has hosted an SDK add-on repository file
+on their web site, follow these steps to add their site to the SDK and AVD
+Manager:</p>
+
+<ol>
+  <li>Select <strong>Available Components</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>
+
+
+<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
new file mode 100644
index 0000000..18c144e
--- /dev/null
+++ b/docs/html/sdk/adt-notes.jd
@@ -0,0 +1,59 @@
+page.title=ADT Plugin Notes
+@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.4">ADT 0.9.4</h2>
+
+<p>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 3 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 (Memory Analyzer Tool http://eclipse.org/mat) 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/android-1.5.jd b/docs/html/sdk/android-1.5.jd
index 748f3ee..1e4c51b 100644
--- a/docs/html/sdk/android-1.5.jd
+++ b/docs/html/sdk/android-1.5.jd
@@ -1,118 +1,75 @@
-page.title=Android 1.5 Version Notes
-sdk.version=1.5_r1
-sys.date=April 2009
+page.title=Android 1.5, Release 3
+sdk.platform.version=1.5
+sdk.platform.apiLevel=3
+sdk.platform.majorMinor=major
+sdk.platform.releaseDate=April 2009
+sdk.platform.deployableDate=May 2009
+
 @jd:body
 
+<div id="qv-wrapper">
+<div id="qv">
+
+  <h2>In this document</h2>
+  <ol>
+	<li><a href="#features">Platform Highlights</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>
+	<li><a href="#notes">Other Notes</a></li>
+	<li><a href="#api">Framework API</a>
+        <ol>
+	<li><a href="#api-level">API level</a></li>
+	<li><a href="#api-changes">API changes summary</a></li>
+	<li><a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API differences report &raquo;</a> </li>
+        </ol></li>
+  </ol>
+
+  <h2>See Also</h2>
+  <ol>
+    <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
+  </ol>
+
+</div>
+</div>
+
 <p>
-<em>Date:</em> April 2009<br />
-<em>API Level:</em>&nbsp;<strong>3</strong></p>
+<em>Date:</em> {@sdkPlatformReleaseDate}<br />
+<em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
+
+<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
+deployable to Android-powered handsets starting in {@sdkPlatformDeployableDate}.
+The release includes new features for users and developers, as well as changes
+in the Android framework API. </p>
+
+<p>For developers, the Android {@sdkPlatformVersion} platform is available as a
+downloadable component for the Android SDK. The downloadable platform includes a
+fully compliant Android library and system image, as well as a set of emulator
+skins, sample applications, and more. The downloadable platform is fully
+compliant and includes no external libraries. </p>
+
+<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,
+see <a href="{@docRoot}sdk/adding-components.html">Adding SDK
+Components</a>.</p>
 
 
-<p>This document provides version notes for the Android 1.5 system image included in the SDK. </p>
+<h2 id="features">Platform Highlights</h2>
 
-<ul>
-<li><a href="#overview">Overview</a>
-<li><a href="#overview">External Libraries</a>
-<li><a href="#comp">Device Compatibility</a>
-<li><a href="#apps">Built-in Applications</a>
-<li><a href="#locs">UI Localizations</a>
-<li><a href="#features">New Features</a>
-<li><a href="#api-changes">API Changes</a>
-</ul>
+<p>For a list of new user features and platform highlights, see the <a
+href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights.html">Android 
+{@sdkPlatformVersion} Platform Highlights</a> document.</p>
 
-<h2 id="overview">Overview</h2>
-
-<p>The Android 1.5 system delivered in the SDK (as library and system image) is
-the development counterpart to the Android 1.5 production system image,
-deployable to Android-powered handsets starting in May 2009. The system is fully
-compliant and includes no external libraries. This is the first version of the 
-Android SDK that does not include the Maps external library.</p>
-
-<p>The Android 1.5 system delivers an updated version of the framework
-API. As with previous versions, the Android 1.5 API 
-is assigned an integer identifier &mdash; <strong>3</strong> &mdash; that is
-stored in the system itself. This identifier, called the "API Level", allows the
-system to correctly determine whether an application is compatible with
-the system, prior to installing the application.</p>
-
-<p>Applications can reference a specific API Level value in their
-manifest files, to indicate the minimum version of the Android system
-required to run the application. To reference a minimum API Level, applications 
-can add an <code>android:minSdkVersion</code> attribute in their manifest files.
-The value of the attribute is an integer corresponding to an API Level 
-identifier. Prior to installing an application, the system then checks the value of 
-<code>android:minSdkVersion</code> and allows the install only
-if the referenced integer is less than or equal to the API Level integer stored
-in the system itself. </p>
-
-<p>When you migrate your application to the new SDK, you will need to choose
-the platform version against which you will compile your application. In
-general, you should compile your application against the lowest possible
-version of the platform that your application can support. After you determine 
-the lowest version, you should ensure that your application's manifest file 
-defines the API Level of the lowest compatible platform version in the 
-<code>android:minSdkVersion</code> attribute.
-
-<p>After compiling your application, you should make sure to test it on the
-platform specified in the application's <code>android:minSdkVersion</code> attribute. To
-ensure forward-compatibility, you should also run the application on platforms
-using a higher API Level than that used by your application. To run your
-application against different platform versions in the emulator, you create an
-AVD for each platform version that you want to test. For more information about
-AVDs, see <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
-Devices</a>. If you are using a physical device for testing, ensure that you
-know the API Level of the Android platform it runs.</p>
-
-<p>If you build an application using the Android 1.5 library and your
-application makes use of any APIs introduced in API Level 3, you <strong><span
-style="color:red;">must</span></strong> set the
-<code>android:minSdkVersion</code> attribute in the application's manifest to
-"3". </p>
-
-<p>Specifically, you define the <code>android:minSdkVersion</code>
-attribute in a <code>&lt;uses-sdk&gt;</code> element as a child of
-<code>&lt;manifest&gt;</code> in the manifest file. When set, the
-attribute looks like this: </p>
-
-<pre>&lt;manifest&gt;
-  ...
-  &lt;uses-sdk android:minSdkVersion="3" /&gt;
-  ...
-&lt;/manifest&gt;</pre>
-
-<p>By setting <code>android:minSdkVersion</code> in this way, you ensure that
-users will only be able to install your application if their devices are running
-a compatible version of the Android platform. In turn, this ensures that your
-application will function properly on their devices. This is especially
-important if your application uses <a href="#apichange">APIs or system features
-introduced in Android 1.5</a>. </p>
-
-<p>If your application uses APIs introduced in Android 1.5 but does not
-declare <code>&lt;uses-sdk android:minSdkVersion="3" /&gt;</code>, then it will
-run properly on Android 1.5 devices but <em>not</em> on Android 1.0
-devices. In the latter case, the application will crash at runtime when
-it tries to use the Android 1.5 APIs.</p>
-
-<p>Conversely, if your application does not use any new APIs introduced in 
-Android 1.5, the application will in most cases function normally on devices 
-running a later version of the  platform.  However, if you have published 
-the application, you are strongly encouraged to install and test your 
-application on the Android 1.5 system image included in the SDK. This will 
-ensure a smooth transition for users, as they upgrade their devices to 
-the new version of the Android platform. </p>
-
-<p>Finally, if your application does not use any new APIs introduced since 
-Android 1.1, you can indicate general Android 1.1 compatibility by 
-setting the attribute to "2". If your application does not use any
-new APIs introduced since Android 1.0, you can remove the attribute or 
-set it to "1". However,
-before publishing your application, you must make sure to compile your
-application against the Android library that corresponds to the application's
-<code>android:minSdkVeresion</code> value.</p>
 
 <h2 id="apps">Built-in Applications</h2>
 
-<p>The system image includes these built-in applications:</p>
+<p>The system image included in the downloadable platform provides these
+built-in applications:</p>
+
+<table style="border:0;padding-bottom:0;margin-bottom:0;">
+<tr>
+<td style="border:0;padding-bottom:0;margin-bottom:0;">
 	<ul>
 	<li>Alarm Clock</li>
 	<li>Browser</li>
@@ -122,6 +79,10 @@
 	<li>Contacts</li>
 	<li>Custom Locale (developer app)</li>
 	<li>Dev Tools (developer app)</li>
+	</ul>
+</td>
+<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
+	<ul>
 	<li>Dialer</li>
 	<li>Email</li>
 	<li>Gallery</li>
@@ -131,18 +92,21 @@
 	<li>Settings</li>
 	<li>Spare Parts (developer app)</li>
 	</ul>
+</td>
+</tr>
+</table>
 
-<h2 id="locs">Locales</h2>
+<h2 id="locs" style="margin-top:.75em;">Locales</h2>
 
-<p>The system image provides a variety of built-in locales. In some cases, 
-region-specific strings are available for the locales. In other cases, 
-a default version of the language is used. The languages that will be 
-available in the Android 1.5 system image are listed below (with 
-<em>language</em>_<em>country/region</em> locale descriptor).</p>
+<p>The system image included in the downloadable platform provides a variety of
+built-in locales. In some cases, region-specific strings are available for the
+locales. In other cases, a default version of the language is used. The
+languages that will be available in the Android {@sdkPlatformVersion} system image are listed
+below (with <em>language</em>_<em>country/region</em> locale descriptor).</p>
 
-<table style="border:0;">
+<table style="border:0;padding-bottom:0;margin-bottom:0;">
 <tr>
-<td style="border:0">
+<td style="border:0;padding-bottom:0;margin-bottom:0;">
 <ul>
 <li>Chinese, PRC (zh_CN)</li>
 <li>Chinese, Taiwan (zh_TW)</li>
@@ -151,7 +115,7 @@
 <li>Dutch, Belgium (nl_BE)</li>
 <li>English, US (en_US)</li>
 <li>English, Britain (en_GB)</li>
-<li>English, Canada(en_CA)</li>
+<li>English, Canada (en_CA)</li>
 <li>English, Australia (en_AU)</li>
 <li>English, New Zealand (en_NZ)</li>
 <li>English, Singapore(en_SG)</li>
@@ -159,11 +123,11 @@
 <li>French, Belgium (fr_BE)</li>
 </ul>
 </td>
-<td style="border:0;padding-left:5em;">
+<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
 <li>French, Canada (fr_CA)</li>
 <li>French, Switzerland (fr_CH)</li>
 <li>German, Germany (de_DE)</li>
-<li>German, Austria(de_AT)</li>
+<li>German, Austria (de_AT)</li>
 <li>German, Switzerland (de_CH)</li>
 <li>German, Liechtenstein (de_LI)</li>
 <li>Italian, Italy (it_IT)</li>
@@ -177,29 +141,65 @@
 </tr>
 </table>
 
-<p>Localized UI strings match the locales that are displayable in 
-the emulator, accessible through the device Settings application.</p>
+<p>Localized UI strings match the locales that are accessible 
+through Settings.</p>
 
-<h2 id="features">New Features</h2>
+<h2 id="api-changes">Emulator Skins</h2>
 
-<p>For a list of new system features, see the <a
-href="{@docRoot}sdk/android-1.5-highlights.html">Android 1.5 Platform
-Highlights</a> document.</p>
-
-<h2 id="api-changes">API Changes</h2>
-
-<h3>Overview</strong></h3>
+<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>UI framework</li>
+  <li>
+    QVGA-P (240x320, low density, small screen)
+  </li>
+  <li>
+    QVGA-L (320x480, low density, small screen)
+  </li>
+  <li>
+    HVGA (320x480, medium density, normal screen)
+  </li>
+  <li>
+    HVGA-P (320x480, medium density, normal screen)
+  </li>
+  <li>
+    HVGA-L (320x480, medium density, normal screen)
+  </li>
+</ul>
+
+<p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p>
+
+
+<h2 id="api">Framework API</h2>
+
+<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p>
+
+
+<h3 id="api-level">API level</h3>
+
+<p>The Android {@sdkPlatformVersion} platform delivers an updated version of the framework
+API. As with previous versions, the Android {@sdkPlatformVersion} API 
+is assigned an integer identifier &mdash; <strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
+stored in the system itself. This identifier, called the "API Level", allows the
+system to correctly determine whether an application is compatible with
+the system, prior to installing the application. </p>
+
+<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 
+set the proper value, "{@sdkPlatformApiLevel}", in the <code>&lt;uses-sdk&gt;</code> attributes in your 
+application's manifest. </p>
+
+<p>For more information about how to use API Level, see the <a
+href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
+
+<h3 id="api-changes">API changes summary</h3>
+
+<h4>UI framework</h4>
   <ul>
     <li>Framework for easier background/UI thread interaction</li>
     <li>New {@link android.widget.SlidingDrawer SlidingDrawer} widget</li>
     <li>New {@link android.widget.HorizontalScrollView HorizontalScrollview} widget</li>
   </ul>
-</li>
 
-<li>AppWidget framework
+<h4>AppWidget framework</h4>
   <ul>
     <li>APIs for creating secure home screen {@link android.appwidget
 AppWidgets}. For information about how to use AppWidgets, see the Developer's
@@ -211,9 +211,8 @@
     <li>APIs for populating {@link android.provider.LiveFolders Live Folders}
         with custom content.</li>
   </ul>
-</li>
 
-<li>Media framework</li>
+<h4>Media framework</h4>
   <ul>
     <li>Raw audio recording and playback APIs</li>
     <li>Interactive MIDI playback engine</li>
@@ -221,37 +220,33 @@
     <li>Video and photo sharing Intents</li>
     <li>Media search Intent</li>
   </ul>
-</li>
 
-<li>Input Method framework 
+<h4>Input Method framework </h4>
    <ul>
     <li>{@link android.inputmethodservice.InputMethodService Input Method
         Service} framework</li>
     <li>Text-prediction engine</li>
     <li>Ability to provide downloadable IMEs to users</li>
   </ul>
-</li>
 
-<li>Application-defined hardware requirements
+<h4>Application-defined hardware requirements</h4>
    <p>Applications can now use a new element in their manifest files, <a
-href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-
-configuration&gt;</a> to indicate to the Android system what hardware features
+href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code>&lt;uses-configuration&gt;</code></a>
+ to indicate to the Android system what hardware features
 they require in order to function properly. For example, an application might
 use the element to specify that it requires a physical keyboard or a particular
 navigation device, such as a trackball. Prior to installing the application, the
 Android system checks the attributes defined for the
 <code>&lt;uses-configuration&gt;</code> element and allows the installation to
 continue only if the required hardware is present.</p>
-</li>
 
-<li>Speech recognition framework
+<h4>Speech recognition framework</h4>
     <ul>
     <li>Support for using speech recognition libraries via Intent. See {@link
 android.speech.RecognizerIntent RecognizerIntent}.</li>
   </ul>
-</li>
 
-<li>Miscellaneous API additions
+<h4>Miscellaneous API additions</h4>
   <ul>
     <li>LocationManager - Applications can get location change updates via
         Intent</li>
@@ -263,17 +258,10 @@
     <li>Broadcast Intent for app update install succeeded - for smoother app
         upgrade experience</li>
   </ul>
-</li>
-
-</ul>
-
-<h3 id="api-diff">API Change Details</h3>
-
-<p>For a detailed view of API changes in this platform (API Level 3), see the <a
-href="{@docRoot}sdk/api_diff/3/changes.html">API Differences Report</a>.</p>
 
 
+<h3 id="api-diff">API differences report</h3>
 
-
-
-
+<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to 
+the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 
+Differences Report</a>.</p>
diff --git a/docs/html/sdk/android-1.6.jd b/docs/html/sdk/android-1.6.jd
index 5dd2d95..0f8a4b6 100644
--- a/docs/html/sdk/android-1.6.jd
+++ b/docs/html/sdk/android-1.6.jd
@@ -1,48 +1,75 @@
-page.title=Android 1.6 Version Notes
+page.title=Android 1.6, Release 1
+sdk.platform.version=1.6
+sdk.platform.apiLevel=4
+sdk.platform.majorMinor=minor
+sdk.platform.releaseDate=September 2009
+sdk.platform.deployableDate=October 2009
 
 @jd:body
 
+<div id="qv-wrapper">
+<div id="qv">
+
+  <h2>In this document</h2>
+  <ol>
+	<li><a href="#features">Platform Highlights</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>
+	<li><a href="#notes">Other Notes</a></li>
+	<li><a href="#api">Framework API</a>
+        <ol>
+	<li><a href="#api-level">API level</a></li>
+	<li><a href="#api-changes">API changes summary</a></li>
+	<li><a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API differences report &raquo;</a> </li>
+        </ol></li>
+  </ol>
+
+  <h2>See Also</h2>
+  <ol>
+    <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
+  </ol>
+
+</div>
+</div>
+
 <p>
-<em>Date:</em> September 2009<br />
-<em>API Level:</em>&nbsp;<strong>4</strong></p>
+<em>Date:</em> {@sdkPlatformReleaseDate}<br />
+<em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
+
+<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
+deployable to Android-powered handsets starting in {@sdkPlatformDeployableDate}.
+The release includes new features for users and developers, as well as changes
+in the Android framework API. </p>
+
+<p>For developers, the Android {@sdkPlatformVersion} platform is available as a
+downloadable component for the Android SDK. The downloadable platform includes a
+fully compliant Android library and system image, as well as a set of emulator
+skins, sample applications, and more. The downloadable platform is fully
+compliant and includes no external libraries. </p>
+
+<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,
+see <a href="{@docRoot}sdk/adding-components.html">Adding SDK
+Components</a>.</p>
 
 
-<p>This document provides version notes for the Android 1.6 system image included in the SDK. </p>
-
-<ul>
-<li><a href="#overview">Overview</a>
-<li><a href="#features">Release Highlights</a>
-<li><a href="#apps">Built-in Applications</a>
-<li><a href="#locs">Locales</a>
-<li><a href="#api-changes">API Changes</a>
-</ul>
-
-<h2 id="overview">Overview</h2>
-
-<p>The Android 1.6 system delivered in the SDK (as library and system image) is
-the development counterpart to the Android 1.6 production system image, which is
-deployable to Android-powered handsets starting October 2009. The system is
-fully compliant and includes no external libraries. </p>
-
-<p>The Android 1.6 system delivers an updated version of the framework
-API. As with previous versions, the Android 1.6 API 
-is assigned an integer identifier &mdash; <strong>4</strong> &mdash; that is
-stored in the system itself. This identifier, called the "API Level", allows the
-system to correctly determine whether an application is compatible with
-the system, prior to installing the application. </p>
-
-<p>For more information about how to use API Level, see the <a
-href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
-
-<h2 id="features">Highlights</h2>
+<h2 id="features">Platform Highlights</h2>
 
 <p>For a list of new user features and platform highlights, see the <a
-href="http://developer.android.com/sdk/android-1.6-highlights.html">Android 1.6 Platform
-Highlights</a> document.</p>
+href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights.html">Android 
+{@sdkPlatformVersion} Platform Highlights</a> document.</p>
+
 
 <h2 id="apps">Built-in Applications</h2>
 
-<p>The system image includes these built-in applications:</p>
+<p>The system image included in the downloadable platform provides these
+built-in applications:</p>
+
+<table style="border:0;padding-bottom:0;margin-bottom:0;">
+<tr>
+<td style="border:0;padding-bottom:0;margin-bottom:0;">
 	<ul>
 	<li>Alarm Clock</li>
 	<li>Browser</li>
@@ -53,6 +80,10 @@
 	<li>Custom Locale (developer app)</li>
 	<li>Dev Tools (developer app)</li>
 	<li>Dialer</li>
+	</ul>
+</td>
+<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
+	<ul>
 	<li>Email</li>
 	<li>Gallery</li>
 	<li>Gestures Builder</li>
@@ -62,79 +93,51 @@
 	<li>Settings</li>
 	<li>Spare Parts (developer app)</li>
 	</ul>
+</td>
+</tr>
+</table>
 
-<h2 id="locs">Locales</h2>
+<h2 id="locs" style="margin-top:.75em;">Locales</h2>
 
-<p>The system image provides a variety of built-in locales. In some cases, 
-region-specific strings are available for the locales. In other cases, 
-a default version of the language is used. The languages that will be 
-available in the Android 1.6 system image are listed below (with 
-<em>language</em>_<em>country/region</em> locale descriptor).</p>
+<p>The system image included in the downloadable platform provides a variety of
+built-in locales. In some cases, region-specific strings are available for the
+locales. In other cases, a default version of the language is used. The
+languages that will be available in the Android {@sdkPlatformVersion} system image are listed
+below (with <em>language</em>_<em>country/region</em> locale descriptor).</p>
 
-<table style="border:0;">
+<table style="border:0;margin-bottom:0;padding-bottom:0;">
 <tr>
-<td style="border:0">
-<ul style="margin-bottom:0;">
-<li>Arabic, Egypt (ar_EG)</li>
-<li>Arabic, Israel (ar_IL)</li>
-<li>Bulgarian, Bulgaria (bg_BG)</li>
+<td style="border:0;padding-bottom:0;margin-bottom:0;">
+<ul>
 <li>Chinese, PRC (zh_CN)</li>
 <li>Chinese, Taiwan (zh_TW)</li>
-<li>Croatian, Croatia (hr_HR)</li>
-<li>Czech, Czech Republic (cs_CZ)</li>
-<li>Danish, Denmark (da_DK)</li>
+<li>Czech (cs_CZ)</li>
 <li>Dutch, Netherlands (nl_NL)</li>
 <li>Dutch, Belgium (nl_BE)</li>
 <li>English, US (en_US)</li>
 <li>English, Britain (en_GB)</li>
 <li>English, Canada (en_CA)</li>
 <li>English, Australia (en_AU)</li>
-<li>English, India (en_IN)</li>
-<li>English, Ireland (en_IE)</li>
 <li>English, New Zealand (en_NZ)</li>
-<li>English, Singapore (en_SG)</li>
-<li>English, South Africa (en_ZA)</li>
-<li>Finnish, Finland (fi_FI)</li>
+<li>English, Singapore(en_SG)</li>
 <li>French, France (fr_FR)</li>
 <li>French, Belgium (fr_BE)</li>
+</ul>
+</td>
+<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
 <li>French, Canada (fr_CA)</li>
 <li>French, Switzerland (fr_CH)</li>
 <li>German, Germany (de_DE)</li>
 <li>German, Austria (de_AT)</li>
 <li>German, Switzerland (de_CH)</li>
 <li>German, Liechtenstein (de_LI)</li>
-</ul>
-</td>
-<td style="border:0;padding-left:5em;">
-<ul style="margin-bottom:0;">
-<li>Greek, Greece (el_GR)</li>
-<li>Hindi, India (hi_IN)</li>
-<li>Hungarian, Hungary (hu_HU)</li>
-<li>Indonesian, Indonesia (id_ID)</li>
 <li>Italian, Italy (it_IT)</li>
 <li>Italian, Switzerland (it_CH)</li>
-<li>Japanese, Japan (ja_JP)</li>
-<li>Korean, Korea (ko_KR)</li>
-<li>Latvian, Latvia (lv_LV)</li>
-<li>Lithuanian, Lithuania (lt_LT)</li>
-<li>Norwegian Bokmål, Norway (nb_NO)</li>
-<li>Polish, Poland (pl_PL)</li>
-<li>Portuguese, Brazil (pt_BR)</li>
-<li>Portuguese, Portugal (pt_PT)</li>
-<li>Romanian, Romania (ro_RO)</li>
-<li>Russian, Russia (ru_RU)</li>
-<li>Serbian, Serbia (sr_RS)</li>
-<li>Slovak, Slovakia (sk_SK)</li>
-<li>Slovenian, Slovenia (sl_SI)</li>
-<li>Spanish, Spain (es_ES)</li>
-<li>Spanish, US (es_US)</li>
-<li>Swedish, Sweden (sv_SE)</li>
-<li>Thai, Thailand (th_TH)</li>
-<li>Tagalog, Philippines (tl_PH)</li>
-<li>Turkish, Turkey (tr_TR)</li>
-<li>Ukranian, Ukrania (uk_UA)</li>
-<li>Vietnamese, Vietnam (vi_VN)</li>
-</ul>
+<li>Japanese (ja_JP)</li>
+<li>Korean (ko_KR)</li>
+<li>Polish (pl_PL)</li>
+<li>Russian (ru_RU)</li>
+<li>Spanish (es_ES)</li>
 </td>
 </tr>
 </table>
@@ -142,7 +145,50 @@
 <p>Localized UI strings match the locales that are accessible 
 through Settings.</p>
 
-<h2 id="api-changes">API Changes</h2>
+<h2 id="api-changes">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>
+
+<ul>
+  <li>
+    QVGA (240x320, low density, small screen)
+  </li>
+  <li>
+    HVGA (320x480, medium density, normal screen)
+  </li>
+  <li>
+    WVGA800 (480x800, high density, normal screen)
+  </li>
+  <li>
+    WVGA854 (480x854 high density, normal screen)
+  </li>
+</ul>
+
+<p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p>
+
+
+<h2 id="api">Framework API</h2>
+
+<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p>
+
+
+<h3 id="api-level">API level</h3>
+
+<p>The Android {@sdkPlatformVersion} platform delivers an updated version of the framework
+API. As with previous versions, the Android {@sdkPlatformVersion} API 
+is assigned an integer identifier &mdash; <strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
+stored in the system itself. This identifier, called the "API Level", allows the
+system to correctly determine whether an application is compatible with
+the system, prior to installing the application. </p>
+
+<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 
+set the proper value, "{@sdkPlatformApiLevel}", in the <code>&lt;uses-sdk&gt;</code> attributes in your 
+application's manifest. </p>
+
+<p>For more information about how to use API Level, see the <a
+href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
+
+<h3 id="api-changes">API changes summary</h3>
 
 <h4 id="UIFramework">UI framework</h4>
     <ul>
@@ -318,7 +364,8 @@
     </ul>
 
 
-<h3 id="api-diff">API Change Details</h3>
+<h3 id="api-diff">API differences report</h3>
 
-<p>For a detailed view of API changes in Android 1.6 (API Level 4), see the <a
-href="{@docRoot}sdk/api_diff/4/changes.html">API Differences Report</a>.</p>
+<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to 
+the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 
+Differences Report</a>.</p>
diff --git a/docs/html/sdk/android-2.0.jd b/docs/html/sdk/android-2.0.jd
new file mode 100644
index 0000000..5660844
--- /dev/null
+++ b/docs/html/sdk/android-2.0.jd
@@ -0,0 +1,285 @@
+page.title=Android 2.0, Release 1
+sdk.platform.version=2.0
+sdk.platform.apiLevel=5
+sdk.platform.majorMinor=major
+sdk.platform.releaseDate=October 2009
+sdk.platform.deployableDate=November 2009
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+  <h2>In this document</h2>
+  <ol>
+	<li><a href="#features">Platform Highlights</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>
+	<li><a href="#dev-features">Developer Features</a></li>
+	<li><a href="#api">Framework API</a>
+        <ol>
+	<li><a href="#api-level">API level</a></li>
+	<li><a href="#api-changes">API changes summary</a></li>
+	<li><a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API differences report &raquo;</a> </li>
+        </ol></li>
+  </ol>
+
+  <h2>See Also</h2>
+  <ol>
+    <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
+  </ol>
+
+</div>
+</div>
+
+<p>
+<em>Date:</em> {@sdkPlatformReleaseDate}<br />
+<em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
+
+<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
+deployable to Android-powered handsets starting in {@sdkPlatformDeployableDate}.
+The release includes new features for users and developers, as well as changes
+in the Android framework API. </p>
+
+<p>For developers, the Android {@sdkPlatformVersion} platform is available as a
+downloadable component for the Android SDK. The downloadable platform includes a
+fully compliant Android library and system image, as well as a set of emulator
+skins, sample applications, and more. The downloadable platform is fully
+compliant and includes no external libraries. </p>
+
+<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,
+see <a href="{@docRoot}sdk/adding-components.html">Adding SDK
+Components</a>.</p>
+
+
+<h2 id="features">Platform Highlights</h2>
+
+<p>For a list of new user features and platform highlights, see the <a
+href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights.html">Android 
+{@sdkPlatformVersion} Platform Highlights</a> document.</p>
+
+<h2 id="apps">Built-in Applications</h2>
+
+<p>The system image included in the downloadable platform provides these
+built-in applications:</p>
+
+<table style="border:0;padding-bottom:0;margin-bottom:0;">
+<tr>
+<td style="border:0;padding-bottom:0;margin-bottom:0;">
+	<ul>
+	<li>Alarm Clock</li>
+	<li>Browser</li>
+	<li>Calculator</li>
+	<li>Camcorder</li>
+	<li>Camera</li>
+	<li>Contacts</li>
+	<li>Custom Locale (developer app)</li>
+	<li>Dev Tools (developer app)</li>
+	<li>Dialer</li>
+	</ul>
+</td>
+<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
+	<ul>
+	<li>Email</li>
+	<li>Gallery</li>
+	<li>Gestures Builder</li>
+	<li>IME for Japanese text input</li>
+	<li>Messaging</li>
+	<li>Music</li>
+	<li>Settings</li>
+	<li>Spare Parts (developer app)</li>
+	</ul>
+</td>
+</tr>
+</table>
+
+<h2 id="locs" style="margin-top:.75em;">Locales</h2>
+
+<p>The system image included in the downloadable platform provides a variety of
+built-in locales. In some cases, region-specific strings are available for the
+locales. In other cases, a default version of the language is used. The
+languages that will be available in the Android 1.6 system image are listed
+below (with <em>language</em>_<em>country/region</em> locale descriptor).</p>
+
+<table style="border:0;padding-bottom:0;margin-bottom:0;">
+<tr>
+<td style="border:0;padding-bottom:0;margin-bottom:0;">
+<ul>
+<li>Chinese, PRC (zh_CN)</li>
+<li>Chinese, Taiwan (zh_TW)</li>
+<li>Czech (cs_CZ)</li>
+<li>Dutch, Netherlands (nl_NL)</li>
+<li>Dutch, Belgium (nl_BE)</li>
+<li>English, US (en_US)</li>
+<li>English, Britain (en_GB)</li>
+<li>English, Canada (en_CA)</li>
+<li>English, Australia (en_AU)</li>
+<li>English, New Zealand (en_NZ)</li>
+<li>English, Singapore(en_SG)</li>
+<li>French, France (fr_FR)</li>
+<li>French, Belgium (fr_BE)</li>
+</ul>
+</td>
+<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
+<li>French, Canada (fr_CA)</li>
+<li>French, Switzerland (fr_CH)</li>
+<li>German, Germany (de_DE)</li>
+<li>German, Austria (de_AT)</li>
+<li>German, Switzerland (de_CH)</li>
+<li>German, Liechtenstein (de_LI)</li>
+<li>Italian, Italy (it_IT)</li>
+<li>Italian, Switzerland (it_CH)</li>
+<li>Japanese (ja_JP)</li>
+<li>Korean (ko_KR)</li>
+<li>Polish (pl_PL)</li>
+<li>Russian (ru_RU)</li>
+<li>Spanish (es_ES)</li>
+</td>
+</tr>
+</table>
+
+<p>Localized UI strings match the locales that are accessible 
+through Settings.</p>
+
+<h2 id="api-changes">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>
+
+<ul>
+  <li>
+    QVGA (240x320, low density, small screen)
+  </li>
+  <li>
+    WQVGA (240x400, low density, normal screen)
+  </li>
+  <li>
+    FWQVGA (240x432, low density, normal screen)
+  </li>
+  <li>
+    HVGA (320x480, medium density, normal screen)
+  </li>
+  <li>
+    WVGA800 (480x800, high density, normal screen)
+  </li>
+  <li>
+    WVGA854 (480x854 high density, normal screen)
+  </li>
+</ul>
+
+<p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p>
+
+<h2 id="dev-features">Developer Features</h2>
+
+<p>The sections below provide information about new developer features offered by the downloadable Android 2.0 platform component.</p>
+
+<h3 id="ant">Ant Support</h3>
+
+<ul>
+<li>Debug- and release-mode application signing. Release-mode signing includes integrated support for <code>zipalign</code> optimization. For more information, see <a href="{@docRoot}guide/publishing/app-signing.html#releasecompile">Signing Your Applications</a>.</li>
+
+<li>Adds new Ant build system with support for Emma instrumentation projects (code coverage).</li>
+</ul>
+
+<h2 id="api">Framework API</h2>
+
+<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p>
+
+
+<h3 id="api-level">API level</h3>
+
+<p>The Android {@sdkPlatformVersion} platform delivers an updated version of the framework
+API. As with previous versions, the Android {@sdkPlatformVersion} API 
+is assigned an integer identifier &mdash; <strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
+stored in the system itself. This identifier, called the "API Level", allows the
+system to correctly determine whether an application is compatible with
+the system, prior to installing the application. </p>
+
+<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 
+set the proper value, "{@sdkPlatformApiLevel}", in the <code>&lt;uses-sdk&gt;</code> attributes in your 
+application's manifest. </p>
+
+<p>For more information about how to use API Level, see the <a
+href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
+
+<h3 id="api-changes">API changes summary</h3>
+
+<h4>Bluetooth</h4>
+<ul>
+<li>Turn on/off Bluetooth</li>
+<li>Device and service discovery</li>
+<li>Connect to a remote device using RFCOMM and send/receive data</li>
+<li>Advertise RFCOMM services and listen for incoming RFCOMM connection</li>
+</ul>
+
+<h4>Sync adapters </h4>
+<ul>
+<li>New APIs for sync adapters to connect to any backend</li>
+</ul>
+
+<h4>Account Manager</h4>
+<ul>
+<li>Centralized account manager API to securely store and access auth tokens/passwords </li>
+</ul>
+
+<h4>Contacts</h4>
+<ul>
+<li>New contacts APIs that allow for data from multiple accounts</li>
+<li>New Quick Contact framework APIs enable developers to create contact badges in their app. Clicking on the badge opens a window with a list of ways to contact the person with one click.</li>
+</ul>
+
+<h4>WebView</h4>
+<ul>
+<li>HTML5 support:
+  <ul>
+  <li>Database API support, for client-side databases using SQL.</li>
+  <li>Application cache support, for offline applications.</li>
+  <li>Geolocation API support, to provide location information about the device.</li>
+  <li>&lt;video&gt; tag support in Fullscreen mode.</li>
+  </ul>
+</li>
+<li>Deprecated Gears; HTML5 database APIs now supported instead.</li>
+<li>Deprecated classes: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.</li>
+<li>DPI support for WebView
+  <ul>
+  <li>In viewport meta tag, target-densityDpi can be specified to control the default zoom.</li>
+  <li>&lt;meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,target-densityDpi=device-dpi"/&gt; will ensure the page to be loaded with 100% on any dpi devices.</li>
+  </ul>
+</li>
+</ul>
+
+<h4>Camera</h4>
+<ul>
+<li>New parameters for color effect, scene mode, flash mode, focus mode, white balance, rotation, and other settings.</li>
+<li>New ZoomCallback interface to perform actions when the zoom level has changed.</li>
+</ul>
+
+<h4>Media</h4>
+<ul>
+<li>MediaScanner now generates thumbnails for all images when they are inserted into MediaStore.</li>
+<li>New Thumbnail API for retrieving image and video thumbnails on demand.</li>
+</ul>
+
+<h4>Other Framework</h4>
+<ul>
+<li>New system themes in android.R.style to easily display activities on top of the current system wallpaper or keep the previous activity visible in the background. </li>
+<li>New WallpaperManager API replaces and extends the wallpaper APIs that were previously in Context, to allow applications to request and set the system wallpaper.</li>
+<li>New Service APIs to help applications correctly handle Service life-cycle, in particular low memory situations where a Service may be killed while it is running.
+  <ul>
+  <li>Service.setForeground() has been deprecated and now effectively performs no operation. This is replaced with a new API, startForeground(), that helps (and requires) associating an ongoing notification with the foreground state.</li>
+  </ul>
+</li>
+<li>MotionEvent can now report simultaneous-touch information for devices that support it. Up to three pointers can be tracked simultaneously. </li>
+<li>KeyEvent has new key dispatching APIs, to help implement action-on-up and long press behavior, as well a new mechanism to cancel key presses (for virtual keys).</li>
+<li>WindowManager.LayoutParams has new constants that allow a window to wake up the screen when it is displayed and show the window even if the screen is locked. This allows applications to more cleanly implement things like alarm clocks that should wake the device.</li>
+<li>New Intent APIs that broadcast the docking state of the device and allow applications to launch special activities when the device is placed in a desktop or car dock.</li>
+</ul>
+
+<h3 id="api-diff">API differences report</h3>
+
+<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to 
+the previous version, see the <a
+href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API Differences Report</a>.</p>
+
diff --git a/docs/html/sdk/eclipse-adt.jd b/docs/html/sdk/eclipse-adt.jd
new file mode 100644
index 0000000..ba095e0
--- /dev/null
+++ b/docs/html/sdk/eclipse-adt.jd
@@ -0,0 +1,316 @@
+page.title=Installing and Updating the ADT Plugin
+sdk.preview=0
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+  <h2>In this document</h2>
+  <ol>
+    <li><a href="#preparing">Prepare for Installation</a></li>
+    <li><a href="#installing">Installing the ADT Plugin</a>
+      <ol>
+        <li><a href="#troubleshooting">Troubleshooting</a></li>
+      </ol>
+    </li>
+    <li><a href="#updating">Updating the ADT Plugin</a></li>
+    <li><a href="#uninstalling">Uninstalling the ADT Plugin</a></li>
+  </ol>
+
+</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. 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>In general, using Eclipse with ADT is a highly recommended approach to
+Android development and is the fastest way to get started.
+
+<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 nstructions 
+for both methods.</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>
+
+<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>
+
+
+<h2 id="installing">Installing the ADT Plugin</h2>
+
+<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>
+
+<table style="font-size:100%">
+<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
+<tr>
+<td width="45%">
+<!-- 3.4 steps -->
+<ol>
+    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>. 
+        In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
+    <li>Click <strong>Add Site...</strong> </li>
+    <li>In the Add Site dialog that appears, enter this URL in the "Location" field:
+      <pre style="margin-left:0">https://dl-ssl.google.com/android/eclipse/</pre>
+        <p>Note: If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
+        instead of "https" (https is preferred for security reasons).</p>   
+      <p>Click <strong>OK</strong>.</p></li>
+    <li>Back in the Available Software view, you should see the plugin listed by the URL,
+    with "Developer Tools" nested within it. Select the checkbox next to 
+      Developer Tools and click <strong>Install...</strong></li>
+    <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
+    should both be checked. Click <strong>Next</strong>. </li>
+    <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
+    <li>Restart Eclipse. </li>
+</ol>
+
+</td>
+<td>
+<!-- 3.5 steps -->
+<ol>
+    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Install
+        New Softare</strong>. </li>
+    <li>In the Available Software dialog, click <strong>Add...</strong>.</li>
+    <li>In the Add Site dialog that appears, enter a name for the remote site
+        (for example, "Android Plugin") in the "Name" field. 
+        <p>In the "Location" field, enter this URL:</p>
+        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
+        <p>Note: If you have trouble aqcuiring the plugin, you can try
+           using "http" in the URL, instead of "https" (https is preferred for 
+           security reasons).</p>
+        <p>Click <strong>OK</strong>.</p>
+    </li>
+    <li>Back in the Available Software view, you should now see "Developer
+        Tools" added to the list. Select the checkbox next to Developer Tools, 
+        which will automatically select the nested tools Android DDMS and Android 
+        Development Tools. 
+        Click <strong>Next</strong>. </li>
+    <li>In the resulting Install Details dialog, the Android DDMS and Android 
+        Development Tools features are listed. Click <strong>Next</strong> to 
+        read and accept the license agreement and install any dependencies, 
+        then click <strong>Finish</strong>. </li>
+    <li>Restart Eclipse. </li>
+	
+</ol>
+</td>
+</tr>
+</table>
+
+<p>Now modify your Eclipse preferences 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>
+    <li>Select <strong>Android</strong> from the left panel. </li>
+    <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and 
+        locate your downloaded SDK directory. </li>
+    <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>
+
+
+<h3 id="troubleshooting">Troubleshooting ADT Installation</h3>
+
+<p> If you are having trouble downloading the ADT plugin after following the
+steps above, here are some suggestions: </p>
+
+<ul>
+  <li>If Eclipse can not find the remote update site containing the ADT plugin,
+try changing the remote site URL to use http, rather than https. That is, set
+the Location for the remote site to:
+<pre>http://dl-ssl.google.com/android/eclipse/</pre></li> 
+<li>If you are behind a firewall (such as a corporate firewall), make sure that
+you have properly configured your proxy settings in Eclipse. In Eclipse 3.3/3.4,
+you can configure proxy information from the main Eclipse menu in
+<strong>Window</strong> (on Mac OS X, <strong>Eclipse</strong>) &gt;
+<strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network
+Connections</strong>.</li>
+</ul>
+
+<p> If you are still unable to use Eclipse to download the ADT plugin as a
+remote update site, you can download the ADT zip file to your local machine and
+manually install it:</p>
+
+<ol>
+  <li>Download the current ADT Plugin zip file from the table below (do not unpack it).
+
+  <table class="download">
+    <tr>
+      <th>Name</th>
+      <th>Package</th>
+      <th>Size</th>
+      <th>MD5 Checksum</th>
+  </tr>
+  <tr>
+    <td>ADT {@adtZipVersion}</td>
+    <td>
+      <a href="http://dl.google.com/android/{@adtZipDownload}">{@adtZipDownload}</a>
+    </td>
+    <td>{@adtZipBytes} bytes</td>
+    <td>{@adtZipChecksum}</td>
+  </tr>
+</table>
+</li>
+
+</li>
+  <li>Follow steps 1 and 2 in the <a href="#InstallingADT">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>
+  <li>In Eclipse 3.5 only, enter a name for the local update site (e.g.,
+      "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,
+      starting from step 4.</li>
+</ol>
+
+<p>To update your plugin once you've installed using the zip file, you will have
+to follow these steps again instead of the default update instructions.</p>
+
+<h4>Other install errors</h4>
+
+<p>Note that there are features of ADT that require some optional 
+Eclipse components (for example, WST). If you encounter an error when 
+installing ADT, your Eclipse installion might not include these components. 
+For information about how to quickly add the necessary components to your 
+Eclipse installation, see the troubleshooting topic 
+<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT 
+Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
+
+<h4>For Linux users</h4>
+<p>If you encounter this error when installing the ADT Plugin for Eclipse: 
+<pre>
+An error occurred during provisioning.
+Cannot connect to keystore.
+JKS</pre>
+<p>
+...then your development machine lacks a suitable Java VM. Installing Sun
+Java 6 will resolve this issue and you can then reinstall the ADT
+Plugin.</p>
+
+
+<h2 id="updating">Updating Your Eclipse 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>
+
+<table style="font-size:100%">
+<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
+<tr>
+<td width="50%">
+<!-- 3.4 steps -->
+<ol>
+    <li>Select <strong>Help</strong> &gt; <strong>Software Updates</strong>.</li>
+    <li>Select the <strong>Available Software</strong> tab.</li>
+    <li>Select the checkboxes next to Android DDMS and Android Developer Tools, 
+      then click  <strong>Update</strong>.</li>
+    <li>In the resulting Available Updates dialog, ensure that both Android DDMS 
+      and Android Development Tools are selected, then click 
+      <strong>Next</strong>.</li>
+    <li>Read and accept the license agreement and then click <strong>Finish</strong>.
+      This will download and install the latest version of Android DDMS and 
+      Android Development Tools.</li>
+    <li>Restart Eclipse.</li>
+</ol>
+</td>
+<td>
+<!-- 3.5 steps -->
+<ol>
+    <li>Select <strong>Help</strong> &gt; <strong>Check for Updates</strong>. </li>
+    <li>In the resulting Available Updates dialog, locate the Android DDMS and 
+        Android Development Tools features in the list and ensure that the checkboxes
+        next to them are selected. Click <strong>Next</strong>. 
+        <p>If the Available Updates dialog does not list Android DDMS and Android 
+           Development tools, make sure that you have set up a remote update site 
+           for them, as described in 
+           <a href="#installing">Installing the ADT Plugin</a>. 
+        </p></li>
+    <li>In the Update Details dialog, click <strong>Next</strong>.</li>
+    <li>Read and accept the license agreement and then click <strong>Finish</strong>.
+      This will download and install the latest version of Android DDMS and 
+      Android Development Tools.</li>
+    <li>Restart Eclipse.</li>
+</ol>
+</td>
+</tr>
+</table>
+
+
+<p>If you encounter problems during the update of ADT, you 
+can try removing the existing ADT plugin and then performing a fresh
+installation. Fully remove your existing ADT Plugin as described in <a
+href="#uninstalling">Uninstalling the ADT Plugin</a>, below, and then follow the guide to <a
+href="#installing">Installing the ADT Plugin</a>.</p>
+
+<h3 id="updateEclipsePrefs">Update your Eclipse SDK Preferences</h3>
+
+<p>The last step is to update your Eclipse preferences to point to the new 
+SDK directory:</p>
+<ol>
+  <li>Select <strong>Window</strong> > <strong>Preferences</strong> to open 
+      the Preferences panel (Mac: <strong>Eclipse</strong> > <strong>Preferences
+      </strong>).</li>
+  <li>Select <strong>Android</strong> from the left panel.</li>
+  <li>For the SDK Location, click <strong>Browse</strong> 
+  and locate your SDK directory.</li>
+  <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
+</ol>
+
+
+<h2 id="uninstalling">Uninstalling the ADT plugin</h2>
+
+<p><p>If you encounter problems when installing or updating ADT, you 
+can try removing the existing ADT plugin and then performing a fresh
+installation. To remove ADT, follow these steps: </p>
+
+<table style="font-size:100%">
+<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
+<tr>
+<td width="50%">
+<!-- 3.4 steps -->
+<ol>
+    <li>Select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; 
+      <strong>Manage Configuration</strong>. </li>
+    <li>Expand the list in the left panel to reveal the installed tools.</li>
+    <li>Right-click "Android Editors" and click <strong>Uninstall</strong>. Click <strong>OK</strong> 
+    to confirm.</li>
+    <li>Restart Eclipse. 
+      <p>(Do not uninstall "Android Development Tools".)</p></li>
+</ol>
+</td>
+<td>
+<!-- 3.5 steps -->
+<ol>
+    <li>Select <strong>Help</strong> &gt; <strong>Install New Software</strong>.</li>
+    <li>In the "Details" panel, click the "What is already installed?" link.</li>
+    <li>In the <strong>Eclipse Installation Details</strong> dialog, select "Android DDMS" and "Android Development Tools" and then click <strong>Uninstall</strong>.</li>
+    <li>In the next window, confirm that the ADT features are selected for uninstall and then click <strong>Finish</strong> to uninstall.</li>
+    <li>Restart Eclipse.</li>
+</ol>
+</td>
+</tr>
+</table>
+
diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd
index e82ed34..1db075c 100644
--- a/docs/html/sdk/index.jd
+++ b/docs/html/sdk/index.jd
@@ -1,104 +1,80 @@
-page.title=Android 2.0 SDK, Release 1
+page.title=Android SDK
 sdk.redirect=0
 sdk.version=2.0
-
 sdk.date=October 2009
 
-sdk.win_download=android-sdk-windows-2.0_r1.zip
+sdk.win_download=android-sdk-windows_r1.zip
 sdk.win_bytes=
 sdk.win_checksum=
 
-sdk.mac_download=android-sdk-mac_x86-2.0_r1.zip
+sdk.mac_download=android-sdk-mac_x86_r1.zip
 sdk.mac_bytes=
 sdk.mac_checksum=
 
-sdk.linux_download=android-sdk-linux_x86-2.0_r1.tgz
+sdk.linux_download=android-sdk-linux_x86_r1.tgz
 sdk.linux_bytes=
 sdk.linux_checksum=
 
-adt.zip_download=ADT-0.9.4.zip
-adt.zip_version=0.9.4
-adt.zip_bytes=
-adt.zip_checksum=
-
 @jd:body
 
-<p>For more information on this SDK release, read the
+<p>For important information about this SDK release, please review the
 <a href="{@docRoot}sdk/RELEASENOTES.html">Release Notes</a>.</p>
 
-<p>For setup procedures, read the 
-<a href="{@docRoot}sdk/{@sdkCurrent}/installing.html">Installing</a> guide.</p>
+<div class="special">
+<p>The Android SDK has changed! If you've worked with the Android SDK before, you will notice several important differences:</p>
 
-<h2>SDK Contents</h2>
+<ul>
+<li style="margin-top:.5em">The SDK downloadable package includes <em>only</em> the latest version of the Android SDK Tools.</li>
+<li>Once you've installed the SDK, you now use the Android SDK and AVD Manager to download all of the SDK components that you need, such as Android platforms, SDK add-ons, tools, and documentation. </li>
+<li>The new approach is modular &mdash; you can install only the components you need and update any or all components without affecting your development environment.</li>
+<li>In short, once you've installed the new SDK, you will not need to download an SDK package again. Instead, you will use the Android SDK and AVD Manager to keep your development environment up-to-date. </li>
+</ul>
 
-<h4>Development tools</h4>
+<p>If you are currently using the Android 1.6 SDK, you do not need to install the new SDK, since your existing SDK incudes the Android SDK and AVD Manager tool. To develop against Android 2.0, for example, you could just download the updated SDK Tools (Revision 3) and the Android 2.0 platform into your existing SDK. </p>
+</div>
 
-<p>The SDK includes a full set of tools for developing and debugging application
-code and designing an application 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><em>&lt;sdk&gt;</em>/tools/</code> directory.</p>
+<h2>Quick Start</h2>
 
-<h4 id="system_images">Android Platforms</h4>
+<p class="xnote">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>
 
-<p>This SDK includes only the Android {@sdkCurrentVersion} platform version for developing Android
-applications. With this platform, both the fully compliant Android {@sdkCurrentVersion} library
-and system image are provided. For more information about this platform version &mdash;
-features, applications included, localizations, API changes, and so on &mdash;
-see the <a href="{@docRoot}sdk/android-{@sdkCurrentVersion}.html">Android {@sdkCurrentVersion}
-Version Notes</a>.</p>
+<p><strong>0. Prepare your development computer</strong></p>
 
-<p>Although only one platform version is included in the SDK, you do not need to
-install a separate Android SDK for each platform version on which would like to develop
-applications. Once you install the SDK from this page, you can easily install
-additional Android platform versions using the Android SDK and AVD Manager.
-For more information about adding platform versions to your SDK,
-read <a href="{@docRoot}sdk/updating-sdk.html">Updating Your SDK</a>.</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. 
+
+<p><strong>1. 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>If you are developing in Eclipse, set up a remote update site and install the Android Development Tools (ADT) plugin. The ADT plugin adds powerful extensions to the Eclipse IDE that help you to create and debug Android applications more easily and faster. If you use Eclipse, ADT gives you an incredible boost in developing Android 
+applications. </p>
+
+<p>For detailed instructions, see <a href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>.</p>
+
+<p><strong>3. Download one or more Android platforms</strong></p>
+
+<p>To develop an application, you need to download at least one Android platform component and install it into your SDK. 
+
+<p>Each downloadable platform includes an Android library and system image, as well as emulator skins, sample code and applications, and more. In most cases, you will want to download multiple platforms into your SDK, so that you can build your application on the minimum version you want to support, but test it against higher versions that you intend the application to run on.</p>
+
+<p>While you are downloading platforms, make sure 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. </p>
+
+<p>To download platforms or any other SDK component, use the Android SDK and AVD Manager tool, included in the SDK starter package. For more information, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>. Detailed information about individual platforms and other components are provided in the navigation bar at left, under "Downloadable SDK Components."</p>
 
 
-<h4 id="system_images">SDK Add-Ons</h4>
+
+<p><strong>4. Download other SDK components</strong></p>
+
+<p>In addition to Android platforms, you can also download SDK add-ons and a local version of the Android developer documentation to your SDK environment. </p>
 
 <p>An SDK add-on provides a development environment for an Android external
-library or a customized (but fully compliant) Android system image. This SDK
-includes the SDK add-ons listed below. The Android system API Level required by
-each add-on is noted.</p>
+library or a customized (but fully compliant) Android system image. You can install an add-on if you want to make use of its external library in your application. For example, the Google APIs Add-On lets you develop an application that takes advantage of the Google Maps external library. </p>
 
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Add-On</nobr></th><th><nobr>API Level</nobr></th>
-<th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td  width="5%">5</td>
-<td  width="5%">&nbsp;</td>
-<td>Includes the com.google.android.maps external library, a compliant
-Android 2.0 system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-</table>
+<p>Use the Android SDK and AVD Manager tool to download add-ons and other components into your SDK. </p>
 
+<p><strong>5. Get started with an application project</strong></p>
 
-<h4 id="samples">Sample Code and Applications</h4>
+<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>You can look at a variety of sample applications in the <a
-href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample
-code itself in the <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platform&gt;</em>/samples/</code>
-directory of the SDK package. Note that each platform version includes its own set of
-sample applications.</p>
-
-
-<h4 id="documentation">Documentation</h4>
-
-<p>The SDK package includes a full set of local documentation. To view it, open
-the <code><em>&lt;sdk&gt;</em>/documentation.html</code> file in a web browser. If you
-are developing in an IDE such as Eclipse, you can also view the reference
-documentation directly in the IDE by hovering over methods and class names.</p>
-
-<p>The most current documentation is always available on the Android Developers
-site:</p>
-
-<p style="margin-left:2em;"><a
-href="http://developer.android.com/index.html">http://developer.android.com/</a>
-</p>
-
-
+<p>If you are new to Android, you can use the <a href="{@docRoot}guide/tutorials/hello-world.html">Hello World</a> tutorial to get started quickly. Welcome!</p>
\ No newline at end of file
diff --git a/docs/html/sdk/installing.jd b/docs/html/sdk/installing.jd
new file mode 100644
index 0000000..e4fbfa0
--- /dev/null
+++ b/docs/html/sdk/installing.jd
@@ -0,0 +1,378 @@
+page.title=Installing the Android SDK
+sdk.preview=0
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+  <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">SDK Contents</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/adding-components.html">Adding SDK Components</a></li>
+  </ol>
+
+</div>
+</div>
+
+<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 
+<a href="#InstallationNotes">Installation Notes</a> at the bottom of
+this page.</p>
+
+<h4>Updating?</h4>
+
+<p>If you are currently using the Android 1.6 SDK, you do not necessarily need
+to install the new SDK, since your existing SDK incudes the Android SDK and AVD
+Manager tool. To develop against the new Android 2.0 platform, for example, you
+could just download the updated SDK Tools (Revision 3) and the Android 2.0 
+platform into your existing SDK.</p>
+
+<p>If you are using Android 1.5 SDK or older, you should install the new SDK as
+described in this document and move your application projects to the new
+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>
+
+<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>
+
+<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. For Eclipse 3.5, the 
+"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.
+Unpack the Android SDK .zip archive to a suitable location on your machine. By
+default, the SDK files are unpacked into a directory named
+<code>android_sdk</code>. </p>
+
+<p>Make a note of the name and location of the unpacked SDK directory on your
+system &mdash; you will need to refer to the SDK directory later, when setting
+up the ADT plugin or when using the SDK tools.</p>
+
+<p>Optionally, you may want to add the location of the SDK's primary
+<code>tools</code> directory to your system <code>PATH</code>. The primary
+<code>tools/</code> directory is located at the root of the SDK folder. Adding
+<code>tools</code> to your path lets you run Android Debug Bridge (adb) and the
+other command line <a
+href="{@docRoot}guide/developing/tools/index.html">tools</a> without needing to
+supply the full path to the tools directory. </p> 
+
+<ul>
+    <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
+    for a line that sets the PATH environment variable and add the
+    full path to the <code>tools/</code> directory to it. If you don't 
+    see a line setting the path, you can add one:</li>
+
+    <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
+
+    <li>On a Mac OS X, look in your home directory for <code>.bash_profile</code> and
+    proceed as for Linux. You can create the <code>.bash_profile</code> if 
+    you haven't already set one up on your machine. </li>
+
+    <li>On Windows, right-click on My Computer, and select Properties.  
+  Under the Advanced tab, hit the Environment Variables button, and in the
+  dialog that comes up, double-click on Path (under System Variables). Add the full path to the 
+  <code>tools/</code> directory to the path. </li>
+  </ul>
+
+<p>Note that, if you update your SDK in the future, you 
+should remember to update your <code>PATH</code> settings to point to the new location, if different.</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="#NextSteps">Next Steps</a>).</p>
+
+
+<h2 id="InstallingADT">Install 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>
+
+<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 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 &mdash; skip to <a href="#NextSteps">Next Steps</a>.)</p>
+
+<h2 id="components">Add Android Platforms and Other Components</h2>
+
+<p>Once you've downloaded and installed the SDK, you need to install SDK
+components in it. The SDK starter package includes a tool called Android SDK and
+AVD Manager to help you see what components are available and then install them
+into your SDK environment.</p>
+
+<p>There are several types of SDK components available:</p>
+
+<ul>
+<li><strong>SDK Tools</strong> (available pre-installed in the Android SDK
+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
+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
+detailed information about each platform, see the overview documents available
+under the section "Downloadable SDK Components," at left. </li>
+
+<li><strong>SDK Add-Ons</strong> &mdash; SDK add-ons provide a development
+environment for specific Android external
+library or a customized (but fully compliant) Android system image.  The Android
+SDK repository offers the Google APIs Add-On, which gives your application
+access to powerful mapping capabilities through the
+<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>Documentation</strong> &mdash; Contains a local copy of the latest
+multiversion documentation for the Android framework API. 
+</li>
+</ul>
+
+<p>For information about how to use the Android SDK and AVD Manager to download
+any of these components into your SDK, see the instructions in </p>
+<p style="margin-left:2em;"><a
+href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>. </p>
+
+<p>To develop an application, you <strong>must download at least one Android
+platform</strong> into your SDK. Typically, you will want to download multiple
+platforms, including the version that you want to develop against and all other
+higher platforms. By downloading multiple platforms, you can test the
+forward-compatibility of your application by running it on different platforms
+in the Android emulator. </p>
+
+<p class="note"><strong>Note:</strong> To get started with any application, even
+if you are following the <a
+href="{@docRoot}guide/tutorials/hello-world.html">Hello World</a> tutorial, you
+must download at least one Android platform into your SDK. For instructions, see
+<a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></p>
+
+
+<h2 id="sdkContents">Contents of 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
+inside.</p>
+
+<p>The table below describes the full SDK directory contents, with all components 
+installed. </p>
+
+<table>
+<tr>
+<th colspan="3">Name</th><th>Description</th>
+</tr>
+<tr>
+<td colspan="3"><code>add-ons/</code></td>
+<td>Contains add-ons to the Android SDK development
+environment, which let you develop against external libraries that are available on some
+devices. </td>
+</tr>
+<tr>
+<td colspan="3"><code>docs/</code></td>
+<td>A full set of documentation in HTML format, including the Developer's Guide,
+API Reference, and other information.</td>
+</tr>
+<tr>
+<td colspan="3"><code>platforms/</code></td>
+<td>Contains a set of Android platform versions that you can develop
+applications against, each in a separate directory.  </td>
+</tr>
+<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 
+directories contain a similar set of files and subdirectory structure.</td>
+</tr>
+
+<tr>
+<td style="width:2em;border-bottom-color:white;">&nbsp;</td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>data/</code></td>
+<td>Storage area for default fonts and resource definitions.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>images/</code></td>
+<td>Storage area for default disk images, including the Android system image, 
+the default userdata image, the default ramdisk image, and more. The images 
+are used in emulator sessions.</td>
+</tr>
+<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>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>templates/</code></td>
+<td>Storage area for file templates used by the SDK development tools.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>tools/</code></td>
+<td>Any development tools that are specific to the platform version.</td>
+</tr>
+<tr>
+<td style="width:2em;"></td>
+<td style="width:2em;"></td>
+<td><code>android.jar</code></td>
+<td>The Android library used when compiling applications against this platform
+version.</td>
+</tr>
+<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>
+</tr>
+<tr>
+<td colspan="3"><code>RELEASE_NOTES.html</code></td>
+<td>A file that loads the local version of the SDK release notes, if
+available.</td>
+</tr>
+<tr>
+<td colspan="3"><code>documentation.html</code></td>
+<td>A file that loads the entry page for the local Android SDK
+documentation.</td>
+</tr>
+
+</table>
+
+<h2 id="NextSteps">Next Steps</h2>
+<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>Learn about Android</strong></p>
+<ul>
+  <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
+  Guide</a> and the types of information it provides</li>
+  <li>Read an introduction to Android as a platform in <a
+  href="{@docRoot}guide/basics/what-is-android.html">What is
+  Android?</a></li>
+  <li>Learn about the Android framework and how applications run on it in
+  <a href="{@docRoot}guide/topics/fundamentals.html">Application
+  Fundamentals</a></li>
+  <li>Take a look at the Android framework API specification in the <a
+  href="{@docRoot}reference/packages.html">Reference</a> tab</li>
+</ul>
+
+<p><strong>Explore the SDK</strong></p>
+<ul>
+  <li>Get an overview of the <a
+  href="{@docRoot}guide/developing/tools/index.html">development
+  tools</a> that are available to you</li>
+  <li>Read how to develop <a
+  href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
+  <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
+  </li>
+</ul>
+
+<p><strong>Explore some code</strong></p>
+<ul>
+  <li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
+  World application</a> (highly recommended, especially for Eclipse users)</li>
+  <li>Follow the <a href="{@docRoot}guide/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>
+</ul>
+
+<p><strong>Visit the Android developer groups</strong></p>
+<ul>
+  <li>Take a look at the <a
+  href="{@docRoot}community/index.html">Community</a> tab to see a list of
+  Android developers groups. In particular, you might want to look at the
+  <a href="http://groups.google.com/group/android-developers">Android
+  Developers</a> group to get a sense for what the Android developer
+  community is like.</li>
+</ul>
+
+
+<h2 id="troubleshooting">Installation Troubleshooting</h2>
+
+<h3>Ubuntu Linux Notes</h3>
+
+<ul>
+  <li>If you need help installing and configuring Java on your
+    development machine, you might find these resources helpful: 
+    <ul>
+      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
+      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
+    </ul>
+  </li>
+  <li>Here are the steps to install Java and Eclipse, prior to installing
+  the Android SDK and ADT Plugin.
+    <ol>
+      <li>If you are running a 64-bit distribution on your development
+      machine, you need to install the <code>ia32-libs</code> package using
+      <code>apt-get:</code>:
+      <pre>apt-get install ia32-libs</pre>
+      </li>
+      <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
+      <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
+      version for download, so we recommend that you download Eclipse from
+      eclipse.org (<a
+      href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
+      downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
+      <li>Follow the steps given in previous sections to install the SDK 
+      and the ADT plugin. </li>
+    </ol>
+  </li>
+</ul>
+
+<h3>Other Linux Notes</h3>
+
+<ul>
+  <li>If JDK is already installed on your development computer, please
+  take a moment to make sure that it meets the version requirements listed
+  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
diff --git a/docs/html/sdk/older_releases.jd b/docs/html/sdk/older_releases.jd
index febccd04..0ecee3c 100644
--- a/docs/html/sdk/older_releases.jd
+++ b/docs/html/sdk/older_releases.jd
@@ -7,7 +7,7 @@
 only.</p>
 
 <p>If you are just getting started developing on Android, make sure that you
-are using the <a href="{@docRoot}sdk/{@sdkCurrent}/index.html">most current SDK available</a>,
+are using the <a href="{@docRoot}sdk/index.html">most current SDK available</a>,
 to ensure that your applications will be compatible with the latest
 Android-powered devices.</p>
 
diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs
index b75fe9b..8b55aad 100644
--- a/docs/html/sdk/sdk_toc.cs
+++ b/docs/html/sdk/sdk_toc.cs
@@ -1,9 +1,9 @@
 <?cs if:!sdk.redirect ?>
-<ul>
-  <li><?cs 
-   if:android.whichdoc == "online" ?>
+<ul><?cs 
+  if:android.whichdoc == "online" ?>
+  <li>
     <h2>
-      <span class="en">Current SDK Release</span>
+      <span class="en">Android SDK Starter Package</span>
       <span style="display:none" class="de">Aktuelle SDK-Version</span>
       <span style="display:none" class="es">Versión actual del SDK</span>
       <span style="display:none" class="fr">Version actuelle du SDK</span>
@@ -23,7 +23,7 @@
           <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/<?cs var:sdk.current ?>/installing.html">
+      <li><a href="<?cs var:toroot ?>sdk/installing.html">
           <span class="en">Installing</span>
           <span style="display:none" class="de">Installieren</span>
           <span style="display:none" class="es">Instalación</span>
@@ -33,46 +33,13 @@
           <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/updating-sdk.html">Updating Your SDK</a></li>
-      <li><a href="<?cs var:toroot ?>sdk/requirements.html">System Requirements</a></li>
-    </ul><?cs 
-   else ?> <?cs # else "if NOT online" ... ?>
-    <h2>
-      <span class="en">Android SDK</span>
-    </h2><?cs 
-   /if ?> <?cs # end of "if/else online" ... ?>
-    <ul>
-      <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>
+
     </ul>
   </li><?cs 
- if:android.whichdoc == "online" ?>
+  /if ?>
   <li>
     <h2>
-      <span class="en">System Image Version Notes</span>
-      <span style="display:none" class="de">Versionshinweise zum Systemabbild</span>
-      <span style="display:none" class="es">Notas de la versión de System Image</span>
-      <span style="display:none" class="fr">Notes de version de l'image système</span>
-      <span style="display:none" class="it">Note sulla versione dell'immagine <br />di sistema</span>
-      <span style="display:none" class="ja">システム イメージ バージョンに<br />関する注意事項</span>
-      <span style="display:none" class="zh-CN">系统图片版本说明</span>
-      <span style="display:none" class="zh-TW">系統影像版本資訊</span>
-    </h2>
-    <ul>
-      <li><a href="<?cs var:toroot ?>sdk/android-2.0.html">Android 2.0 Version Notes</a></li>
-      <li><a href="<?cs var:toroot ?>sdk/android-1.6.html">Android 1.6 Version Notes</a></li>
-  <!--    <li class="toggle-list"><div><a href="#" onclick="toggle(this.parentNode.parentNode,true); return false;">More</a></div>
-        <ul> -->
-          <li><a href="<?cs var:toroot ?>sdk/android-1.5.html">Android 1.5 Version Notes</a></li>
-          <li><a href="<?cs var:toroot ?>sdk/android-1.1.html">Android 1.1 Version Notes</a></li>
-  <!--    </ul> -->
-      </li>
-    </ul>
-  </li>
-<!--
-  <li>
-    <h2>
-      <span class="en">Developer Tools</span>
+      <span class="en">Downloadable SDK Components</span>
       <span style="display:none" class="de"></span>
       <span style="display:none" class="es"></span>
       <span style="display:none" class="fr"></span>
@@ -82,37 +49,94 @@
       <span style="display:none" class="zh-TW"></span>
     </h2>
     <ul>
-      <li><a href="<?cs var:toroot ?>sdk/tools.html">Tools Revision 3</a></li>
-      <li><a href="<?cs var:toroot ?>sdk/adt.html">"ADT Plugin for Eclipse, 0.9.4</a></li>
+      <li><a href="<?cs var:toroot ?>sdk/adding-components.html">
+      <span class="en">Adding SDK Components</span>
+      <span style="display:none" class="de"></span>
+      <span style="display:none" class="es"></span>
+      <span style="display:none" class="fr"></span>
+      <span style="display:none" class="it"></span>
+      <span style="display:none" class="ja"></span>
+      <span style="display:none" class="zh-CN"></span>
+      <span style="display:none" class="zh-TW"></span></a>
+      </li>
+    </ul>
+    <ul>
+      <li><a href="<?cs var:toroot ?>sdk/android-2.0.html">Android 2.0 Platform</a>
+      <span class="new">new!</span>
+      </li>
+      <li><a href="<?cs var:toroot ?>sdk/android-1.6.html">Android 1.6 Platform</a></li>
+      <li><a href="<?cs var:toroot ?>sdk/android-1.5.html">Android 1.5 Platform</a></li>
+      <li class="toggle-list">
+        <div><a href="#" onclick="toggle(this.parentNode.parentNode,true); return false;">Older Platforms</a></div>
+        <ul> 
+          <li><a href="<?cs var:toroot ?>sdk/android-1.1.html">Android 1.1 Platform</a>
+          </li>
+        </ul>
+      </li>
+    </ul>
+    <ul>
+      <li><a href="<?cs var:toroot ?>sdk/tools-notes.html">SDK Tools, Revision 3</a>
+      <span class="new">new!</span>
+      </li>
     </ul>
   </li>
--->
   <li>
-    <h2>Native Development Tools</h2>
+      <h2>
+      <span class="en">ADT Plugin for Eclipse</span>
+      <span style="display:none" class="de"></span>
+      <span style="display:none" class="es"></span>
+      <span style="display:none" class="fr"></span>
+      <span style="display:none" class="it"></span>
+      <span style="display:none" class="ja"></span>
+      <span style="display:none" class="zh-CN"></span>
+      <span style="display:none" class="zh-TW"></span>
+      </h2>
+    <ul>
+      <li><a href="<?cs var:toroot ?>sdk/eclipse-adt.html">Installing and Updating
+      <span style="display:none" class="de"></span>
+      <span style="display:none" class="es"></span>
+      <span style="display:none" class="fr"></span>
+      <span style="display:none" class="it"></span>
+      <span style="display:none" class="ja"></span>
+      <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 ?> Notes</span></a>
+      </li>
+    </ul>
+  </li>
+  <li>
+    <h2><span class="en">Native Development Tools</span>
+      <span style="display:none" class="de"></span>
+      <span style="display:none" class="es"></span>
+      <span style="display:none" class="fr"></span>
+      <span style="display:none" class="it"></span>
+      <span style="display:none" class="ja"></span>
+      <span style="display:none" class="zh-CN"></span>
+      <span style="display:none" class="zh-TW"></span>
+    </h2>
     <ul>
       <li><a href="<?cs var:toroot ?>sdk/ndk/1.6_r1/index.html">Android 1.6 NDK, r1</a></li>
     </ul>
   </li>
   <li>
-     <h2>
-        <span class="en">Previous SDK Releases</span>
-        <span style="display:none" class="de">Frühere SDK-Releases</span>
-        <span style="display:none" class="es">Versiones anteriores del SDK</span>
-        <span style="display:none" class="fr">Anciennes versions du SDK</span>
-        <span style="display:none" class="it">Release SDK precedenti</span>
-        <span style="display:none" class="ja">SDK の過去のリリース</span>
-        <span style="display:none" class="zh-CN">以前的 SDK 版本</span>
-        <span style="display:none" class="zh-TW">較舊的 SDK 發行版本</span>
+    <h2>
+      <span class="en">More Information</span>
+      <span style="display:none" class="de"></span>
+      <span style="display:none" class="es"></span>
+      <span style="display:none" class="fr"></span>
+      <span style="display:none" class="it"></span>
+      <span style="display:none" class="ja"></span>
+      <span style="display:none" class="zh-CN"></span>
+      <span style="display:none" class="zh-TW"></span>
     </h2>
     <ul>
-      <li><a href="<?cs var:toroot ?>sdk/1.6_r1/index.html">Android 1.6 SDK, r1</a></li>
-      <li><a href="<?cs var:toroot ?>sdk/1.5_r3/index.html">Android 1.5 SDK, r3</a></li>
-      <li><a href="<?cs var:toroot ?>sdk/1.1_r1/index.html">Android 1.1 SDK, r1</a></li>
-      <li><a href="<?cs var:toroot ?>sdk/1.0_r2/index.html">Android 1.0 SDK, r2</a></li>
-      <li><a href="<?cs var:toroot ?>sdk/older_releases.html">Other Releases</a></li>
+      <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>
     </ul>
-  </li><?cs 
- /if ?> <?cs # end of "if online" ?>
+  </li>
+
 </ul>
 
 <script type="text/javascript">
diff --git a/docs/html/sdk/tools-notes.jd b/docs/html/sdk/tools-notes.jd
new file mode 100644
index 0000000..abb9c96
--- /dev/null
+++ b/docs/html/sdk/tools-notes.jd
@@ -0,0 +1,62 @@
+page.title=SDK Tools Notes
+@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>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>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>
+
+<h2 id="3">SDK Tools, Revision 3</h2>
+
+<p>SDK Tools 3 provides several new features for developers and includes
+fixes for several tools issues, as described below. </p>
+
+<h3>Dependencies</h3>
+
+<p>SDK Tools 3 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 3 in your SDK. </p>
+
+<h3>Android tool</h3>
+<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>
+
+<h3>DDMS</h3>
+<ul>
+<li>Adds a button to dump HPROF file for running appplications (app must be able
+to write to the sdcard).</li>
+<li>Button to start/stop profiling of a running application (app must be able to
+write to the sdcard). Upon stop, Traceview will automatically be launched to
+display the trace.</li>
+<li>Fixed DDMS, Traceview, and the AVD Mananger/SDK Updater to run on Mac OS X
+10.6.</li>
+<li>Fixed screenshot support for devices running 32-bit framebuffer.</li>
+</ul>
+
+<h3>Android SDK and AVD Manager</h3>
+<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 
+an AVD.</li>
+<li>Provides improved AVD creation UI, which lets you customize the hardware
+properties of your AVDs.</li>
+<li>Now enforces dependencies between platforms and tools components, and
+between SDK add-ons and platforms.</li>
+</ul>
+
+
+
+
diff --git a/docs/html/sdk/updating-sdk.jd b/docs/html/sdk/updating-sdk.jd
deleted file mode 100644
index db1e8db..0000000
--- a/docs/html/sdk/updating-sdk.jd
+++ /dev/null
@@ -1,181 +0,0 @@
-page.title=Updating Your SDK
-@jd:body
-
-
-<div id="qv-wrapper">
-<div id="qv">
-<h2>Quick view</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>
-</ul>
-
-<h2>In this document</h2>
-<ol>
-  <li><a href="#InstallingComponents">Installing SDK Components</a>
-    <ol>
-      <li><a href="#AddingSites">Adding New Sites</a></li>
-    </ol>
-  </li>
-  <li><a href="#UpdatingAdt">Updating the Eclipse ADT Plugin</a></li>
-</ol>
-</div>
-</div>
-
-
-<p>Updating 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.</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>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/RELEASENOTES.html">SDK Release Notes</a> for ADT compatibility.</p>
-
-
-
-<h2 id="InstallingComponents">Installing SDK Components</h2>
-
-<p>Use the Android SDK and AVD Manager to install new SDK components. 
-To launch the SDK and AVD Manager:</p>
-<ul>
-  <li>Execute the <a 
-  href="{@docRoot}guide/developing/tools/othertools.html#android">{@code android}</a> tool
-  command with no options.</li>
-  <li>Or from Eclipse, select <strong>Window</strong> &gt;<strong>Android SDK and AVD
-  Manager</strong>.</li>
-</ul>
-
-<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>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>
-</ol>
-
-<p>New platforms are automatically saved into the 
-<code><em>&lt;sdk>/</em>platforms/</code> directory of your SDK;
-new add-ons are saved in the <code><em>&lt;sdk>/</em>add-ons/</code>
-directory; and new documentation is saved in the existing
-<code><em>&lt;sdk>/</em>docs/</code> directory (old docs are replaced).</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>
-
-<p>By default, <strong>Available Components</strong> only shows 
-the Google repository for Android SDK components and Google API
-add-ons. You can add additional sites that host
-Android SDK add-ons, then download SDK add-ons from them.</p>	
-
-<p>For example, a mobile carrier or hardware manufacturer may offer additional
-API libraries that are supported by their own Android-powered devices. 
-In order to develop using their libraries, you must install their
-Android SDK add-on.
-If the carrier or manufacturer has hosted an add-on repository file on their
-web site, add their site to the SDK and AVD Manager:</p>
-<ol>
-  <li>Select <strong>Available Components</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>
-
-
-
-
-
-<h2 id="UpdatingAdt">Updating the Eclipse ADT Plugin</h2>
-
-<p>You may need to update your ADT plugin depending on what version of the
-development tools you are using and what version of the Android platform you are
-compiling against. It's easy to update your plugin through Eclipse and we
-recommend that you stay up-to-date in order to avoid any problems.</p>
-
-<p>With the latest version of ADT, you can still compile existing applications against 
-previous versions of the Android platform. However, the latest ADT may
-not work with a previous version of the development tools. See the
-Android development tools release notes for compatibility information.</p>
-
-<p>To update ADT, follow the procedure below for your respective version of Eclipse.</p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
-<tr>
-<td width="50%">
-<!-- 3.4 steps -->
-<ol>
-    <li>Select <strong>Help</strong> &gt; <strong>Software Updates</strong>.</li>
-    <li>Select the <strong>Available Software</strong> tab.</li>
-    <li>Select the checkboxes next to Android DDMS and Android Developer Tools, 
-      then click  <strong>Update</strong>.</li>
-    <li>In the resulting Available Updates dialog, ensure that both Android DDMS 
-      and Android Development Tools are selected, then click 
-      <strong>Next</strong>.</li>
-    <li>Read and accept the license agreement and then click <strong>Finish</strong>.
-      This will download and install the latest version of Android DDMS and 
-      Android Development Tools.</li>
-    <li>Restart Eclipse.</li>
-</ol>
-</td>
-<td>
-<!-- 3.5 steps -->
-<ol>
-    <li>Select <strong>Help</strong> &gt; <strong>Check for Updates</strong>. </li>
-    <li>In the resulting Available Updates dialog, locate the Android DDMS and 
-        Android Development Tools features in the list and ensure that the checkboxes
-        next to them are selected. Click <strong>Next</strong>. 
-        <p>If the Available Updates dialog does not list Android DDMS and Android 
-           Development tools, make sure that you have set up a remote update site 
-           for them, as described in 
-           <a href="installing.html#InstallingADT">Installing the ADT Plugin</a>. 
-        </p></li>
-    <li>In the Update Details dialog, click <strong>Next</strong>.</li>
-    <li>Read and accept the license agreement and then click <strong>Finish</strong>.
-      This will download and install the latest version of Android DDMS and 
-      Android Development Tools.</li>
-    <li>Restart Eclipse.</li>
-</ol>
-</td>
-</tr>
-</table>
-
-<p>If you encounter problems with this update procedure, try performing a fresh
-installation. Fully remove your existing ADT Plugin as described in <a
-href="{@docRoot}sdk/1.5_r3/upgrading.html#uninstallAdt">Uninstall your previous
-ADT plugin</a> and then follow the guide to <a
-href="{@docRoot}sdk/{@sdkCurrent}/installing.html#InstallingADT">Installing the ADT Plugin for
-Eclipse</a>.</p>
-
-
