diff --git a/docs/html/guide/developing/tools/index.jd b/docs/html/guide/developing/tools/index.jd
index 91b430f..6e9fde1 100644
--- a/docs/html/guide/developing/tools/index.jd
+++ b/docs/html/guide/developing/tools/index.jd
@@ -32,6 +32,11 @@
         of the current display with a pixel grid, so you can get your layout just right.
     </dd>
 
+ <dt><a href="layoutopt.html">layoutopt</a></dt>
+    <dd>This tool lets you quickly analyze your application's layouts for
+efficiency.
+    </dd>
+
 	  <dt><a href="draw9patch.html">Draw 9-patch</a></dt>
 	    <dd>The Draw 9-patch tool allows you to easily create a 
 	    {@link android.graphics.NinePatch} graphic using a WYSIWYG editor. It also previews stretched 
diff --git a/docs/html/guide/developing/tools/layoutopt.jd b/docs/html/guide/developing/tools/layoutopt.jd
new file mode 100644
index 0000000..72a110d
--- /dev/null
+++ b/docs/html/guide/developing/tools/layoutopt.jd
@@ -0,0 +1,62 @@
+page.title=layoutopt
+@jd:body
+
+<p><code>layoutopt</code> is a command-line tool that helps you optimize the
+layouts and layout hierarchies of your applications. You can run it against your
+layout files or resource directories to quickly check for inefficiencies or
+other types of problems that could be affecting the performance of your
+application. </p>
+
+<p>To run the tool, open a terminal and launch <code>layoutopt
+&lt;resources&gt;</code> from your SDK <code>tools/</code> directory. In the
+command, supply a list of uncompiled resource xml files or directories that you
+want to analyze. </p>
+
+<p>When run, the tool loads the specified XML files and analyzes their layout
+structures and hierarchies according to a set of predefined rules. If it detects
+issues, it outputs information about the issues, giving filename, line numbers,
+description of issue, and for some types of issues a suggested resolution. </p>
+
+<p>Here's an example of the output:</p>
+
+<pre>$ layoutopt samples/
+samples/compound.xml
+   7:23 The root-level &lt;FrameLayout/&gt; can be replaced with &lt;merge/&gt;
+   11:21 This LinearLayout layout or its FrameLayout parent is useless
+samples/simple.xml
+   7:7 The root-level &lt;FrameLayout/&gt; can be replaced with &lt;merge/&gt;
+samples/too_deep.xml
+   -1:-1 This layout has too many nested layouts: 13 levels, it should have &lt= 10!
+   20:81 This LinearLayout layout or its LinearLayout parent is useless
+   24:79 This LinearLayout layout or its LinearLayout parent is useless
+   28:77 This LinearLayout layout or its LinearLayout parent is useless
+   32:75 This LinearLayout layout or its LinearLayout parent is useless
+   36:73 This LinearLayout layout or its LinearLayout parent is useless
+   40:71 This LinearLayout layout or its LinearLayout parent is useless
+   44:69 This LinearLayout layout or its LinearLayout parent is useless
+   48:67 This LinearLayout layout or its LinearLayout parent is useless
+   52:65 This LinearLayout layout or its LinearLayout parent is useless
+   56:63 This LinearLayout layout or its LinearLayout parent is useless
+samples/too_many.xml
+   7:413 The root-level &lt;FrameLayout/&gt; can be replaced with &lt;merge/&gt;
+   -1:-1 This layout has too many views: 81 views, it should have &lt= 80!
+samples/useless.xml
+   7:19 The root-level &lt;FrameLayout/&gt; can be replaced with &lt;merge/&gt;
+   11:17 This LinearLayout layout or its FrameLayout parent is useless</pre>
+
+<p>The <code>layoutopt</code> tool is available in SDK Tools, Revision 3 or
+later. If you do not have SDK Tools 3 or later installed in your SDK, you can
+download it from the Android SDK repository site using the Android SDK and AVD
+Manager. For information, see <a
+href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.</p>
+
+<h3>Usage</h3>
+
+<p>To run <code>layoutopt</code> against a given list of layout resources:</p>
+
+<pre>layoutopt &lt;list of xml files or directories></pre>
+
+<p>For example:</p>
+
+<pre>$ layoutopt res/layout-land</pre>
+<pre>$ layoutopt res/layout/main.xml res/layout-land/main.xml</pre>
diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs
index e2acc4f..5215202 100644
--- a/docs/html/guide/guide_toc.cs
+++ b/docs/html/guide/guide_toc.cs
@@ -255,6 +255,7 @@
       		<li><a href="<?cs var:toroot ?>guide/developing/tools/draw9patch.html">Draw 9-Patch</a></li>
       		<li><a href="<?cs var:toroot ?>guide/developing/tools/emulator.html">Emulator</a></li>
       		<li><a href="<?cs var:toroot ?>guide/developing/tools/hierarchy-viewer.html">Hierarchy Viewer</a></li>
