doc change: add SDK sizes, checksums, small changes for online SDK doc set, add layoutopt doc.

Bug:2160782
Change-Id: I020b31e10f2733223aa37d03687cf8a63843afa7
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>