+      		<li><a href="<?cs var:toroot ?>guide/developing/tools/layoutopt.html">layoutopt</a></li>
       		<li><a href="<?cs var:toroot ?>guide/developing/tools/othertools.html#mksdcard">mksdcard</a></li>
       		<li><a href="<?cs var:toroot ?>guide/developing/tools/monkey.html">Monkey</a></li>
       		<li><a href="<?cs var:toroot ?>guide/developing/tools/adb.html#sqlite">sqlite3</a></li>
diff --git a/docs/html/guide/topics/ui/declaring-layout.jd b/docs/html/guide/topics/ui/declaring-layout.jd
index 7ef22a6..80ad7b8 100644
--- a/docs/html/guide/topics/ui/declaring-layout.jd
+++ b/docs/html/guide/topics/ui/declaring-layout.jd
@@ -25,6 +25,7 @@
     <li><a href="#SizePaddingMargin">Size, Padding and Margins</a></li>
     <li><a href="#example">Example Layout</a></li>
   </ol>
+
 </div>
 </div>
 
@@ -41,14 +42,17 @@
 <p>The Android framework gives you the flexibility to use either or both of these methods for declaring and managing your application's UI. For example, you could declare your application's default layouts in XML, including the screen elements that will appear in them and their properties. You could then add code in your application that would modify the state of the screen objects, including those declared in XML, at run time. </p>
 
 <div class="sidebox">
-  <p>The <a href="{@docRoot}guide/developing/tools/adt.html">Android Development Tools</a> 
-  (ADT) plugin for Eclipse offers a layout preview of your XML &mdash; 
-  with the XML file opened, select the <strong>Layout</strong> tab.</p>
-  <p>You should also try the 
+  <ul>
+  <li>The <a href="{@docRoot}sdk/eclipse-adt.html">ADT
+  Plugin for Eclipse</a> offers a layout preview of your XML &mdash; 
+  with the XML file opened, select the <strong>Layout</strong> tab.</li>
+  <li>You should also try the 
   <a href="{@docRoot}guide/developing/tools/hierarchy-viewer.html">Hierarchy Viewer</a> tool, 
   for debugging layouts &mdash; it reveals layout property values, 
   draws wireframes with padding/margin indicators, and full rendered views while 
-  you debug on the emulator or device.</p>
+  you debug on the emulator or device.</li>
+  <li>The <a href="{@docRoot}guide/developing/tools/layoutopt.html">layoutopt</a> tool lets
+  you quickly analyze your layouts and hierarchies for inefficiencies or other problems.</li>
 </div>
 
 <p>The advantage to declaring your UI in XML is that it enables you to better separate the presentation of your application from the code that controls its behavior. Your UI descriptions are external to your application code, which means that you can modify or adapt it without having to modify your source code and recompile. For example, you can create XML layouts for different screen orientations, different device screen sizes, and different languages. Additionally, declaring the layout in XML makes it easier to visualize the structure of your UI, so it's easier to debug problems. As such, this document focuses on teaching you how to declare your layout in XML. If you're
diff --git a/docs/html/guide/tutorials/localization/index.jd b/docs/html/guide/tutorials/localization/index.jd
index eeade34..8a60814 100755
--- a/docs/html/guide/tutorials/localization/index.jd
+++ b/docs/html/guide/tutorials/localization/index.jd
@@ -539,8 +539,10 @@
 <p><img src="{@docRoot}images/hello_l10n/using_custom_locale.png" alt="using custom locale"
 width="512" height="299" style="margin-left:15px"></p>
 
-<p>For a list of supported locales in a specific Android platform, see the 
-associated notes in the "SDK" tab, under "Downloadable SDK Components."</p>
+<p>For a list of locales available on different versions of the Android platform,
+refer to the platform notes documents, listed under "Downloadable SDK Components"
+in the "SDK" tab. For example, <a 
+href="{@docRoot}sdk/android-2.0.html#locs">Android 2.0 locales</a>.</p>
 
 <p>Run the application for each of the expected locales, plus one unexpected
 locale. Here are some of the results you should see:</p>
diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd
index 552b6995..bca89f6 100644
--- a/docs/html/sdk/RELEASENOTES.jd
+++ b/docs/html/sdk/RELEASENOTES.jd
@@ -2,10 +2,10 @@
 @jd:body
 
 <p>This document provides version-specific information about Android SDK
-releases. For the latest known issues, please ensure that you're viewing this
+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>
+android.com/sdk/RELEASENOTES.html</a>.--></p>
 
 <h2 id="multiversion_r1">Android SDK</h2>
 
@@ -27,15 +27,16 @@
 </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>
+necessarily need to install the new SDK, since your existing SDK already
+includes 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
+<p>Release notes for Android platforms and other SDK components 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
+<li>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
@@ -44,8 +45,8 @@
 
 <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>
+href="{@docRoot}sdk/installing.html">Installing the SDK</a> for detailed
+installation instructions. </p>
 
 
 <h2 id="1.6_r1">Android 1.6 SDK, Release 1</h2>
diff --git a/docs/html/sdk/adt_download.jd b/docs/html/sdk/adt_download.jd
index 3eb6831..6ce7634 100644
--- a/docs/html/sdk/adt_download.jd
+++ b/docs/html/sdk/adt_download.jd
@@ -1,21 +1,18 @@
-page.title=Download the ADT Plugin Zip File
+page.title=Download the ADT Zip File
 @jd:body
 
-<p>
-If you are unable to download the ADT plugin through <a
-href="{@docRoot}guide/developing/tools/adt.html#installingplugin">setting up a remote
+<p>If you are unable to download the ADT plugin through <a
+href="{@docRoot}sdk/eclipse-adt.html#installing">setting up a remote
 update site</a> in Eclipse, you can download the ADT zip file and install it 
-from your computer (archived site) instead. 
-</p>
-<p>
-If you use this approach, in order to update the plugin, you will need to 
+from your computer (archived site) instead. </p>
+
+<p>If you use this approach, in order to update the plugin, you will need to 
 download the latest version from this page, uninstall the old version from 
 Eclipse, then install the new version. For more details on the procedure, 
-see Troubleshooting ADT Installation in the 
-<a href="{@docRoot}guide/developing/tools/adt.html#troubleshooting"> installation 
-page</a>.
-</p>
-<p>
+see <a 
+href="{@docRoot}sdk/eclipse-adt.html#troubleshooting">Troubleshooting
+ADT Installation</a>.</p>
+
 <table class="download">
   <tr>
     <th><nobr>ADT Version</nobr></th>
@@ -24,43 +21,50 @@
     <th>Md5 Checksum</th>
     <th>Notes</th>
   </tr>
-
+  <tr>
+     <td>0.9.4</td>
+     <td><a href="http://dl-ssl.google.com/android/ADT-0.9.4.zip">ADT-0.9.4.zip</a></td>
+     <td><nobr>{@adtZipBytes} bytes</nobr></td>
+     <td>{@adtZipChecksum}</td>
+     <td>Requires SDK Tools, Revision 3 <em><nobr>October 2009</nobr></em></td>
+  </tr>
   <tr>
      <td>0.9.3</td>
      <td><a href="http://dl-ssl.google.com/android/ADT-0.9.3.zip">ADT-0.9.3.zip</a></td>
-     <td><nobr>bytes</nobr></td>
-     <td><nobr></nobr></td>
-     <td><nobr>Required for users of Android 1.6 SDK (and later releases). Updated from 0.9.1. <em><nobr>September 2009</nobr></em></td>
-  </tr>
-  <tr class="alt-color">
-     <td>0.9.1</td>
-     <td><a href="http://dl-ssl.google.com/android/ADT-0.9.1.zip">ADT-0.9.1.zip</a></td>
-     <td><nobr>2916093 bytes</nobr></td>
-     <td><nobr>e7b2ab40414ac98</nobr></td>
-     <td><nobr>Required for users of Android 1.5 SDK. Updated from 0.9.0. <em><nobr>6 May 2009</nobr></em></td>
-  </tr>
-  <tr>
-     <td>0.8.0</td>
-     <td><a href="http://dl-ssl.google.com/android/ADT-0.8.0.zip">ADT-0.8.0.zip</a></td>
-     <td colspan="2"><nobr>&nbsp;</nobr></td>
-     <td><nobr>Required for users of Android 1.0/1.1 SDKs. <em><nobr>23 Sep 2008</nobr></em></td>
+     <td><nobr>3252487 bytes</nobr></td>
+     <td>c296488ac35772667c0f49e822156979</td>
+     <td>Required for users of Android 1.6 SDK only . Updated from 0.9.1. <em><nobr>September 2009</nobr></em></td>
   </tr>
 </table>
 
 
 <h4>Obsolete Versions of ADT</h4>
 
-<p>The table below lists older versions of the ADT Plugin that are no longer supported. If you are developing applications that are intended to be deployable to Android-powered devices, make sure that you upgrade to the most current SDK release available and use the most current version of the ADT Plugin, as listed in the section above.</p>
+<p>The table below lists older versions of the ADT Plugin that are no longer
+supported. If you are developing applications that are intended to be deployable
+to Android-powered devices, make sure that you upgrade to the most current SDK
+release available and use the most current version of the ADT Plugin, as listed
+in the section above.</p>
 
-<p>If you are not sure what version of ADT is installed in your Eclipse environment, open Eclipse and from the main menu select <strong>Help</strong> &gt; <strong>About Eclipse</strong> &gt; <strong>Features Details</strong>. Locate "com.android.ide.eclipse.adt" in the
-Feature ID column and look at its version number.</p>
+<p>If you are not sure what version of ADT is installed in your Eclipse
+environment, open Eclipse and from the main menu select <strong>Help</strong>
+&gt; <strong>About Eclipse</strong> &gt; <strong>Features Details</strong>.
+Locate "com.android.ide.eclipse.adt" in the Feature ID column and look at its
+version number.</p>
 
 <table>
   <tr>
     <th><nobr>ADT Version</nobr></th>
     <th>Notes</th>
   </tr>
-
+  <tr>
+     <td>0.9.1</td>
+     <td>Required for users of Android 1.5 SDK. Updated from 0.9.0. <em><nobr>6 May 2009</nobr></em></td>
+  </tr>
+  <tr>
+     <td>0.8.0</td>
+     <td>Required for users of Android 1.0/1.1 SDKs. <em><nobr>23 Sep 2008</nobr></em></td>
+  </tr>
   <tr>
      <td>0.7.1</td>
      <td>Required for users of the Android 0.9 SDK beta. <em><nobr>18 Aug 2008</nobr></em></td>
diff --git a/docs/html/sdk/android-2.0.jd b/docs/html/sdk/android-2.0.jd
index 57283e5..9dadf8b 100644
--- a/docs/html/sdk/android-2.0.jd
+++ b/docs/html/sdk/android-2.0.jd
@@ -205,6 +205,7 @@
 <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>
@@ -263,6 +264,62 @@
 <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>
 
+<h4>Key events executed on key-up</h4>
+
+<p>Android 2.0 is designed to run on devices that use virtual keys for HOME,
+MENU, BACK, and SEARCH, rather than physical keys. To support the best user
+experience on those devices, the Android platform now executes these buttons at
+key-up, for a key-down/key-up pair, rather than key-down. This helps prevent 
+accidental button events and lets the user press the button area and then drag 
+out of it without generating an event. </p>
+
+<p>This change in behavior should only affect your application if it is
+intercepting button events and taking an action on key-down, rather than on
+key-up. Especially if your application is intercepting the BACK key, you should
+make sure that your application is handling the key events properly. </p>
+
+<p>In general, intercepting the BACK key in an application is not recommended,
+however, if your application is doing so and it invokes some action on
+key-down, rather than key-up, you should modify your code. </p>
+
+<p>If your application will use APIs introduced in Android 2.0 (API Level 5), 
+you can take advantage of new APIs for managing key-event pairs:</p>
+
+<ul>
+<li>If you are intercepting the BACK key in an activity or dialog, just
+implement the new {@link android.app.Activity#onBackPressed()} method. </li>
+<li>If you are intercepting the BACK key in a view, you should track the key
+event on key-down (through the new {@link android.view.KeyEvent#startTracking}
+method), then invoke the action at key up. Here's a pattern you can use:</li>
+
+<pre>    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK
+                && event.getRepeatCount() == 0) {
+            event.startTracking();
+            return true;
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    public boolean onKeyUp(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
+                && !event.isCanceled()) {
+            // *** DO ACTION HERE ***
+            return true;
+        }
+        return super.onKeyUp(keyCode, event);
+    }</pre>
+
+</ul>
+
+<p>If you want to update a legacy application so that its handling of the BACK
+key works properly for both Android 2.0 and older platform versions, you 
+can use an approach similar to that shown above. Your code can catch the
+target button event on key-down, set a flag to track the key event, and 
+then also catch the event on key-up, executing the desired action if the tracking 
+flag is set. You'll also want to watch for focus changes and clear the tracking 
+flag when gaining/losing focus.</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 
diff --git a/docs/html/sdk/eclipse-adt.jd b/docs/html/sdk/eclipse-adt.jd
index 84d37e0..7d9efdb 100644
--- a/docs/html/sdk/eclipse-adt.jd
+++ b/docs/html/sdk/eclipse-adt.jd
@@ -1,4 +1,4 @@
-page.title=Installing and Updating the ADT Plugin
+page.title=Installing and Updating ADT
 sdk.preview=0
 
 @jd:body
@@ -23,21 +23,23 @@
 
 <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
+integrated environment in which to build Android applications. </p>
+
+<p>ADT 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>
+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.
+Android development and is the fastest way to get started. If you use Eclipse,
+the ADT plugin gives you an incredible boost in developing Android
+applications.</p>
 
-<p>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>
+<p>To install and update the ADT Plugin, you can take advantage of the Eclipse
+remote update feature. By setting up a remote update site, you can easily
+download, install, and check for ADT updates. Alternatively, you can download
+the latest ADT to your development computer as a local site archive. The
+sections below provide instructions for both methods.</p>
 
 
 <h2 id="preparing">Prepare for Installation</h2>
diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd
index 8b918e4..f467492 100644
--- a/docs/html/sdk/index.jd
+++ b/docs/html/sdk/index.jd
@@ -3,70 +3,87 @@
 sdk.version=2.0
 sdk.date=October 2009
 
-sdk.win_download=android-sdk-windows_r1.zip
-sdk.win_bytes=
-sdk.win_checksum=
+sdk.win_download=android-sdk_r3-windows.zip
+sdk.win_bytes=23070805
+sdk.win_checksum=bd7b57d5df37bd55ea101e76b24260a8
 
-sdk.mac_download=android-sdk-mac_x86_r1.zip
-sdk.mac_bytes=
-sdk.mac_checksum=
+sdk.mac_download=android-sdk_r3-mac.zip
+sdk.mac_bytes=19653431
+sdk.mac_checksum=f6674bf45e5e36811eea7e584f0c1d67
 
-sdk.linux_download=android-sdk-linux_x86_r1.tgz
-sdk.linux_bytes=
-sdk.linux_checksum=
+sdk.linux_download=android-sdk_r3-linux.tgz
+sdk.linux_bytes=15986291
+sdk.linux_checksum=3e1534e7fc15d154ff81616f0dc1545c
 
 @jd:body
 
-<p>For important information about this SDK release, please review the
-<a href="{@docRoot}sdk/RELEASENOTES.html">Release Notes</a>.</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 id="quickstart">Quick Start</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>
-
-<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>
-
-<h2>Quick Start</h2>
-
-<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>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><strong>0. Prepare your development computer</strong></p>
 
-<p>Read the <a href="{@docRoot}sdk/requirements.html">System Requirements</a> document and make sure that your development computer meets the hardware and software requirements for the Android SDK. Install any additional software needed before downloading the Android SDK. In particular, if you plan to develop Android applications in the Eclipse IDE using the ADT Plugin (see below), make sure that you have the correct version of Eclipse installed. 
+<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>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.</p>
-
-<p>For detailed instructions, see <a href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>.</p>
+<p>If you are developing in Eclipse, set up a remote update site and install the
+Android Development Tools (ADT) plugin. For detailed instructions, see <a
+href="{@docRoot}sdk/eclipse-adt.html">Installing and Updating ADT</a>.</p>
 
 <p><strong>3. Add Android platforms to your SDK</strong></p>
 
-<p>Use the Android SDK and AVD Manager, included in the SDK starter package, to add one or more Android platforms (for example, Android 1.6 or Android 2.0) to your SDK. In most cases, you will want to download multiple platforms, so that you can build your application on the lowest version you want to support, but test against higher versions that you intend the application to run on. Information about each platform is available at left, under "Downloadable SDK Components."</p>
+<p>Use the Android SDK and AVD Manager, included in the SDK starter package, to
+add one or more Android platforms (for example, Android 1.6 or Android 2.0) to
+your SDK. In most cases, you will want to download multiple platforms, so that
+you can build your application on the lowest version you want to support, but
+test against higher versions that you intend the application to run on.
+Information about each platform is available at left, under "Downloadable SDK
+Components."</p>
 
-<p>For more information about how to add platforms and other SDK components, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.</p>
+<p>To launch the Android SDK and AVD Manager on Windows, execute <code>SDK
+Setup.exe</code>, at the root of the SDK directory. On Mac OS X or Linux,
+execute the <code>android</code> tool in the <code>&lt;sdk&gt;/tools/</code>
+folder. For more information about how to add platforms and other components,
+see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.
+</p>
 
 <p><strong>4. Get the latest documentation</strong></p>
 
-<p>If you develop while offline, use the Android SDK and AVD Manager to download the latest documentation package. The documentation covers all versions of the API and lets you filter out those versions that your application won't support. Once installed, the documentation is also available to you directly from the Eclipse IDE. </p>
+<p>If you develop while offline, use the Android SDK and AVD Manager to download
+the latest documentation package. The documentation covers all versions of the
+API and lets you filter out those versions that your application won't support.
+Once installed, the documentation is also available to you directly from the
+Eclipse IDE. </p>
 
 <p><strong>5. Download other SDK components</strong></p>
 
-<p>You can use the Android SDK and AVD Manager to download other SDK components, such as the SDK add-ons. An SDK add-on provides a development environment for an Android external library or a customized Android system image. For example, the Google APIs Add-On lets you develop an application that takes advantage of the Google Maps external library. </p>
+<p>You can use the Android SDK and AVD Manager to download other SDK components,
+such as the SDK add-ons. An SDK add-on provides a development environment for an
+Android external library or a customized Android system image. For example, the
+Google APIs Add-On lets you develop an application that takes advantage of the
+Google Maps external library. </p>
 
 <p><strong>6. Get started with an application project</strong></p>
 
-<p>Once you've set up your SDK, the next step is to start a new application project or move existing applications into the new SDK.</p>
+<p>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>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
+<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. <a href="{@docRoot}sdk/installing.html#NextSteps">Next
+Steps</a> offers other suggestions of how to begin. Welcome!</p>
diff --git a/docs/html/sdk/installing.jd b/docs/html/sdk/installing.jd
index 3a44cda..66c6bdc 100644
--- a/docs/html/sdk/installing.jd
+++ b/docs/html/sdk/installing.jd
@@ -36,10 +36,10 @@
 <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>
+to install the new SDK, since your existing SDK already includes 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
@@ -125,14 +125,34 @@
 install Eclipse or ADT, instead, you can directly use the SDK tools to build and
 debug your application.</p>
 
+
 <h2 id="components">Add Android Platforms and Other Components</h2>
 
-<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 that helps you see what SDK components are available and then install 
-them into your SDK environment. The <a 
-href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a> document 
-provides step-by-step instructions.</p>
+<div class="sidebox-wrapper">
+<div class="sidebox">
+<p>The <strong>Android SDK and AVD Manager</strong> tool is pre-installed in
+your SDK. Using the tool is a key part of performing the initial setup of your
+SDK, as well as keeping it up-to-date with the latest platforms, tools, and
+other components. </p>
+
+<p style="margin-top:.75em;">For full instructions on how to use the tool, see 
+<a href="/sdk/adding-components.html#installingComponents">Adding SDK
+Components</a>.</p> 
+</div>
+</div>
+
+<p>The Android SDK uses a modular structure that separates the major parts of
+the SDK &mdash; platforms, add-ons, tools, and the API documentation &mdash;
+into a set of separately installable components. The SDK components are
+available to you for individual download, as needed, from the Android SDK
+repository site. </p>
+
+<p>The Android SDK starter package includes only a single component: the latest
+version of the SDK Tools. Included in that component is a tool called <em>Android
+SDK and AVD Manager</em> that you can use to download other components from the SDK
+repository site. The tool provides a graphical UI that lets you browse the
+repository, select new or updated components for download, and then install them
+in your SDK. </p>
 
 <p>There are several types of SDK components available:</p>
 
@@ -163,17 +183,22 @@
 </li>
 </ul>
 
-<p>To develop any application, even if you are following the <a
+<p>To develop <em>any</em> Android application, even if you are following the <a
 href="{@docRoot}guide/tutorials/hello-world.html">Hello World</a> tutorial, you
 <strong>must download at least one Android platform</strong> into your SDK.
-Typically, you will want to download multiple platforms, 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>
+Typically, you will want to download multiple platforms, so that you can build
+your application on the lowest version you want to support, but test against
+higher versions that you intend the application to run on. You can test your
+applications on different platforms by running in an 
+Android Virtual Device (AVD) on the Android emulator. </p>
 
-<p>For more information about adding components and additional repository sites,
-see the <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.
-</p>
+<p>For step-by-step instructions on how to use the Android SDK and AVD Manager
+to add components, see the <a href="{@docRoot}sdk/adding-components.html">Adding
+SDK Components</a> document. </p>
+
+<p>For release notes and other detailed information about individual SDK 
+components, see the documents listed under "Downloadable SDK Components" in 
+the navigation at left.</p>
 
 
 <h2 id="sdkContents">Explore the SDK</h2>
diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs
index 8b55aad..900b067 100644
--- a/docs/html/sdk/sdk_toc.cs
+++ b/docs/html/sdk/sdk_toc.cs
@@ -101,7 +101,10 @@
       <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>
+      </ul>
+      <ul>
+      <li><a href="<?cs var:toroot ?>sdk/adt-notes.html">ADT <?cs var:adt.zip.version ?> 
+          <span class="new">new!</span></span></a>
       </li>
     </ul>
   </li>
diff --git a/docs/html/sdk/tools-notes.jd b/docs/html/sdk/tools-notes.jd
index abb9c96..b8337b0 100644
--- a/docs/html/sdk/tools-notes.jd
+++ b/docs/html/sdk/tools-notes.jd
@@ -5,15 +5,16 @@
 includes the complete set of development and debugging tools for the Android
 SDK.</p>
 
+<p>This document provides version-specific information about SDK Tools
+releases. To keep up-to-date on new releases, make sure that you view this page
+at <a
+href="http://developer.android.com/sdk/tools-notes.html">http://developer.
+android.com/sdk/tools-notes.html</a>.</p>
+
 <p>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>
 
@@ -57,6 +58,13 @@
 between SDK add-ons and platforms.</li>
 </ul>
 
+<h3>Layoutopt, a new tool for optimizing layouts</h3>
 
-
+<p>The SDK Tools 3 package includes <code>layoutopt</code>, a new command-line 
+tool that helps you optimize your layout hierarchies. When run against your 
+layout files, the tool analyzes their hierarchies and notifies you of 
+inefficiencies and other potential issues. The tool also provides simple 
+solutions for the issues it finds. For usage, see <a 
+href="{@docRoot}guide/developing/tools/layoutopt.html">layoutopt</a>.
+</p>
 
