diff --git a/docs/html/community/index.jd b/docs/html/community/index.jd
index eb5887a..3e69de4 100644
--- a/docs/html/community/index.jd
+++ b/docs/html/community/index.jd
@@ -3,8 +3,8 @@
 @jd:body
 
 	<div id="mainBodyFluid">
-			<h1>Community</h1>
-			<p>Welcome to the Android developers community! We're glad you're here and invite you to participate in these discussions. Before posting, please read the <a href="http://source.android.com/discuss/android-discussion-groups-charter">Groups Charter</a> that covers the community guidelines.</p>
+<h1>Community</h1>
+<p>Welcome to the Android developers community! We're glad you're here and invite you to participate in these discussions. Before posting, please read the <a href="http://source.android.com/discuss/android-discussion-groups-charter">Groups Charter</a> that covers the community guidelines.</p>
 
 <p class="note"><strong>Note:</strong> If you are seeking discussion about Android source code (not application development),
 then please refer to the <a href="http://source.android.com/discuss">Open Source Project Mailing lists</a>.</p>
@@ -53,48 +53,42 @@
 <li><b>Android beginners</b> - You're new to Android application development. You want to figure out how to get started with the Android SDK and the basic Android APIs? Start here. This list is open to any discussion around beginner-type questions for developers using the SDK; this is a great way to get up and running with your new application on the Android platform. Ask about getting your development environment set up, get help with the first steps of Android development (your first User Interface, your first permission, your first file on the Android filesystem, your first app on the Android Market...). Be sure to check the archives first before asking new questions. Please avoid advanced subjects, which belong on android-developers, and user questions, which will get a better reception on android-discuss.
 <ul>
 <li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-beginners">android-beginners</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
-</a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a></li>
 </ul>
 </li>
 
 <li><b>Android developers</b> - You're now an experienced Android application developer. You've grasped the basics of Android app development, you're comfortable using the SDK, now you want to move to advanced topics. Get help here with troubleshooting applications, advice on implementation, and strategies for improving your application's performance and user experience. This is the not the right place to discuss user issues (use android-discuss for that) or beginner questions with the Android SDK (use android-beginners for that).
 <ul>
 <li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-developers">android-developers</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
-</a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a></li>
 </ul>
 </li>
 
 <li><b>Android discuss</b> - The "water cooler" of Android discussion. You can discuss just about anything Android-related here, ideas for the Android platform, announcements about your applications, discussions about Android devices, community resources... As long as your discussion is related to Android, it's on-topic here. However, if you have a discussion here that could belong on another list, you are probably not reaching all of your target audience here and may want to consider shifting to a more targeted list.
 <ul>
 <li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-discuss">android-discuss</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
-    </a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a></li>
 </ul>
 </li>
 
 <li><b>Android ndk</b> - A place for discussing the Android NDK and topics related to using native code in Android applications. 
 <ul>
 <li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-ndk">android-ndk</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-ndk-subscribe@googlegroups.com">android-ndk-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
-    </a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-ndk-subscribe@googlegroups.com">android-ndk-subscribe@googlegroups.com</a></li>
 </ul>
 </li>
 
 <li><b>Android security discuss</b> - A place for open discussion on secure development, emerging security concerns, and best practices for and by android developers. Please don't disclose vulnerabilities directly on this list, you'd be putting all Android users at risk.
 <ul>
 <li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-security-discuss">android-security-discuss</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
-    </a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a></li>
 </ul>
 </li>
 
 <li><b>Android security announce</b> - A low-volume group for security-related announcements by the Android Security Team.
 <ul>
 <li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-security-announce">android-security-announce</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a>
-<a href="mailto:android-platform-subscribe@googlegroups.com">    </a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a></li>
 </ul>
 </li>
 
diff --git a/docs/html/guide/appendix/api-levels.jd b/docs/html/guide/appendix/api-levels.jd
index 8fc899b..a4dcc5e 100644
--- a/docs/html/guide/appendix/api-levels.jd
+++ b/docs/html/guide/appendix/api-levels.jd
@@ -1,81 +1,323 @@
 page.title=Android API Levels
 @jd:body
 
+<div id="qv-wrapper">
+<div id="qv">
 
-<p>The Android <em>API Level</em> is an integer that indicates a set of APIs available in an Android SDK
-and on a version of the Android platform. Each version of the Android platform supports a specific set
-of APIs, which are always backward-compatible. For example, Android 1.5 supports all APIs available in
-Android 1.0, but the reverse is not true. If an application uses APIs
-available in Android 1.5 that are not available in 1.0, then the application should never be installed
-on an Android 1.0 device, because it will fail due to missing APIs. The API Level ensures this does not happen
-by comparing the minimum API Level required by the applicaiton to the API Level available on the device.</p>
+  <h2>In this document</h2>
+<ol>
+  <li><a href="intro">What is API Level?</a></li>
+  <li><a href="#uses">Uses of API Level</a></li>
+  <li><a href="#considerations">Development Considerations</a>
+    <ol>
+      <li><a href="#fc">Application forward compatibility</a></li>
+      <li><a href="#bc">Application backward compatibility</a></li>
+      <li><a href="#platform">Selecting a platform version for compiling</a></li>
+      <li><a href="#apilevel">Declaring a minimum API Level</a></li>
+      <li><a href="#testing">Testing against higher API Levels</a></li>
+    </ol>
+  </li>
+  <li><a href="#filtering">Filtering the documentation</a></li>
+</ol>
 
-<p>When a new version of Android adds APIs, a new API Level is added to the platform. The new APIs
-are available only to applications that declare a minimum API Level that is equal-to or greater-than 
-the API Level in which the APIs were introduced. The API Level required by an application is declared with the
-<code>&lt;uses-sdk></code> element inside the Android manifest, like this:</p>
+  <h2>See also</h2>
+  <ol>
+    <li><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a> manifest element</li>
+  </ol>
 
-<pre>&lt;uses-sdk android:minSdkVersion="3" /></pre>
+</div>
+</div>
 
-<p>The value for <code>minSdkVersion</code> is the minimum API Level required by the application.
-If this is not declared, then it is assumed that the application is compatible with all versions and defaults to 
-API Level 1. In which case, if the application actually uses APIs introduced with an API Level greater than 1, then
-the application will fail in unpredictable ways when installed on a device that only supports API Level 1 
-(such as an Android 1.0 device).  
-See the <code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk></a></code> 
-documentation for more about declaring the API Level in your manifest.</p>
+<p>As you develop your application on Android, it's useful to understand the
+platform's general approach to API change management. It's also important to
+understand the API Level identifier and the role it plays in ensuring your 
+application's compatibility with devices on which it may be installed. </p>
 
-<p>For example, the {@link android.appwidget} package was introduced with API Level 3. If your application
-has set <code>minSdkVersion</code> to 1 or 2, then your application cannot use this package, 
-even if the device running your application uses a version of Android that supports it.
-In order to use the {@link android.appwidget} package, your application must set <code>minSdkVersion</code> 
-to 3 or higher. When the <code>minSdkVersion</code> is set to 3, the application will no longer be able to install 
-on a device running a platform version with an API Level less than 3.</p>
+<p>The sections below provide information about API Level and how it affects
+your applications. </p>
 
-<p>Despite the name of the manifest attribute (<code>minSdkVersion</code>), the API Level is not directly 
-associated with a specific SDK. For example, the SDK for Android 1.0 uses
-API Level 1 and the SDK for Android 1.1 uses API Level 2. So it may seem that the API Level increases consistently.
-However, it's possible that a subsequent platform
-releases will not introduce new APIs, and thus, the API Level will remain the same. In addition, there are often
-multiple SDK releases for a single platform version (there were three SDK releases for Android 1.5), and
-there's no guarantee that the API Level will remain the same between these. It's possible (but unlikely) that
-a second or third SDK for a given version of the platform will provide new APIs and add a new API Level.
-When you install a new SDK, be sure to read the SDK Contents on the install page, which specifies the API 
-Level for each platform available in the SDK. Also see the comparison of 
-<a href="#VersionsVsApiLevels">Platform Versions vs. API Levels</a>, below.</p>
+<p>For information about how to use the "Filter by API Level" control
+available in the API reference documentation, see 
+<a href="#filtering">Filtering the documentation</a> at the 
+end of this document. </p>
 
-<p class="note"><strong>Note:</strong> During an "Early Look" SDK release, the APIs may not be final, so the
-API Level number cannot be specified. In this case, a string value matching the
-platform codename must be used as the value for <code>minSdkVersion</code>. This codename value
-will only be valid while using the Early Look SDK with the emulator. An application using this API Level
-can never be installed on an Android device. When the final SDK is released, you must update your manifest to use
-the official API Level integer.</p>
+<h2 id="intro">What is API Level?</h2>
 
-<h2 id="VersionsVsApiLevels">Platform Versions vs. API Levels</h2>
+<p>API Level is an integer value that uniquely identifies the framework API
+revision offered by a version of the Android platform.</p>
 
-<p>The following table specifies the <em>maximum</em> API Level supported by each version of the Android platform.
-(Every platform is backward-compatible to API Level 1.)</p>
+<p>The Android platform provides a framework API that applications can use to
+interact with the underlying Android system. The framework API consists of:</p>
+
+<ul>
+<li>A core set of packages and classes</li>
+<li>A set of XML elements and attributes for declaring a manifest file</li>
+<li>A set of XML elements and attributes for declaring and accessing resources</li>
+<li>A set of Intents</li>
+<li>A set of permissions that applications can request, as well as permission
+enforcements included in the system</li>
+</ul>
+
+<p>Each successive version of the Android platform can include updates to the
+Android application framework API that it delivers. </p>
+
+<p>Updates to the framework API are designed so that the new API remains
+compatible with earlier versions of the API. That is, most changes in the API
+are additive and introduce new or replacement functionality. As parts of the API
+are upgraded, the older replaced parts are deprecated but are not removed, so
+that existing applications can still use them. In a very small number of cases,
+parts of the API may be modified or removed, although typically such changes are
+only needed to ensure API robustness and application or system security. All
+other API parts from earlier revisions are carried forward without
+modification.</p>
+
+<p>The framework API that an Android platform delivers is specified using an
+integer identifier called "API Level". Each Android platform version supports
+exactly one API Level, although support is implicit for all earlier API Levels
+(down to API Level 1). The initial release of the Android platform provided 
+API Level 1 and subsequent releases have incremented the API Level.</p>
+
+<p>The following table specifies the API Level supported by each version of the
+Android platform.</p>
 
 <table>
   <tr><th>Platform Version</th><th>API Level</th></tr>
-  <tr><td>Android 1.0</td><td>1</td></tr>
-  <tr><td>Android 1.1</td><td>2</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 Donut</td><td>Donut</td></tr>
+  <tr><td>Android 1.1</td><td>2</td></tr>
+  <tr><td>Android 1.0</td><td>1</td></tr>
 </table>
 
 
-<h2 id="ViewingTheApiReference">Viewing the API Reference Based on API Level</h2>
+<h2 id="uses">Uses of API Level in Android</h2>
 
-<p>The Android API reference includes information that specififies the minimum API Level required for each 
-package, class, and member. You can see this information on the right side of each header or label.</p>
+<p>The API Level identifier serves a key role in ensuring the best possible
+experience for users and application developers: 
 
-<p>By default, the reference documentation shows all APIs available with the latest SDK release.
-This means that the reference assumes you're using the latest API Level and will show you everything available
-with it. If you're developing applications for a version of Android that does not support the latest API Level, 
-then you can filter the reference to reveal only the packages, classes, and members available for that API Level.
-When viewing the reference, use the "Filter by API Level" selection box (below the search box) to pick the API Level
-you'd like to view.</p>
+<ul>
+<li>It lets the Android platform describe the maximum framework API revision 
+that it supports</li>
+<li>It lets applications describe the framework API revision that they
+require</li>
+<li>It lets the system negotiate the installation of applications on the user's
+device, such that version-incompatible applications are not installed on a
+user's device</li>
+</ul>
+
+<p>Each Android platform version stores its API Level identifier internally, in
+the Android system itself. </p>
+
+<p>Applications can use a manifest element provided by the framework API &mdash;
+<code>&lt;uses-sdk&gt;</code> &mdash; to describe the minimum and maximum API
+Levels under which they are able to run, as well as the preferred API Level that
+they are designed to support. The element offers two key attributes:</p>
+
+<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:maxSdkVersion</code> &mdash; Specifies the maximum API Level
+on which the application is able to run.</li>
+</ul>
+
+<p>For example, to specify the minimum system API Level that an application
+requires in order to run, the application would include in its manifest a
+<code>&lt;uses-sdk&gt;</code> element with a <code>android:minSdkVersion</code>
+attribute. The value of <code>android:minSdkVersion</code> would be the integer
+corresponding to the API Level of the earliest version of the Android platform
+under which the application can run. </p>
+
+<p>When the user attempts to install an application, the Android system first
+checks the <code>&lt;uses-sdk&gt;</code> attributes in the application's
+manifest and compares them against its own internal API Level. The system
+allows the installation to begin only if these conditions are met:</p>
+
+<ul>
+<li>If a <code>android:minSdkVersion</code> attribute is declared, its value
+must be less than or equal to the system's API Level integer. If not declared,
+the system assumes that the application requires API Level 1. </li>
+<li>If a <code>android:maxSdkVersion</code> attribute is declared, its value
+must be equal to or greater than the system's API Level integer. 
+in the system itself. If not declared, the system assumes that the application
+has no maximum API Level. </li>
+</ul>
+
+<p>When declared in an application's manifest, a <code>&lt;uses-sdk&gt;</code>
+element might look like this: </p>
+
+<pre>&lt;manifest&gt;
+  ...
+  &lt;uses-sdk android:minSdkVersion="4" /&gt;
+  ...
+&lt;/manifest&gt;</pre>
+
+<p>The principal reason that an application would declare an API Level in
+<code>android:minSdkVersion</code> is to tell the Android system that it is
+using APIs that were <em>introduced</em> in the API Level specified. If the
+application were to be somehow installed on a platform with a lower API Level,
+then it would crash at run-time when it tries to access APIs that don't exist.
+The system prevents such an outcome by not allowing the application to be
+installed if the lowest API Level it requires is higher than that of the
+platform version on the target device.</p>
+
+<p>For example, the {@link android.appwidget} package was introduced with API
+Level 3. If an application uses that API, it must declare a
+<code>android:minSdkVersion</code> attribute with a value of "3". The
+application will then be installable on platforms such as Android 1.5 (API Level
+3) and Android 1.6 (API Level 4), but not on the Android 1.1 (API Level 2) and
+Android 1.0 platforms (API Level 1).</p>
+
+<p>For more information about how to specify an application's API Level
+requirements, see the <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
+ section of the manifest file documentation.</p>
 
 
+<h2 id="considerations">Development Considerations</h2>
 
+<p>The sections below provide information related to API level that you should
+consider when developing your application.</p>
+
+<h3 id="fc">Application forward compatibility</h3>
+
+<p>Android applications are generally forward-compatible with new versions of
+the Android platform.</p>
+
+<p>Because almost all changes to the framework API are additive, an Android
+application developed using any given version of the API (as specified by its
+API Level) is forward-compatible with later versions of the Android platform and
+higher API levels. The application should be able to run on all later versions
+of the Android platform, except in isolated cases where the application uses a
+part of the API that is later removed for some reason. </p>
+
+<p>Forward compatibility is important because many Android-powered devices
+receive over-the-air (OTA) system updates. The user may install your
+application and use it successfully, then later receive an OTA update to a new
+version of the Android platform. Once the update is installed, your application
+will run in a new run-time version of the environment, but one that has the API
+and system capabilities that it depends on. </p>
+
+<p>In some cases, changes <em>below</em> the API, such those in the underlying
+system itself, may affect your application when it is run in the new
+environment. For that reason it's important for you, as the application
+developer, to understand how the application will look and behave in each system
+environment. To help you test your application on various versions of the Android
+platform, the Android SDK includes multiple platforms that you can download.
+Each platform includes a compatible system image that you can run in an AVD, to
+test your application. </p>
+
+<h3 id="bc">Application backward compatibility</h3>
+
+<p>Android applications are not necessarily backward compatible with versions of
+the Android platform older than the version against which they were compiled.
+</p>
+
+<p>Each new version of the Android platform can include new framework APIs, such
+as those that give applications access to new platform capabilities or replace
+existing API parts. The new APIs are accessible to applications when running on
+the new platform and, as mentioned above, also when running on later versions of
+the platform, as specified by API Level. Conversely, because earlier versions of
+the platform do not include the new APIs, applications that use the new APIs are
+unable to run on those platforms.</p>
+
+<p>Although it's unlikely that an Android-powered device would be downgraded to
+a previous version of the platform, it's important to realize that there are
+likely to be many devices in the field that run earlier versions of the
+platform. Even among devices that receive OTA updates, some might lag and not
+receive an update for a significant amount of time. </p>
+
+<h3 id="platform">Selecting a platform version and API Level</h3>
+
+<p>When you are developing your application, you will need to choose
+the platform version against which you will compile the application. In
+general, you should compile your application against the lowest possible
+version of the platform that your application can support. 
+
+<p>You can determine the lowest possible platform version by compiling the
+application against successively lower build targets. After you determine the
+lowest version, you should create an AVD using the corresponding platform
+version (and API Level) and fully test your application. Make sure to declare a
+<code>android:minSdkVersion</code> attribute in the application's manifest and
+set its value to the API Level of the platform version. </p>
+
+<h3 id="apilevel">Declaring a minimum API Level</h3>
+
+<p>If you build an application that uses APIs or system features introduced in
+the latest platform version, you should set the
+<code>android:minSdkVersion</code> attribute to the API Level of the latest
+platform version. This ensures 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 can function properly on
+their devices. </p>
+
+<p>If your application uses APIs introduced in the latest platform version but
+does <em>not</em> declare a <code>android:minSdkVersion</code> attribute, then
+it will run properly on devices running the latest version of the platform, but
+<em>not</em> on devices running earlier versions of the platform. In the latter
+case, the application will crash at runtime when it tries to use APIs that don't
+exist on the earlier versions.</p>
+
+<h3 id="testing">Testing against higher API Levels</h3>
+
+<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 do so, create an AVD that uses the platform version required by
+your application. Additionally, to ensure forward-compatibility, you should run
+and test the application on all platforms that use a higher API Level than that
+used by your application. </p>
+
+<p>The Android SDK includes multiple platform versions that you can use,
+including the latest version, and provides an updater tool that you can use to
+download other platform versions as necessary. </p>
+
+<p>To access the updater, use the <code>android</code> command-line tool,
+located in the &lt;sdk&gt;/tools directory. You can launch the Updater by using
+the <code>android</code> command without specifying any options. You can
+also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
+In ADT, you can also access the updater by selecting 
+<strong>Window</strong>&nbsp;>&nbsp;<strong>Android SDK and AVD
+Manager</strong>.</p>
+
+<p>To run your application against different platform versions in the emulator,
+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. See the table at the top of this document for
+a list of platform versions and their API Levels. </p>
+
+<!--
+The Framework API makeup: the API available in a specific platform version is
+made up of API parts introduced in previous versions, plus some parts that are
+new.
+-->
+
+<h2 id="filtering">Filtering the Reference Documentation by API Level</h2>
+
+<p>Reference documentation pages on the Android Developers site offer a "Filter
+by API Level" control in the top-right area of each page. </p>
+
+<p>The "Filter by API Level" lets you show documentation only for parts of the
+API that are actually accessible to your application, based on the API Level
+that it specifies in the <code>minSdkVersion</code> attribute in its manifest 
+file </p>
+
+<p>When you filter the reference documentation by an API level, only the APIs
+available at that API level are shown. APIs introduced in a later API level are
+grayed out and their content is masked, since they would not be accessible to
+your application. </p>
+
+<p>Note that filtering by API Level in the documentation does not provide a view
+of what is new or introduced in each API Level. Filtering simply provides a way
+to view the entire API associated with a given API Level, while excluding API
+elements introduced in later API Levels.</p>
+
+<p>By default, API Level filtering is enabled and set to show the latest API
+Level. If you do not want to use filtering reference documentation, select the
+highest available API Level.</p>
+
+<p>Note that the reference documentation for API elements also specifies the API
+Level at which the element was introduced. The API Level for packages and
+classes is specified as "Since &lt;api level&gt;" at the top-right corner of the
+content area on each documentation page. The API Level for each class member is
+specified in the member's detailed description section header, at the right
+margin. </p>
diff --git a/docs/html/guide/developing/eclipse-adt.jd b/docs/html/guide/developing/eclipse-adt.jd
index a5cf735..c3ec2e5 100644
--- a/docs/html/guide/developing/eclipse-adt.jd
+++ b/docs/html/guide/developing/eclipse-adt.jd
@@ -149,15 +149,15 @@
 
 <h3 id="CreatingAnAvd">Creating an AVD</h3>
 
-<p>With ADT 0.9.2 and above, the Android AVD Manager provides a simple graphical interface
+<p>With ADT 0.9.3 and above, the Android SDK and AVD Manager provides a simple graphical interface
 for creating and managing AVDs. (If you're using ADT version 0.9.1 or older, you must 
 use the <code>android</code> tool to create your AVDs&mdash;read the AVD guide to
 <a href="{@docRoot}guide/developing/tools/avd.html#creating">Creating an AVD</a>.)
 
-<p>To create an AVD with the Android AVD Manager:</p>
+<p>To create an AVD with the AVD Manager:</p>
 
 <ol>
-  <li>Select <strong>Window > Android AVD Manager</strong>, or click the Android AVD Manager icon (a black device)
+  <li>Select <strong>Window > Android SDK and AVD Manager</strong>, or click the Android SDK and AVD Manager icon (a black device)
     in the Eclipse toolbar.</p>
   </li>
   <li>In the Virtual Devices panel, you'll see a list of existing AVDs. Click <strong>New</strong>
@@ -169,7 +169,7 @@
   <li>Click <strong>Create AVD</strong>.</li>
 </ol>
 
-<p>Your AVD is now ready and you can close the Android AVD Manager. 
+<p>Your AVD is now ready and you can close the AVD Manager. 
 In the next section, you'll see how the AVD is used
 when launching your application on an emulator.</p>
 
@@ -217,7 +217,7 @@
 as an <em>Android Application</em>, ADT will automatically create a run configuration.
 The default run configuration will
 launch the default project Activity and use automatic target mode for device selection 
-(with no preferred AVD). If the default setting don't suit your project, you can 
+(with no preferred AVD). If the default settings don't suit your project, you can 
 customize the launch configuration or even create a new.</p>
 
 <p>To create or modify a launch configuration, follow these steps as appropriate 
@@ -256,6 +256,12 @@
     when selecting an AVD to run your application.
     See the following section on <a href=#AutoAndManualModes">Automatic and manual target 
     modes</a>).</p>
+    <p>You can specify any emulator options to the Additional Emulator Command
+    Line Options field. For example, you could add <code>-scale 96dpi</code> to
+    scale the AVD's screen to an accurate size, based on the dpi of your
+    computer monitor. For a full list of emulator options, see the <a
+    href="{@docRoot}guide/developing/tools/emulator.html">Android Emulator</a>
+document.</p>
   </li>
 </ol>
 
diff --git a/docs/html/guide/developing/tools/avd.jd b/docs/html/guide/developing/tools/avd.jd
index b8f205e..06b1245 100644
--- a/docs/html/guide/developing/tools/avd.jd
+++ b/docs/html/guide/developing/tools/avd.jd
@@ -11,6 +11,8 @@
         hardware options, system image, and data storage.
     <li>You create AVD configurations to model different device environments 
         in the Android emulator.</li>
+    <li>The <code>android</code> tool offers a graphical Android AVD 
+        Manager and a command-line interface for creating AVDs.</li>
   </ul>
   <h2>In this document</h2>
   <ol>
@@ -72,9 +74,18 @@
 href="{@docRoot}guide/developing/tools/emulator.html">Emulator</a>
 documentation. </p>
 
-<p>To create and manage AVDs, you use the android tool provided in the Android
-SDK. For more information about how to work with AVDs from inside
-your development environment, see <a
+<p>To create and manage AVDs, you use the <code>android</code> tool provided in
+the <code>tools/</code> directory of the Android SDK. The tool provides both a
+graphical AVD manager and a command-line interface that you can use to
+create AVDs. To access the graphical AVD manager, run the
+<code>android</code> tool without options. The sections below describe how to
+use the <code>android</code> command-line interface to create and manage AVDs.
+Note that some functionality, such as the capability to create an AVD with a
+custom hardware configuration, are only available through the command-line
+interface. </p>
+
+<p>For more information about how to work with AVDs from inside your development
+environment, see <a
 href="{@docRoot}guide/developing/eclipse-adt.html">Developing in Eclipse with
 ADT</a> or <a href="{@docRoot}guide/developing/other-ide.html">Developing in
 Other IDEs</a>, as appropriate for your environment.</p>
@@ -89,11 +100,11 @@
 </div>
 </div>
 
-<p>To create an AVD, you use the android tool, a command-line utility
-available in the <code>&lt;sdk&gt;/tools/</code> directory. Managing AVDs is one
-of the two main function of the android tool (the other is creating and updating
-Android projects). Open a terminal window and change to the 
-<code>&lt;sdk&gt;/tools/</code> directory, if needed</p>
+<p>To create an AVD, you use the <code>android</code> tool, a command-line
+utility available in the <code>&lt;sdk&gt;/tools/</code> directory. Managing
+AVDs is one of the two main function of the <code>android</code> tool (the other
+is creating and updating Android projects). Open a terminal window and change to
+the <code>&lt;sdk&gt;/tools/</code> directory, if needed</p>
 
 <p>To create each AVD, you issue the command <code>android create avd</code>,
 with options that specify a name for the new AVD and the system image you want
@@ -118,11 +129,12 @@
 be running on the system that you specify in the <code>-t</code> argument.<p>
 
 <p>To specify the system image to use, you refer to its <em>target ID</em>
-&mdash; an integer &mdash; as assigned by the android tool. The target ID is not
-derived from the system image name, version, or API Level, or other attribute,
-so you need to have the android tool list the available system images and the
-target ID of each, as described in the next section. You should do this
-<em>before</em> you run the <code>android create avd</code> command.
+&mdash; an integer &mdash; as assigned by the <code>android</code> tool. The
+target ID is not derived from the system image name, version, or API Level, or
+other attribute, so you need to have the <code>android</code> tool list the
+available system images and the target ID of each, as described in the next
+section. You should do this <em>before</em> you run the <code>android create
+avd</code> command.
 </p>
 
 <h3 id="listingtargets">Listing targets</h3>
@@ -131,7 +143,7 @@
 
 <pre>android list targets</pre>
 
-<p>The android tool scans the <code>&lt;sdk&gt;/platforms</code> and
+<p>The <code>android</code> tool scans the <code>&lt;sdk&gt;/platforms</code> and
 <code>&lt;sdk&gt;/add-ons</code> directories looking for valid system images and
 then generates the list of targets. Here's an example of the command output:
 </p>
@@ -199,24 +211,22 @@
 <pre>android create avd -n my_android1.5 -t 2</pre>
 
 <p>If the target you selected was a standard Android system image ("Type:
-platform"), the android tool next asks you whether you want to create a custom
-hardware profile. </p>
-
+platform"), the <code>android</code> tool next asks you whether you want to
+create a custom hardware profile. </p>
 <pre>Android 1.5 is a basic Android platform.
 Do you wish to create a custom hardware profile [no]</pre>
 
 <p>If you want to set custom hardware emulation options for the AVD, enter
 "yes" and set values as needed. If you want to use the default hardware
 emulation options for the AVD, just press the return key (the default is "no").
-The android tool creates the AVD with name and system image mapping you
+The <code>android</code> tool creates the AVD with name and system image mapping you
 requested, with the options you specified. 
 
-<p class="note">If you are creating an AVD whose target is an SDK add-on,
-the android tool does not allow you to set hardware emulation options. It
-assumes that the provider of the add-on has set emulation options appropriately
-for the device that the add-on is modeling, and so prevents you from resetting
-the options. </p>
-
+<p class="note">If you are creating an AVD whose target is an SDK add-on, the
+<code>android</code> tool does not allow you to set hardware emulation options.
+It assumes that the provider of the add-on has set emulation options
+appropriately for the device that the add-on is modeling, and so prevents you
+from resetting the options. </p>
 <p>For a list of options you can use in the <code>android create avd</code>
 command, see the table in <a href="#options">Command-line options for AVDs</a>,
 at the bottom of
@@ -225,11 +235,11 @@
 <h3 id="hardwareopts">Setting hardware emulation options</h3>
 
 <p>When are creating a new AVD that uses a standard Android system image ("Type:
-platform"), the android tool lets you set hardware emulation options for virtual
-device. The table below lists the options available and the default values, as
-well as the names of properties that store the emulated hardware options in the AVD's
-configuration file (the config.ini file in the AVD's local directory). </p>
-
+platform"), the <code>android</code> tool lets you set hardware emulation
+options for virtual device. The table below lists the options available and the
+default values, as well as the names of properties that store the emulated
+hardware options in the AVD's configuration file (the config.ini file in the
+AVD's local directory). </p>
 
 <table>
 <tr>
@@ -249,7 +259,6 @@
 <td>Whether there is a touch screen or not on the device. Default value is "yes".</td>
 <td>hw.touchScreen
 
-
 <tr>
 <td>Trackball support </td>
 <td>Whether there is a trackball on the device. Default value is "yes".</td>
@@ -339,23 +348,30 @@
 <td>Default value is "66MB".</td>
 <td>disk.cachePartition.size </td>
 </tr>
+
+<tr>
+<td>Abstracted LCD density</td>
+<td>Sets the generalized density characteristic used by the AVD's screen. Default value is "160".</td>
+<td>hw.lcd.density </td>
+</tr>
+
 </table>
 
 <h3 id="location">Default location of the AVD files</h3>
 
-<p>When you create an AVD, the android tool creates a dedicated directory for it
+<p>When you create an AVD, the <code>android</code> tool creates a dedicated directory for it
 on your development computer. The directory contains the AVD configuration file,
 the user data image and SD card image (if available), and any other files
 associated with the device. Note that the directory does not contain a system
 image &mdash; instead, the AVD configuration file contains a mapping to the
 system image, which it loads when the AVD is launched. </p>
 
-<p>The android tool also creates a &lt;AVD name&gt;.ini file for the AVD at the
+<p>The <code>android</code> tool also creates a &lt;AVD name&gt;.ini file for the AVD at the
 root of the .android/avd directory on your computer. The file specifies the
 location of the AVD directory and always remains at the root the .android 
 directory.</p>
 
-<p>By default, the android tool creates the AVD directory inside
+<p>By default, the <code>android</code> tool creates the AVD directory inside
 <code>~/.android/avd/</code> (on Linux/Mac), <code>C:\Documents and
 Settings\&lt;user&gt;\.android\</code> on Windows XP, and 
 <code>C:\Users\&lt;user&gt;\.android\</code> on Windows Vista. 
@@ -396,18 +412,18 @@
 
 <h3 id="deleting">Deleting an AVD</h3>
 
-<p>You can use the android tool to delete an AVD. Here is the command usage:</p>
+<p>You can use the <code>android</code> tool to delete an AVD. Here is the command usage:</p>
 
 <pre>android delete avd -n &lt;name&gt; </pre>
 
-<p>When you issue the command, the android tool looks for an AVD matching the 
+<p>When you issue the command, the <code>android</code> tool looks for an AVD matching the 
 specified name deletes the AVD's directory and files. </p>
 
 
 <h2 id="options">Command-line options for AVDs</h2>
 
 <p>The table below lists the command-line options you can use with the 
-android tool. </p>
+<code>android</code> tool. </p>
 
 
 <table>
@@ -448,9 +464,9 @@
   <td><code>-f</code></td>
   <td>Force creation of the AVD</td>
   <td>By default, if the name of the AVD being created matches that of an 
-      existing AVD, the android tool will not create the new AVD or overwrite 
+      existing AVD, the <code>android</code> tool will not create the new AVD or overwrite 
       the existing AVD. If you specify the <code>-f</code> option, however, the 
-      android tool will automatically overwrite any existing AVD that has the 
+      <code>android</code> tool will automatically overwrite any existing AVD that has the 
       same name as the new AVD. The files and data of the existing AVD are 
       deleted. </td>
 </tr>
@@ -465,7 +481,7 @@
   <td><code>-s &lt;name&gt;</code> or <br>
       <code>-s &lt;width&gt;-&lt;height&gt;</code> </td>
   <td>The skin to use for this AVD, identified by name or dimensions.</td>
-  <td>The android tool scans for a matching skin by name or dimension in the
+  <td>The <code>android</code> tool scans for a matching skin by name or dimension in the
 <code>skins/</code> directory of the target referenced in the <code>-t
 &lt;targetID&gt;</code> argument. Example: <code>-s HVGA-L</code></td>
 </tr>
diff --git a/docs/html/guide/developing/tools/emulator.jd b/docs/html/guide/developing/tools/emulator.jd
index 82d3c8d..a9b6914 100644
--- a/docs/html/guide/developing/tools/emulator.jd
+++ b/docs/html/guide/developing/tools/emulator.jd
@@ -1,7 +1,7 @@
 page.title=Android Emulator
 @jd:body
 
-<img src="{@docRoot}images/emulator-hvga-p.png" alt="Image of the Android Emulator" width="271" height="524" style="margin-left:0em;margin-top:-4em;float:right;"/>
+<div style="padding:1em;"><img src="/images/emulator-wvga800l.png" alt="Image of the Android Emulator" width="367" height="349" style="margin-left:2em;margin-top:-4em;float:right;"/></div>
 
 <p>The Android SDK includes a mobile device emulator -- a virtual mobile device 
 that runs on your computer. The emulator lets you prototype, develop, and test 
@@ -27,9 +27,13 @@
 arriving SMS messages or phone calls), and simulate latency effects and dropouts 
 on the data channel.</p>
 
-<div class="inline-toc" style="whitespace:nowrap;">
-<h4>In this document:</h4>
-<div class="g-unit g-first" style="whitespace:nowrap;width:35%;">
+<table>
+<tr>
+<td colspan="2" style="border:0;"><strong>In this document:</strong></td>
+</tr>
+<tr>
+<td style="border:0;">
+
 <ol class="toc">
 <li><a href="#overview">Overview</a></li>
 <li><a href="#starting">Starting and Stopping the Emulator</a></li>
@@ -53,9 +57,9 @@
 	<li><a href="#calling">Sending a Voice Call or SMS to Another Emulator Instance</a></li>
 	</ol></li>
 </ol>
-</div>
+</td>
 
-<div class="g-unit" style="whitespace:nowrap;">
+<td style="border:0;">
 <ol class="toc">
 <li><a href="#console">Using the Emulator Console</a>
 	<ol class="toc">
@@ -85,9 +89,9 @@
 <li><a href="#troubleshooting">Troubleshooting Emulator Problems</a></li>
 <li><a href="#limitations">Emulator Limitations</a></li>
 </ol>
-</div>
+</td>
 
-</div>
+</table>
 
 <a name="overview"></a>
 
@@ -260,11 +264,11 @@
   </tr>
   <tr>
     <td>Switch to previous layout orientation (for example, portrait, landscape)</td>
-    <td>KEYPAD_7, F11</td>
+    <td>KEYPAD_7, Ctrl-F11</td>
   </tr>
   <tr>
     <td>Switch to next layout orientation (for example, portrait, landscape)</td>
-    <td>KEYPAD_9, F12</td>
+    <td>KEYPAD_9, Ctrl-F12</td>
   </tr>
   <tr>
     <td>Toggle cell networking on/off</td>
@@ -721,19 +725,19 @@
 </tr>
 <tr>
   <td><code>-skin &lt;skinID&gt;</code></td>
-  <td>Start the emulator with the specified skin. </td>
-  <td>The standard Android platforms includes a <a href="#skins">choice of 
-      four skins</a>:<br />
-      <li>HVGA-L (480x320, landscape)</li>
-      <li>HVGA-P (320x480, portrait) (default) </li>
-      <li>QVGA-L (320x240, landscape)</li>
-      <li>QVGA-P (240x320, portrait) </li>
+  <td>This emulator option is deprecated. </td>
+  <td>Please set skin options using AVDs, rather than by using this emulator
+option. Using this option may yield unexpected and in some cases misleading
+results, since the density with which to render the skin may not be defined.
+AVDs let you associate each skin with a default density and override the default
+as needed. For more information, see <a
+href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>.
 </td>
 </tr>
 <tr>
   <td><code>-skindir &lt;dir&gt;</code></td>
-  <td>Search for emulator skins in &lt;dir&gt;. </td>
-  <td>&nbsp;</td></tr>
+  <td>This emulator option is deprecated. </td>
+  <td>See comments for <code>-skin</code>, above.</td></tr>
 </table>
 
 <a name="diskimages"></a>
@@ -1636,41 +1640,9 @@
 
 <h2>Using Emulator Skins</h2>
 
-<p>You can run the emulator with any of four default skins, as described in the table below. To specify a skin, use <code>-skin &lt;skinID&gt;</code> when starting the emulator. </p>
+<p>The Android SDK includes several Emulator skins that you can use to control the resolution and density of the emulated device's screen. To select a specific skin for running the emulator, create an AVD that uses that skin. Please do not use deprecated emulator options such as <code>-skin</code> to control the skin used by an emulator instance. For more information about AVDs, see <a
+href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>.  </p>
 
-<p>For example: </p>
-
-<pre>emulator -skin HVGA-L</pre> 
-
-<p>Note that you must enter the <code>&lt;skinID&gt;</code> in uppercase letters (if your development computer is case-sensitive).</p>
-
-<table border="0" style="clear:left;padding:2em;">
-  <tr>
-    <th width="20%">skinID</th>
-    <th >Description</th>
-    <th >Skin</th>
-  </tr>
-  <tr>
-    <td><code>HVGA-L</code></td>
-    <td>480x320, landscape</td>
-    <td><img src="{@docRoot}images/e-mini-hvga-l.png" width="219" height="113"></td>
-  </tr>
-  <tr>
-    <td><code>HVGA-P</code></td>
-    <td>320x480, portrait (default)</td>
-    <td><img src="{@docRoot}images/e-mini-hvga-p.png" width="113" height="219"></td>
-  </tr>
-  <tr>
-    <td><code>QVGA-L</code></td>
-    <td>320x240, landscape</td>
-    <td><img src="{@docRoot}images/e-mini-qvga-l.png" width="119" height="197"></td>
-  </tr>
-  <tr>
-    <td><code>QVGA-P</code></td>
-    <td>240x320, portrait</td>
-    <td><img src="{@docRoot}images/e-mini-qvga-p.png" width="95" height="173"></td>
-  </tr>
-</table>
 
 <a name="multipleinstances"></a>
 
diff --git a/docs/html/guide/publishing/versioning.jd b/docs/html/guide/publishing/versioning.jd
index d0eafcd..8d8b304 100644
--- a/docs/html/guide/publishing/versioning.jd
+++ b/docs/html/guide/publishing/versioning.jd
@@ -17,7 +17,7 @@
 
 <ol>
 <li><a href="#appversion">Setting Application Version</a></li>
-<li><a href="#minsdkversion">Specifying Minimum System API Version</a>
+<li><a href="#minsdkversion">Specifying Your Application's System API Requirements</a>
 </ol>
 
 
@@ -125,31 +125,44 @@
 {@link android.content.pm.PackageManager#getPackageInfo(java.lang.String, int)} 
 method of {@link android.content.pm.PackageManager PackageManager}. </p>
 
-<h2 id="minsdkversion">Specifying Minimum System API Version</h2>
+<h2 id="minsdkversion">Specifying Your Application's System API Requirements</h2>
 
 <p>If your application requires a specific minimum version of the Android
-platform, you can specify that version as an API Level identifier 
+platform, or is designed only to support a certain range of Android platform
+versions, you can specify those version requirements as API Level identifiers 
 in the application's manifest file. Doing so ensures that your 
 application can only be installed on devices that
 are running a compatible version of the Android system. </p>
 
-<p>To specify the minimum system version in the manifest, use this attribute: </p>
+<p>To specify API Level requirements, add a <code>&lt;uses-sdk&gt;</code> 
+element in the application's manifest, with one or more of these attributes: </p>
 
 <ul>
-<li><code>android:minSdkVersion</code> &mdash; An integer value corresponding to
-the code version of the Android platform. 
-<p>When preparing to install an application, the system checks the value of this
+<li><code>android:minSdkVersion</code> &mdash; The minimum version
+of the Android platform on which the application will run, specified
+by the platform's API Level identifier. </li>
+<li><code>android:maxSdkVersion</code> &mdash; The maximum version
+of the Android platform on which the application is designed to run, 
+specified by the platform's API Level identifier.  </li>
+</ul>
+
+<p>When preparing to install your application, the system checks the value of this
 attribute and compares it to the system version. If the
 <code>android:minSdkVersion</code> value is greater than the system version, the
-system aborts the installation of the application. </p>
+system aborts the installation of the application. Similarly, the system
+installs your application only if its <code>android:maxSdkVersion</code>
+is compatible with the platform version.</p>
 
-<p>If you do not specify this attribute in your manifest, the system assumes
-that your application is compatible with all platform versions.</p></li>
-</ul>
+<p>If you do not specify these attributes in your manifest, the system assumes
+that your application is compatible with all platform versions, with no
+maximum API Level. </p>
 
 <p>To specify a minimum platform version for your application, add a
 <code>&lt;uses-sdk&gt;</code> element as a child of
 <code>&lt;manifest&gt;</code>, then define the
 <code>android:minSdkVersion</code> as an attribute. </p>
 
-<p>For more information, also see the <a href="{@docRoot}sdk/android-1.1.html">Android System Image 1.1 Version Notes</a>.</p>
+<p>For more information, see the <a
+href="{@docRoot}guide/developing/manifest/uses-sdk-element.html"><code>&lt;uses-
+sdk&gt;</code></a> manifest element documentation and the <a
+href="{@docRoot}guide/appendix/api-levels.htmll">API Levels</a> document.</p>
diff --git a/docs/html/guide/topics/intents/intents-filters.jd b/docs/html/guide/topics/intents/intents-filters.jd
index fd20ca17..962a001 100644
--- a/docs/html/guide/topics/intents/intents-filters.jd
+++ b/docs/html/guide/topics/intents/intents-filters.jd
@@ -16,10 +16,11 @@
 <h2>In this document</h2>
 <ol>
 <li><a href="#iobjs">Intent Objects</a></li>
-<li><a href="#ires">Intent Resolution</a>, including:</li>
+<li><a href="#ires">Intent Resolution</a></li>
 <li style="margin-left: 2em"><a href="#ifs">Intent filters</a></li>
 <li style="margin-left: 2em"><a href="#ccases">Common cases</a></li>
 <li style="margin-left: 2em"><a href="#imatch">Using intent matching</a></li>
+<li><a href="#npex">Note Pad Example</a></li>
 </ol>
 </div>
 </div>
@@ -31,7 +32,7 @@
 Intent messaging is a facility for late run-time binding between components in the same 
 or different applications.  The intent itself, an {@link android.content.Intent} 
 object, is a passive data structure holding an abstract description of an operation 
-to be performed &mdash; or, in the case of broadcasts, a description of something 
+to be performed &mdash; or, often in the case of broadcasts, a description of something 
 that has happened and is being announced.  There are separate mechanisms for 
 delivering intents to each type of component: 
 </p>
@@ -40,7 +41,9 @@
 <li>An Intent object is passed to <code>{@link android.content.Context#startActivity 
 Context.startActivity()}</code> or <code>{@link android.app.Activity#startActivityForResult 
 Activity.startActivityForResult()}</code> to launch an activity or get an existing 
-activity to do something new.</li>
+activity to do something new. (It can also be passed to 
+<code>{@link android.app.Activity#setResult(int, Intent) Activity.setResult()}</code>
+to return information to the activity that called {@code startActivityForResult()}.)</li>
 
 <li><p>An Intent object is passed to <code>{@link android.content.Context#startService 
 Context.startService()}</code> to initiate a service or deliver new instructions to an 
@@ -380,22 +383,12 @@
 
 <p>
 A component has separate filters for each job it can do, each face it can 
-present to the user.  For example, the principal activity of the sample
-NotePad application has three filters &mdash; one for starting up with a
-blank slate, another for starting with an assigned directory of notes 
-that the user can view, edit, or select from, and a third for finding a 
-particular note without an initial specification of its directory.
-</p>
-
-<p>
-An intent filter is an instance of the {@link android.content.IntentFilter} class.  
-However, since the Android system must know about the capabilities of a component 
-before it can launch that component, intent filters are generally not set up in 
-Java code, but in the application's manifest file (AndroidManifest.xml) as 
-{@code &lt;intent-filter&gt;} elements.  (The one exception would be filters for 
-broadcast receivers that are registered dynamically by calling <code>{@link android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, 
-Handler) Context.registerReceiver()}</code>; they are directly created as 
-IntentFilter objects.)
+present to the user.  For example, the NoteEditor activity of the sample
+Note Pad application has two filters &mdash; one for starting up with a
+specific note that the user can view or edit, and another for starting 
+with a new, blank note that the user can fill in and save.  (All of Note 
+Pad's filters are described in the <a href="#npex">Note Pad Example</a>
+section, later.)
 </p>
 
 <div class="sidebox-wrapper">
@@ -413,6 +406,18 @@
 </div> 
 
 <p>
+An intent filter is an instance of the {@link android.content.IntentFilter} class.  
+However, since the Android system must know about the capabilities of a component 
+before it can launch that component, intent filters are generally not set up in 
+Java code, but in the application's manifest file (AndroidManifest.xml) as 
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code> 
+elements.  (The one exception would be filters for 
+broadcast receivers that are registered dynamically by calling <code>{@link android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, 
+Handler) Context.registerReceiver()}</code>; they are directly created as 
+IntentFilter objects.)
+</p>
+
+<p>
 A filter has fields that parallel the action, data, and category fields of an 
 Intent object.  An implicit intent is tested against the filter in all three areas.  
 To be delivered to the component that owns the filter, it must pass all three tests.  
@@ -429,8 +434,11 @@
 <dl>
 
 <dt><b>Action test</b></dt>
-<dd>An {@code &lt;intent-filter&gt;} element in the manifest file lists actions 
-as {@code &lt;action&gt;} subelements.  For example:
+<dd>An 
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
+element in the manifest file lists actions as 
+<code><a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action&gt;</a></code> 
+subelements.  For example:
 
 <pre>&lt;intent-filter . . . &gt;
     &lt;action android:name="com.example.project.SHOW_CURRENT" /&gt;
@@ -464,8 +472,9 @@
 </dd>
 
 <dt><b>Category test</b></dt>
-<dd>An {@code &lt;intent-filter&gt;} element also lists categories as subelements.  
-For example:
+<dd>An 
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code> 
+element also lists categories as subelements.  For example:
 
 <pre>&lt;intent-filter . . . &gt;
     &lt;category android:name="android.intent.category.DEFAULT" /&gt;
@@ -512,14 +521,16 @@
 multiple times, or not at all.  For example:
 
 <pre>&lt;intent-filter . . . &gt;
-    &lt;data android:type="video/mpeg" android:scheme="http" . . . /&gt; 
-    &lt;data android:type="audio/mpeg" android:scheme="http" . . . /&gt;
+    &lt;data android:mimeType="video/mpeg" android:scheme="http" . . . /&gt; 
+    &lt;data android:mimeType="audio/mpeg" android:scheme="http" . . . /&gt;
     . . .
 &lt;/intent-filter&gt;</pre>
 
 <p>
-Each {@code &lt;data&gt;} element can specify a URI and a data type (MIME media type).  
-There are separate attributes &mdash; {@code scheme}, {@code host}, {@code port}, 
+Each 
+<code><a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data&gt;</a></code> 
+element can specify a URI and a data type (MIME media type).  There are separate 
+attributes &mdash; {@code scheme}, {@code host}, {@code port}, 
 and {@code path} &mdash; for each part of the URI:  
 </p>
 
@@ -607,7 +618,7 @@
 provider and display it:
 </p>
 
-<pre>&lt;data android:type="image/*" /&gt;</pre>
+<pre>&lt;data android:mimeType="image/*" /&gt;</pre>
 
 <p>
 Since most available data is dispensed by content providers, filters that 
@@ -681,6 +692,357 @@
 queryBroadcastReceivers()}, for broadcast receivers.
 </p>
 
+<h2 id="npex">Note Pad Example</h2>
+
+<p>
+The Note Pad sample application enables users to browse through a list 
+of notes, view details about individual items in the list, edit the items, 
+and add a new item to the list.  This section looks at the intent filters
+declared in its manifest file.  (If you're working offline in the SDK, you 
+can find all the source files for this sample application, including its 
+manifest file, at {@code &lt;sdk&gt;/samples/NotePad/index.html}.  
+If you're viewing the documentation online, the source files are in the 
+<a href="{@docRoot}guide/samples/index.html">Tutorials and Sample Code</a> 
+section <a href="{@docRoot}guide/samples/NotePad/index.html">here</a>.)
+</p>
+
+<p>
+In its manifest file, the Note Pad application declares three activities,
+each with at least one intent filter.  It also declares a content provider 
+that manages the note data.  Here is the manifest file in its entirety:
+</p>
+
+<pre>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.example.android.notepad"&gt;
+    &lt;application android:icon="@drawable/app_notes"
+                 android:label="@string/app_name" &gt;
+
+        &lt;provider android:name="NotePadProvider"
+                  android:authorities="com.google.provider.NotePad" /&gt;
+
+        &lt;activity android:name="NotesList" android:label="@string/title_notes_list"&gt;
+            &lt;intent-filter&gt;
+                &lt;action android:name="android.intent.action.MAIN" /&gt;
+                &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
+            &lt;/intent-filter&gt;
+            &lt;intent-filter&gt;
+                &lt;action android:name="android.intent.action.VIEW" /&gt;
+                &lt;action android:name="android.intent.action.EDIT" /&gt;
+                &lt;action android:name="android.intent.action.PICK" /&gt;
+                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+                &lt;data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /&gt;
+            &lt;/intent-filter&gt;
+            &lt;intent-filter&gt;
+                &lt;action android:name="android.intent.action.GET_CONTENT" /&gt;
+                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+                &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+            &lt;/intent-filter&gt;
+        &lt;/activity&gt;
+        
+        &lt;activity android:name="NoteEditor"
+                  android:theme="@android:style/Theme.Light"
+                  android:label="@string/title_note" &gt;
+            &lt;intent-filter android:label="@string/resolve_edit"&gt;
+                &lt;action android:name="android.intent.action.VIEW" /&gt;
+                &lt;action android:name="android.intent.action.EDIT" /&gt;
+                &lt;action android:name="com.android.notepad.action.EDIT_NOTE" /&gt;
+                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+                &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+            &lt;/intent-filter&gt;
+            &lt;intent-filter&gt;
+                &lt;action android:name="android.intent.action.INSERT" /&gt;
+                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+                &lt;data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /&gt;
+            &lt;/intent-filter&gt;
+        &lt;/activity&gt;
+        
+        &lt;activity android:name="TitleEditor" 
+                  android:label="@string/title_edit_title"
+                  android:theme="@android:style/Theme.Dialog"&gt;
+            &lt;intent-filter android:label="@string/resolve_title"&gt;
+                &lt;action android:name="com.android.notepad.action.EDIT_TITLE" /&gt;
+                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+                &lt;category android:name="android.intent.category.ALTERNATIVE" /&gt;
+                &lt;category android:name="android.intent.category.SELECTED_ALTERNATIVE" /&gt;
+                &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+            &lt;/intent-filter&gt;
+        &lt;/activity&gt;
+        
+    &lt;/application&gt;
+&lt;/manifest&gt;</pre>
+
+<p>
+The first activity, NotesList, is 
+distinguished from the other activities by the fact that it operates 
+on a directory of notes (the note list) rather than on a single note.  
+It would generally serve as the initial user interface into the 
+application.  It can do three things as described by its three intent 
+filters:
+</p>
+
+<ol>
+<li><pre>&lt;intent-filter&gt;
+    &lt;action android:name="android.intent.action.MAIN" /&gt;
+    &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+This filter declares the main entry point into the Note Pad application.  
+The standard {@code MAIN} action is an entry point that does not require 
+any other information in the Intent (no data specification, for example), 
+and the {@code LAUNCHER} category says that this entry point should be 
+listed in the application launcher.
+</p></li>
+
+<li><pre>&lt;intent-filter&gt;
+    &lt;action android:name="android.intent.action.VIEW" /&gt;
+    &lt;action android:name="android.intent.action.EDIT" /&gt;
+    &lt;action android:name="android.intent.action.PICK" /&gt;
+    &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+    &lt;data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+This filter declares the things that the activity can do on a directory 
+of notes.  It can allow the user to view or edit the directory (via
+the {@code VIEW} and {@code EDIT} actions), or to pick a particular note 
+from the directory (via the {@code PICK} action).
+</p> 
+
+<p>
+The {@code mimeType} attribute of the 
+<code><a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data&gt;</a></code> 
+element specifies the kind of data that these actions operate on.  It 
+indicates that the activity can get a Cursor over zero or more items 
+({@code vnd.android.cursor.dir}) from a content provider that holds
+Note Pad data ({@code vnd.google.note}).  The Intent object that launches
+the activity would include a {@code content:} URI specifying the exact 
+data of this type that the activity should open.
+</p>
+
+<p>
+Note also the {@code DEFAULT} category supplied in this filter.  It's
+there because the <code>{@link android.content.Context#startActivity  
+Context.startActivity()}</code> and 
+<code>{@link android.app.Activity#startActivityForResult  
+Activity.startActivityForResult()}</code> methods treat all intents 
+as if they contained the {@code DEFAULT} category &mdash; with just
+two exceptions:
+</p>
+
+<ul>
+<li>Intents that explicitly name the target activity</li>
+<li>Intents consisting of the {@code MAIN} action and {@code LAUNCHER} 
+category</li>
+</ul>
+
+<p>
+Therefore, the {@code DEFAULT} category is <em>required</em> for all 
+filters &mdash; except for those with the {@code MAIN} action and 
+{@code LAUNCHER} category.  (Intent filters are not consulted for
+explicit intents.)  
+</p></li>
+
+<li><pre>&lt;intent-filter&gt;
+    &lt;action android:name="android.intent.action.GET_CONTENT" /&gt;
+    &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+    &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+This filter describes the activity's ability to return a note selected by
+the user without requiring any specification of the directory the user should 
+choose from.  The {@code GET_CONTENT} action is similar to the {@code PICK} 
+action.  In both cases, the activity returns the URI for a note selected by 
+the user.  (In each case, it's returned to the activity that called
+<code>{@link android.app.Activity#startActivityForResult 
+startActivityForResult()}</code> to start the NoteList activity.)  Here, 
+however, the caller specifies the type of data desired instead of the 
+directory of data the user will be picking from.
+</p>
+
+<p>
+The data type, <code>vnd.android.cursor.item/vnd.google.note</code>, 
+indicates the type of data the activity can return &mdash; a URI for 
+a single note.  From the returned URI, the caller can get a Cursor for 
+exactly one item ({@code vnd.android.cursor.item}) from the content 
+provider that holds Note Pad data ({@code vnd.google.note}).
+</p>
+
+<p>
+In other words, for the {@code PICK} action in the previous filter, 
+the data type indicates the type of data the activity could display to the 
+user.  For the {@code GET_CONTENT} filter, it indicates the type of data 
+the activity can return to the caller.
+</p></li>
+</ol>
+
+<p>
+Given these capabilities, the following intents will resolve to the
+NotesList activity:
+</p>
+
+<dl style="margin-left: 2em">
+<dt>action: <code>android.intent.action.MAIN</code></dt>
+<dd>Launches the activity with no data specified.</dd>
+
+<dt>action: <code>android.intent.action.MAIN</code>
+<br/>category: <code>android.intent.category.LAUNCHER</code></dt>
+<dd> Launches the activity with no data selected specified. 
+This is the actual intent used by the Launcher to populate its top-level 
+list.  All activities with filters that match this action and category
+are added to the list.</dd>
+
+<dt>action: <code>android.intent.action.VIEW</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes</code></dt>
+<dd>Asks the activity to display a list of all the notes under
+<code>content://com.google.provider.NotePad/notes</code>.  The user can then 
+browse through the list and get information about the items in it.</dd>
+
+<dt>action: <code>android.intent.action.PICK</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes</code></dt>
+<dd>Asks the activity to display a list of the notes under
+<code>content://com.google.provider.NotePad/notes</code>.
+The user can then pick a note from the list, and the activity will return 
+the URI for that item back to the activity that started the NoteList activity.</dd>
+
+<dt>action: <code>android.intent.action.GET_CONTENT</code>
+<br/>data type: <code>vnd.android.cursor.item/vnd.google.note</code></dt>
+<dd>Asks the activity to supply a single item of Note Pad data.</dd>
+</dl>
+
+<p>
+The second activity, NoteEditor, shows 
+users a single note entry and allows them to edit it.  It can do two things 
+as described by its two intent filters:
+
+<ol>
+<li><pre>&lt;intent-filter android:label="@string/resolve_edit"&gt;
+    &lt;action android:name="android.intent.action.VIEW" /&gt;
+    &lt;action android:name="android.intent.action.EDIT" /&gt;
+    &lt;action android:name="com.android.notepad.action.EDIT_NOTE" /&gt;
+    &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+    &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+The first, primary, purpose of this activity is to enable the user to 
+interact with a single note &mdash to either {@code VIEW} the note or 
+{@code EDIT} it.  (The {@code EDIT_NOTE} category is a synonym for 
+{@code EDIT}.)  The intent would contain the URI for data matching the 
+MIME type <code>vnd.android.cursor.item/vnd.google.note</code> &mdash;
+that is, the URI for a single, specific note.  It would typically be a 
+URI that was returned by the {@code PICK} or {@code GET_CONTENT} 
+actions of the NoteList activity.
+</p>
+
+<p>
+As before, this filter lists the {@code DEFAULT} category so that the 
+activity can be launched by intents that don't explicitly specify the
+NoteEditor class.
+</p></li>
+
+<li><pre>&lt;intent-filter&gt;
+    &lt;action android:name="android.intent.action.INSERT" /&gt;
+    &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+    &lt;data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+The secondary purpose of this activity is to enable the user to create a new 
+note, which it will {@code INSERT} into an existing directory of notes.  The 
+intent would contain the URI for data matching the MIME type
+<code>vnd.android.cursor.dir/vnd.google.note</code> &mdash; that 
+is, the URI for the directory where the note should be placed.
+</p></li>  
+</ol>
+
+<p>
+Given these capabilities, the following intents will resolve to the
+NoteEditor activity:
+</p>
+
+<dl style:"margin-left: 2em">
+<dt>action: <code>android.intent.action.VIEW</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes/<var>ID</var></code></dt>
+<dd>Asks the activity to display the content of the note identified 
+by {@code <var>ID</var>}. (For details on how {@code content:} URIs
+specify individual members of a group, see 
+<a href="{@docRoot}guide/topics/provider/content-providers.html">Content Providers</a>.)
+
+<dt>action: <code>android.intent.action.EDIT</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes/<var>ID</var></code></dt>
+<dd>Asks the activity to display the content of the note identified 
+by {@code <var>ID</var>}, and to let the user edit it.  If the user 
+saves the changes, the activity updates the data for the note in the 
+content provider.</dd>
+
+<dt>action: <code>android.intent.action.INSERT</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes</code></dt>
+<dd>Asks the activity to create a new, empty note in the notes list at
+<code>content://com.google.provider.NotePad/notes</code>
+and allow the user to edit it.  If the user saves the note, its URI
+is returned to the caller.
+</dd>
+</dl>
+
+<p>The last activity, TitleEditor, 
+enables the user to edit the title of a note.  This could be implemented 
+by directly invoking the activity (by explicitly setting its component 
+name in the Intent), without using an intent filter.  But here we take 
+the opportunity to show how to publish alternative operations on existing 
+data:
+</p>
+
+<pre>&lt;intent-filter android:label="@string/resolve_title"&gt;
+    &lt;action android:name="com.android.notepad.action.EDIT_TITLE" /&gt;
+    &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+    &lt;category android:name="android.intent.category.ALTERNATIVE" /&gt;
+    &lt;category android:name="android.intent.category.SELECTED_ALTERNATIVE" /&gt;
+    &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+The single intent filter for this activity uses a custom action called
+"<code>com.android.notepad.action.EDIT_TITLE</code>".  It must be invoked on
+a specific note (data type <code>vnd.android.cursor.item/vnd.google.note</code>),
+like the previous {@code VIEW} and {@code EDIT} actions.  However, here the 
+activity displays the title contained in the note data, not the content of 
+the note itself.
+</p>
+
+<p>
+In addition to supporting the usual {@code DEFAULT} category, the title 
+editor also supports two other standard categories: 
+<code>{@link android.content.Intent#CATEGORY_ALTERNATIVE ALTERNATIVE}</code>
+and <code>{@link android.content.Intent#CATEGORY_SELECTED_ALTERNATIVE 
+SELECTED_ALTERNATIVE}</code>.
+These categories identify activities that can be presented to users in 
+a menu of options (much as the {@code LAUNCHER} category identifies 
+activities that should be presented to user in the application launcher).  
+Note that the filter also supplies an explicit label (via 
+<code>android:label="@string/resolve_title"</code>) to better control
+what users see when presented with this activity as an alternative
+action to the data they are currently viewing.  (For more information 
+on these categories and building options menus, see the 
+<code>{@link android.content.pm.PackageManager#queryIntentActivityOptions 
+PackageManager.queryIntentActivityOptions()}</code> and 
+<code>{@link android.view.Menu#addIntentOptions Menu.addIntentOptions()}</code>
+methods.)
+</p>
+
+<p>
+Given these capabilities, the following intent will resolve to the
+TitleEditor activity:
+</p>
+
+<dl style="margin-left: 2em">
+<dt>action: <code>com.android.notepad.action.EDIT_TITLE</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes/<var>ID</var></code></dt>
+<dd>Asks the activity to display the title associated with note <var>ID</var>, and 
+allow the user to edit the title.</dd>
+</dl>
+
 
 
 
diff --git a/docs/html/images/emulator-wvga800l.png b/docs/html/images/emulator-wvga800l.png
new file mode 100644
index 0000000..a214033
--- /dev/null
+++ b/docs/html/images/emulator-wvga800l.png
Binary files differ
diff --git a/docs/html/intl/ja/community/index.jd b/docs/html/intl/ja/community/index.jd
index e0a645b..659aee7 100644
--- a/docs/html/intl/ja/community/index.jd
+++ b/docs/html/intl/ja/community/index.jd
@@ -40,38 +40,46 @@
 
 <h3 id="ApplicationDeveloperLists">アプリケーション デベロッパー メーリング リスト</h3>
 <ul>
+
+<li><b>Android SDK Japan</b> - Android SDK に関する質問と答え、提案とフィードバックを交換できる場です。
+<ul>
+<li>Google グループで登録:&nbsp;<a href="http://groups.google.co.jp/group/android-sdk-japan?hl=ja">android-sdk-japan</a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-sdk-japan-subscribe@googlegroups.com">android-sdk-japan-subscribe@googlegroups.com</a></li>
+</ul>
+</li>
+
 <li><b>Android 初心者向け</b> - Android アプリケーションの開発初心者向けです。Android SDK と基本的な Android API の利用方法について学習したい場合は、このメーリング リストから始めてください。このメーリング リストには、SDK を利用するデベロッパーの初歩的なディスカッションの場所です。Android プラットフォームで初めてアプリケーションを作成して実行する際は、非常に有益な情報を得ることができるでしょう。開発環境のインストール方法についての質問を投稿したり、Android 開発の初歩（初めて作成するユーザー インターフェース、権限、Android ファイルシステムでのファイル、Android マーケットでのアプリケーションなど）について教えてもらうことができます。新たに質問する前に、必ず最初にアーカイブを確認してください。高度な内容の質問の場合はここでは質問せず、android-developers メーリング リストで質問してください。また使用に関する質問は、android-discuss メーリング リストの方が適しています。
 <ul>
 <li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-beginners?hl=ja">android-beginners</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a></li>
 </ul>
 </li>
 
 <li><b>Android デベロッパー向け</b> - Android アプリケーション デベロッパーとして経験を積むにつれ、Android アプリケーション開発の基本を把握して、SDK を使いこなせるようになります。今度は、より高度な内容について質問する必要があります。アプリケーションのトラブルシューティング、実装へのアドバイス、アプリケーションのパフォーマンスやユーザー エクスペリエンスを改良するテクニックに関する質問には、次のメーリング リストが役立ちます。使用に関する問題（android-discuss をご利用ください）や、Android SDK を使用する際の初歩的質問（android-beginners をご利用ください）についてのディスカッションの場所ではありません。
 <ul>
 <li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-developers?hl=ja">android-developers</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a></li>
 </ul>
 </li>
 
 <li><b>Android ディスカッション</b> - Android に関する「井戸端会議」です。ここでは、Android プラットフォームへのアイデア、自分のアプリケーションの公表、Android 携帯端末に関するディスカッション、コミュニティ リソースなど、Android に関することなら何でも投稿可能です。ただし他のメーリング リストに該当する内容の場合は、そのメーリング リストに投稿することをおすすめします。質問のテーマが限定されている場所の方が、より多くの回答を得ることができるでしょう。
 <ul>
 <li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-discuss?hl=ja">android-discuss</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a></li>
 </ul>
 </li>
 
 <li><b>Android セキュリティ ディスカッション</b> - 安全な開発、新たに発生したセキュリティの問題、Android デベロッパー向けの Android デベロッパーによるベスト プラクティスについて自由にディスカッションを行える場所です。メーリング リストで脆弱性を直接公開することは、すべての Android ユーザーを危険にさらすことになるので、避けてください。
 <ul>
 <li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-security-discuss?hl=ja">android-security-discuss</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a></li>
 </ul>
 </li>
 
 <li><b>Android セキュリティに関する発表</b> - Android セキュリティ チームがセキュリティ関連の発表を行う、小規模なグループです。
 <ul>
 <li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-security-announce?hl=ja">android-security-announce</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a> <a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a></li>
 </ul>
 </li>
 
diff --git a/docs/html/sdk/1.6_r1/index.jd b/docs/html/sdk/1.6_r1/index.jd
new file mode 100644
index 0000000..11d369b
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/index.jd
@@ -0,0 +1,140 @@
+page.title=Android 1.6 SDK, Release 1
+sdk.redirect=0
+sdk.version=1.6
+
+sdk.date=September 2009
+
+sdk.win_download=android-sdk-windows-1.6_r1.zip
+sdk.win_bytes=
+sdk.win_checksum=
+
+sdk.mac_download=android-sdk-mac_x86-1.6_r1.zip
+sdk.mac_bytes=
+sdk.mac_checksum=
+
+sdk.linux_download=android-sdk-linux_x86-1.6_r1.tgz
+sdk.linux_bytes=
+sdk.linux_checksum=
+
+adt.zip_download=ADT-0.9.3.zip
+adt.zip_version=0.9.3
+adt.zip_bytes=
+adt.zip_checksum=
+
+@jd:body
+
+<p>For more information on this SDK release, read the
+<a href="{@docRoot}sdk/RELEASENOTES.html#1.6_r1">Release Notes</a>.</p>
+
+<h2>SDK Contents</h2>
+
+<h4>Development tools</h4>
+
+<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>&lt;sdk&gt;/tools/</code> directory. 
+
+<p>The tools package in this SDK includes updates from those provided in the
+previous SDK. The tools use the same project structure as in the previous SDK
+(Android 1.5). If you have application projects developed in the Android 1.5
+SDK, you can migrate them to the latest SDK without modification. For more
+information about how to migrate, see <a href="upgrading.html">Upgrading the
+SDK</a>.
+
+<h4 id="system_images">Android Platforms</h4>
+
+<p>This SDK includes multiple Android platform versions that you can use to
+develop applications. For each version, both a fully compliant Android library
+and system image are provided. The table below lists the platform versions
+included in this SDK. For more information about a platform version &mdash;
+features, applications included, localizations, API changes, and so on &mdash;
+see its Version Notes. </p>
+
+<table style="margin-right:1em;" width="80%">
+<tr>
+<th><nobr>Platform</nobr></th><th><nobr>API
+Level</nobr></th><th>Notes</th><th>Description</th>
+</tr>
+<tr>
+<td width="5%"><nobr>Android 1.6</nobr></td>
+<td  width="5%">4</td>
+<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.6.html">Version
+Notes</a></nobr></td>
+<td>Includes a standard Android 1.6 library and system image with a set of
+development applications. Does not include any external libraries (such as the
+Maps external library).</td>
+</tr>
+<tr>
+<td width="5%"><nobr>Android 1.5</nobr></td>
+<td  width="5%">3</td>
+<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version
+Notes</a></nobr></td>
+<td>Includes a standard Android 1.5 library and system image with a set of
+development applications. Does not include any external libraries (such as the
+Maps external library).</td>
+</tr>
+</table>
+
+<p>Note that you can use the Android SDK and AVD Manager to download other
+platform versions into your development environment.</span>. 
+
+<h4 id="system_images">SDK Add-Ons</h4>
+
+<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
+the add-ons are noted.</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%">4</td>
+<td  width="5%">&nbsp;</td>
+<td>Includes the com.google.android.maps external library, a compliant
+Android 1.6 system image, a {@link android.location.Geocoder Geocoder}
+backend service implementation, documentation, and sample code. </td>
+</tr>
+<tr>
+<td width="5%"><nobr>Google APIs</nobr></td>
+<td  width="5%">3</td>
+<td  width="5%">&nbsp;</td>
+<td>Includes the com.google.android.maps external library, a compliant 
+Android 1.5 system image, a {@link android.location.Geocoder Geocoder}
+backend service implementation, documentation, and sample code. </td>
+</tr>
+</table>
+
+<h4>Sample Code and Applications</h4>
+
+<p>You can look at a variety of tutorials and samples in the <a
+href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample
+code itself in the <code>&lt;sdk&gt;/platforms/&lt;platform&gt;/samples/</code>
+directory of the SDK package. Note the new location &mdash; the SDK now includes
+multiple platform versions that you can develop against and each has its own
+sample code directory. </p>
+
+<p>For example, to view or build the samples available for the Android 
+1.6 platform (AVD target "Android 1.6"), you will find the samples in the
+<code>&lt;sdk&gt;/platforms/android-1.6/samples/</code> directory of the SDK
+package. </p>
+
+<h4>Documentation</h4>
+
+<p>The SDK package includes a full set of local documentation. To view it, open
+the <code>&lt;sdk&gt;/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. </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>
+
+
diff --git a/docs/html/sdk/1.6_r1/installing.jd b/docs/html/sdk/1.6_r1/installing.jd
new file mode 100644
index 0000000..954bfa3
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/installing.jd
@@ -0,0 +1,441 @@
+page.title=Installing the Android 1.6 SDK
+sdk.version=1.6
+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.</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 style="margin-top">Upgrading?</h4>
+<p>If you have already developed applications using an earlier version
+of the Android SDK, please read <a href="upgrading.html">Upgrading the SDK</a>, instead.
+</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 on 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, 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: <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>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="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="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, <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/1.6_r1/requirements.jd b/docs/html/sdk/1.6_r1/requirements.jd
new file mode 100644
index 0000000..781ee32
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/requirements.jd
@@ -0,0 +1,51 @@
+page.title=System Requirements
+sdk.version=1.6
+sdk.preview=0
+@jd:body
+
+<p>The sections below describe the system and software requirements for developing 
+Android applications using the Android SDK tools included in Android 
+<?cs var:sdk.version ?> SDK<?cs if:sdk.rel.id ?>, Release <?cs var:sdk.rel.id ?><?cs /if ?>. </p>
+
+<h3>Supported Operating Systems</h3>
+<ul>
+  <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
+  <li>Mac OS X 10.4.8 or later (x86 only)</li>
+  <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
+</ul>
+
+<h3>Supported Development Environments</h3>
+<ul>
+  <li>Eclipse IDE
+    <ul>
+      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.4 (Ganymede) or 3.5 (Galileo)
+        <ul>
+        <li>Note: Eclipse 3.3 has not been fully tested with ADT 0.9.3 and support can no longer be guaranteed. We suggest you upgrade to 
+          Eclipse 3.4 or 3.5.</li>
+        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
+        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
+        <li>Eclipse Classic IDE package is not supported.</li>
+        </ul>
+      </li>     
+      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
+      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
+      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
+    </ul>
+  </li>
+  <li>Other development environments or IDEs
+    <ul>
+      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
+      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
+      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
+    </ul>
+  </li>
+</ul>
+
+<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. 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. </p>
+
+<h3>Hardware requirements</h3>
+<ul>
+  <li>For the base SDK package, at least 600MB of available disk space. For each platform downloaded into the SDK, an additional 100MB is needed. </li>
+</ul>
+
diff --git a/docs/html/sdk/1.6_r1/upgrading.jd b/docs/html/sdk/1.6_r1/upgrading.jd
new file mode 100644
index 0000000..2f9cc73
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/upgrading.jd
@@ -0,0 +1,386 @@
+page.title=Upgrading the SDK
+sdk.version=1.6
+sdk.preview=0
+@jd:body
+
+
+<div id="qv-wrapper">
+<div id="qv">
+
+  <h2>Upgrading the SDK</h2>
+  <ul>
+    <li>If you are developing on the Android 1.5 SDK, migrating your
+applications is straightforward and typically requires no modifications.</li>
+    <li>For Eclipse users, a new version of ADT is available. To use the Android
+1.6 SDK, please upgrade to ADT 0.9.3 (or later).</li>
+    <li>For Windows users, the SDK includes a new USB driver that you can
+install, if you are developing on a device. </li>
+    <li>A new Android SDK and AVD Manager tool is available. To access 
+it, run the <code>android</code> tool without options. </li>
+  </ul>
+
+  <h2>In this document</h2>
+  <ol>
+    <li><a href="#Install">Install the SDK</a></li>
+    <li><a href="#UpdateAdt">Update Your Eclipse ADT Plugin</a></li>
+    <li><a href="#RunYourApps">Run Your Applications</a></li>
+    <li><a href="#MigrateYourApps">Migrate Your Applications</a></li>
+  </ol>
+  
+  <h2>Migrating information</h2>
+  <ol>
+    <li><a href="{@docRoot}sdk/api_diff/4/changes.html">Android 1.6 API 
+Differences</a></li>
+  </ol>
+
+</div>
+</div>
+
+<p>This document describes how to move your development environment and existing
+Android applications from an Android 1.5 SDK to the Android 1.6 SDK. If you are
+migrating applications from an SDK older than 1.5, please also read the
+upgrading document available in the Android 1.5 SDK package.</p>
+
+<p>There are several compelling reasons to upgrade, such as new SDK tools that
+make developing more efficient and new APIs that allow you to expand the
+feature-set of your applications. However, even if you or your applications
+don't require these enhancements, it's important that you upgrade to ensure that
+your applications run properly on the upcoming Android platform.</p>
+
+<p>The Android 1.6 platform will soon be deployable to devices around the world.
+If you have already released Android applications to the public, you should test
+the forward-compatibility of your applications on the latest version of the
+platform as soon as possible. It's unlikely that you'll encounter problems in
+your applications, but in the interest of maintaining the best user experience,
+you should take no risks. So, please install the new Android SDK and test your
+applications on the new platform.</p>
+
+<!-- NOT AVAILABLE FOR PREVIEW RELEASES -->
+<p>For more information on new SDK features and system changes, 
+see the <a href="{@docRoot}sdk/android-1.6.html">Android 1.6 Version Notes</a>.</p>
+<!-- -->
+
+<h2 id="Install">Install the SDK</h2>
+
+<p>If you haven't yet downloaded the SDK, <a href="index.html">download it from 
+here</a> and unpack it into a safe location.</p>
+
+<p>If you had previously setup your <code>PATH</code> variable to point to the SDK 
+tools directory, then you need to update it to point to the new SDK. For example, for
+a <code>.bashrc</code> or <code>.bash_profile</code> file:</p>
+<pre>export PATH=$PATH:<em>&lt;your_sdk_dir></em>/tools</pre>
+
+
+<h2 id="UpdateAdt">Update Your Eclipse ADT Plugin</h2>
+
+<p>If you don't use the Eclipse IDE for development,
+skip to <a href="#RunYourApps">Run Your Applications</a>.</p>
+
+<p>A new version of the ADT Plugin, ADT 0.9.3, is available in conjunction with
+this SDK release. To use the SDK, you must upgrade your ADT Plugin to version
+0.9.3. With ADT 0.9.3, you can still compile your existing applications against 
+multiple platform versions, such as Android 1.5, Android 1.1, and so on. However, 
+ADT 0.9.3 is not compatible with previous versions of the SDK and its tools, so 
+make sure that you upgrade both your SDK <em>and</em> the ADT Plugin.</p>
+
+The upgrade steps for ADT are described below. For information about new features in ADT, see the <a
+href="{@docRoot}sdk/RELEASENOTES.html">Release Notes</a> document. </p>
+
+<p>If you're currently using a version of ADT <em>older</em> than version 0.9,
+then you must uninstall ADT before you proceed (read how to <a
+href="{@docRoot}sdk/1.5_r3/upgrading.html#uninstallAdt">Uninstall your previous
+ADT plugin</a>). If you currently have version 0.9 or 0.9.1, then you don't need
+to uninstall and can continue with the procedure below.</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="installing.html#InstallingADT">Installing the ADT Plugin for
+Eclipse</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="RunYourApps">Run Your Applications to Test Forward Compatibility</h2>
+
+<p>Now that you have installed the Android 1.6 SDK, we encourage you run each of
+your existing applications on the Android 1.6 system image that is included in
+the SDK, to ensure that it functions properly on the new platform.
+Testing forward-compatibility in this way is especially important for
+applications that you may have already published and that may be installed on
+devices that will upgrade to the new platform. </p>
+
+<p>In most cases, your applications will function properly when run on the new
+version of the platform. However, it is possible that you will encounter
+unexpected behavior, because of changes in the API or underlying platform. If
+you do find problems, you can use the SDK tools to compile and publish an update
+to the applications, which users can then download. 
+
+<p>To test forward-compatibility, simply run your application, as-is, on an
+instance of the Android Emulator that uses an AVD targeted to the "Android 1.6"
+system image. Here are the steps: </p>
+
+<ol>
+  <li>Make no changes to your application code.</li>
+  <li>Create a new AVD that runs the new "Android 1.6" platform. </li>
+  <li>Launch your application in an emulator running the new AVD.</li>
+  <li>Perform normal testing on your application to ensure everything works as 
+      expected.</li>
+</ol>
+
+<p>Note that, for the purposes of forward-compatibility testing, you should not
+change how your application is compiled. That is, you should continue to compile
+the application against the same version of the Android library as before. The
+only change needed is to the AVD, which controls the version of the Android
+system image (run-time environment) on which the application is run. 
+
+<p>For more information on creating an AVD and launching your application, see
+<a href="{@docRoot}guide/developing/eclipse-adt.html#Running">Running Your
+Applications (Eclipse)</a> or <a
+href="{@docRoot}guide/developing/other-ide.html#Running">Running
+Your Applications (other IDEs)</a>, depending on your development
+environment.</p>
+
+<h3 id="FutureProofYourApps">Android 1.6 Forward-Compatibility Tips</h3>
+
+<p>The new version of the Android platform includes several new APIs, but
+very few actual changes to existing APIs. This means that, in most
+cases, your applications written with earlier versions of the Android library
+should run properly on the Android 1.6 platform. </p>
+
+<p>However, here are some areas to pay attention to as you test forward-compatibility:</p>
+
+<ul>
+  <li><strong>Make sure your application doesn't use internal APIs</strong>. Your
+application should not use any APIs that are not officially supported and are
+not published in the Android reference documentation. Unofficial APIs can change
+at any time without notice and &mdash; if your application happens to be using
+them &mdash; such a change could cause the application to break.</li>
+
+ <li><strong>Watch for assumptions about available hardware</strong>. Remember
+that not all compatible devices offer the same hardware capabilities &mdash;
+screens, keyboards, and physical keys, and so on. As you test your application,
+watch for areas where your application depends on the presence of specific
+hardware capabilities. If you find dependencies, you can design around them by
+building in alternate support or graceful degradation, or you can specify them 
+as hardware requirements in a 
+<a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code>&lt;uses-configuration&gt;</code>.</a>
+element in the application's manifest file. Also see the <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature&gt;</code>
+manifest element, which lets your application declare a requirement for 
+specific features, such as an OpenGL ES version or a camera that has 
+autofocus capability.
+</li>
+
+ <li><strong>Watch for assumptions about available features</strong>. Not all 
+compatible devices offer equal support for embedded features. same hardware capabilities &mdash;
+screens, keyboards, and physical keys, and so on. As you test your application,
+watch for areas where your application depends on the presence of specific
+hardware capabilities. If you find dependencies, you can design around them by
+building in alternate support or graceful degradation, or you can specify them 
+as hardware requirements in a 
+<a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code>&lt;uses-configuration&gt;</code>.</a>
+element in the application's manifest file. </li>
+
+  <p>When testing forward-compatibility, try running your application in various
+AVDs that emulate different hardware configurations. For example, you can create
+an AVD that does not offer a physical keyboard or one that uses a dpad instead
+of a trackball. Running your application in different emulated hardware
+configurations will give you an idea of where its dependencies are and help you
+identify problems. </p>
+ </li>
+
+  <li><strong>Watch for assumptions about screen resolution and
+density</strong>. A device's screen resolution and density is likely to affect
+the way that your application's UI is rendered, especially if your app specifies
+dimensions or positions using pixels or absolute layouts. To ensure consistent
+UI across screens, your app should specify the dimensions and positions of
+layouts and drawables in relative units that can be scaled by the system as
+appropriate, according to the density of the device's screen. Alternatively, you
+can create custom sets of layout/drawable resources for specific screens, which
+the system can then load as appropriate, based on the current device screen.</p>
+
+  <p>When testing forward-compatibility, try running your application in various
+AVDs that emulate different screen resolutions and densities. Also note that,
+starting with Android 1.6, the platform provides a Compatibility Mode that
+automatically scales the UI of applications if they do not explicitly indicate
+support for the current screen in the 
+<a href="{@docRoot}guide/topics/manifest/supports-screen-element.html"><code>&lt;supports-screen&gt;</code>
+element in their manifest files. As part of testing, you should evaluate how
+your application is displayed in Compatibility Mode on different screens. </p>
+  </li>
+
+  <li><strong>Avoid performing layout orientation changes based on the
+acceletometer (or via other sensors)</strong>. Some Android-powered devices will
+automatically rotate the orientation (and all devices have the option to turn on
+auto-rotation), so if your application also attempts to rotate the orientation,
+it can result in strange behavior. In addition, if your application uses the
+accelerometer to detect shaking and you do not want to rotate the orientation,
+then you should lock the current orientation with <a
+href="{@docRoot}guide/topics/manifest/activity-element.html#screen">android:screenOrientation</a>.
+ </li>
+
+</ul>
+
+<h2 id="MigrateYourApps">Migrate Your Applications</h2>
+
+<p>If you want to use any of the new Android 1.6 APIs in your existing
+applications, you must first migrate the applications to the new Android
+platform version. Generally, migrating an application includes: </p>
+
+<ul>
+<li>Referencing the proper API Level in the application's manifest file, 
+and</li>
+<li>Resetting its project properties so that it is compiled against the Android 
+1.6 build target.</li>
+</ul>
+
+<p>Additionally, to run your application in the emulator, you need to
+create an AVD that uses the Android 1.6 system image. </p>
+
+<p class="note"><strong>Note:</strong> You only need migrate your application as
+described in this section if the application will actually use APIs
+<em>introduced</em> in the Android 1.6 platform (which are not available on
+devices running older versions of the Android platform). If your application
+does not use any new APIs, you can compile and run it without modification and
+not migration is necessary.</p>
+
+<h3>Reference the Proper API Level</h3>
+
+<p>If your application is using APIs introduced in Android 1.6, you must
+reference that dependency in the application's manifest file so that it can be
+deployed to devices running the Android 1.6 platform. </p>
+
+<p>Open the manifest file and locate the <code>minSdkVersion</code> attribute 
+in the <code>&lt;uses-sdk&gt;</code> manifest element. Set the value of 
+<code>minSdkVersion</code> to <code>"4"</code> (the API Level
+identifier corresponding to Android 1.6). Here's an example:</p>
+
+<pre>
+&lt;manifest>
+  ...
+  &lt;uses-sdk android:minSdkVersion="4" />
+  ...
+&lt;/manifest>
+</pre>
+
+<h3>Compile Against the Proper Build Target</h3>
+
+<p>Once you've changed the <code>minSdkVersion</code> value in your
+application's manifest, you need to set the application's project properties so
+that the application will be compiled against the Android 1.6 library. To do so,
+follow the steps below for your respective development environment.  </p>
+
+<h4 id="EclipseUsers">Eclipse Users</h4>
+
+<ol>
+  <li>Right-click on the individual project (in the Package Explorer)
+  and select <strong>Properties</strong>.</li>
+  <li>In the properties, open the Android panel and select a new Project Build Target.
+  Select "Android 1.6" to target the new platform (or "Google APIs" with the "4" 
+  API Level, if your application uses the Google Maps APIs).</li>
+  <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
+</ol>
+	
+<h4 id="AntUsers">Ant Users</h4>
+	
+<p>Use the <code>android</code> tool (located in
+<code><em>your_sdk</em>/tools/</code>) to create a new <code>build.xml</code>
+that references the new platform target. To see a list of available targets,
+execute:</p>
+
+<pre>android list targets</pre>
+
+<p>Select the target <code>id</code> that corresponds to the "Android 1.6" platform
+and pass it with the <code>--target</code> parameter when updating your project.
+For example:</p>
+
+<pre>android update project --path /path/to/my-project --target 2</pre>
+
+<p>If your application uses the Google Maps APIs (i.e., MapView), be certain to 
+select a Google APIs target.</p>
+
+<h3>Create an AVD that Uses the Android 1.6 Platform</h3>
+
+<p>Finally, you need to set up a new AVD that uses the Android 1.6 platform, so that 
+you can run your application in the emulator. 
+
+<p>To set up the new AVD, use the <code>android</code> tool, available in the
+<code>tools/</code> directory of the SDK. You can run the AVD manager by simply
+changing to the <code>tools/</code> directory and entering <code>android</code>
+at the command line. Click "New" to create the AVD and set its properties.</p>
+
+<p>When creating the AVD, make sure to select a target of "Android 1.6 - API
+Level 4". If your application uses the Google Maps APIs (MapView), select the
+target "Google APIs (Google Inc.) - API Level 4". </p>
+
+<p>For more information about running your application in an AVD, see <a
+href="{@docRoot}guide/developing/eclipse-adt.html#Running">Running Your
+Application (Eclipse)</a> or <a
+href="{@docRoot}guide/developing/other-ide.html#Running">Running Your
+Application (other IDEs)</a>. </p>
+
+<p>For general information about AVDs, see the <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
+Devices</a> document. </p>
+
+
+
+<div class="special">
+<p>If you have trouble migrating to the new version of the SDK, visit the 
+<a href="http://groups.google.com/group/android-developers">Android Developers Group</a>
+to seek help from other Android developers.</p>
+</div>
+
diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd
index 03eeb4b..130a92c 100644
--- a/docs/html/sdk/RELEASENOTES.jd
+++ b/docs/html/sdk/RELEASENOTES.jd
@@ -5,6 +5,198 @@
 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>
 
+<h2 id="1.6_r1">Android 1.6 SDK, Release 1</h2>
+
+<p>This SDK provides updates to the development tools and Android system that
+you use to create applications for compliant Android-powered devices. </p>
+
+<h3>Release Overview</h3>
+
+<p>This SDK release includes several new features for developers. Highlights of the
+changes include: </p>
+
+  <ul>
+    <li>Emulator support for multiple screen sizes/densities, including new
+skins. </li>
+    <li>Android SDK and AVD Manager, a graphical UI to let you manage your
+SDK and AVD environments more easily. The tool lets you create and manage 
+your <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
+Devices</a> and download new SDK packages (such as platform versions and 
+add-ons) into your environment.</li>
+    <li>Improved support for test packages in New Project Wizard</li>
+  </ul>
+
+<p>For details about the Android platforms included in the SDK &mdash; including
+bug fixes, features, and API changes &mdash; please read the Version Notes
+documents available at left. For a list of Android platforms included in this
+release, see the <a href="{@docRoot}sdk/1.6_r1/index.html">Download
+page</a>. Note that you can use the Android SDK and AVD Manager to download 
+additional platforms.</p>
+
+<h3>Installation and Upgrade Notes</h3>
+
+<p>If you've been developing an application using an Android 1.1 SDK, you need
+to make a few changes to your development environment to migrate to the new SDK.
+Tools and documentation are provided to assist you. No changes to the source
+code of an existing application should be needed, provided that your application
+is not using Android internal structures or APIs.</p>
+
+<p>To ensure that your existing application will work properly on a device
+running the latest version of the Android platform, you are strongly encouraged
+to migrate the application to the new SDK, compile it using the platform
+matching the application's original API Level, and run it against the most
+current platform. </p>
+
+<p>If you're installing the Android SDK for the first time, please see
+the instructions in <a
+href="{@docRoot}sdk/1.5_r1/installing.html">Installing the SDK</a>.
+
+<h3>ADT Plugin for Eclipse</h3>
+
+<p>An updated version of the ADT Plugin for Eclipse is available with the
+Android 1.6 SDK. The new version, ADT 0.9.3, provides several new
+features, including integrated support for the Android SDK and AVD Manager
+and zipalign tool. In addition, the New Project Wizard now
+lets you create a test package containing tests for your application. These
+features are described in the sections below. </p>
+
+<p>If you are developing in Eclipse with ADT and want to get started with the
+Android 1.6 SDK, you should download and install a compatible version of the ADT
+Plugin (0.9.3 or higher). </p>
+
+<p>The new version of ADT is downloadable from the usual remote update site or
+is separately downloadable as a .zip archive. For instructions on how to
+download the plugin, please see <a href="upgrading.html#UpdateAdt">Upgrading
+Your Eclipse Plugin</a>. </p>
+
+<h3>Android SDK and AVD Manager</h3>
+
+<p>The SDK offers a new tool called Android AVD Manager that lets you manage
+your SDK and AVD environments more efficiently. </p>
+
+<p>Using the tool, you can quickly check what Android platforms, add-ons,
+extras, and documentation packages are available in your SDK environment, what
+their versions are, and whether updated versions are available. You can then
+download one or more items from remote repositories and install them directly in
+your SDK environment. For example, the tool lets you obtain updates to SDK tools
+incrementally, as they are made available, without having to wait for the next
+SDK release. You can also download Android platform versions into your
+environment that were not included in the SDK package.</p>
+
+<p>The tool also lets you quickly create new AVDs, manage
+their properties, and run a target AVD from a single window. </p>
+
+<p>If you are developing in Eclipse with ADT, you can access the Android SDK 
+and AVD Manager from the <strong>Window</strong> menu. </p>
+
+<p>If you are developing in another IDE, you can access the Android SDK and 
+AVD Manager through the <code>android</code> command-line tool, located in the
+&lt;sdk&gt;/tools directory. You can launch the tool with a graphical UI by
+using the <code>android</code> command without specifying any options. You can
+also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
+You can still use <code>android</code> commands to create and manage AVDs, 
+including AVDs with custom hardware configurations.</p>
+
+<h3>Integration with zipalign</h3>
+
+<p>The Android system offers a performance optimization for installed
+application packages whose contained uncompressed files are all aligned on
+4-byte boundaries. For these .apks, the system can read the files by mmap'ing
+the zip file, rather than by copying all the data out of them. This reduces
+the amount of memory used by the application at run time. The SDK includes
+a tool called <code>zipalign</code> that you can run against your .apks, to
+align them properly and enable them to benefit from this optimization.</p>
+
+<p>The ADT Plugin and the Ant build tools both provide integrated support for
+aligning your application packages. After you build an .apk, the SDK tools can
+sign and then run <code>zipalign</code> against it. The SDK includes the
+standalone version of the <code>zipalign</code> tool, so you can run also run it
+manually from the command line if you choose. </p>
+
+<ul>
+  <li>If you are developing in Eclipse with ADT, support for
+<code>zipalign</code> is integrated into the Export Wizard. When you use the
+Wizard to export a signed application package, ADT signs and then automatically
+runs <code>zipalign</code> against the exported package. If you use the Wizard 
+to export an unsigned application package, then it will not zipalign the 
+package because zipalign must be performed only after the APK has been signed. 
+You must manually sign and zipalign the package after export. </li>
+  <li>If you are developing using Ant and are compiling in release mode, the
+build tools will automatically sign and then <code>zipalign</code> the
+application package, provided that you have specified the location of a valid
+keystore in the build properties file. If you are compiling in debug mode, the
+build tools will sign the package with the debug key and then <code>zipalign</code>
+it.</li>
+  <li>To use <code>zipalign</code> manually, change to the SDK tools directory
+and use the command syntax <code>$ zipalign 4 &lt;infile&gt;
+&lt;outfile&gt;</code></li>
+</ul>
+
+<p>In general, note that you must <code>zipalign</code> an application only
+<em>after</em> it has been signed, as signing will disrupt the package
+alignment.</p>
+
+<h3>Support for Test Packages in New Project Wizard</h3>
+
+<p>The New Project Wizard available in the ADT 0.9.3 now lets you add a test
+package containing Instrumentation or other classes of tests while you are 
+creating or importing a new Android application project. </p>
+
+<h3>New USB Driver for Windows</h3>
+
+<p>If you are using Windows and want to develop or test your application on an
+Android-powered device (such as the T-Mobile G1), you need an appropriate USB
+driver. 
+
+<p>The Windows version of the Android 1.6 SDK includes a new, WinUSB-based
+driver that you can install. The driver is compatible with both 32- and 64-bit
+versions of Windows XP and Vista. The driver represents an upgrade from the USB
+driver included in previous Android SDKs, although installing the new driver is
+not required. </p>
+
+<p>If you installed the USB driver from a previous SDK release and it is working
+properly, you do not need to upgrade to the new driver. However, we recommend
+upgrading if you have had any problems with the older driver or simply want
+to upgrade to the latest version.</p>
+
+<p>The USB driver files are located in the
+<code>&lt;SDK&gt;/usb_driver</code> directory. For driver installation or
+upgrade instructions, see  <a
+href="{@docRoot}guide/developing/device.html#WinUsbDriver">Installing the WinUSB
+Driver</a>.</p>
+</p>
+
+<h3>Emulator Skins, Android 1.6 Platform</h3>
+
+<p>The Android 1.6 platform included in the SDK provides a new set of emulator
+skins, including: </p>
+
+<ul>
+  <li>QVGA &mdash; 240 x 320, low density (120 dpi)</li>
+  <li>HVGA &mdash; 320 x 480, medium density (160 dpi)</li>
+  <li>WVGA800  &mdash; 480 x 800, high density (240 dpi)</li>
+  <li>WVGA854  &mdash; 480 x 854, high density (240 dpi)</li>
+</ul>
+
+<p>Besides these defaults, You can also create an AVD that overrides the default
+density for each skin, to create any combination of resolution/density (WVGA
+with medium density, for instance).  To do so, use the <code>android</code> tool
+command line to create a new AVD that uses a custom hardare configuration. See
+<a href="{@docRoot}guide/developing/tools/avd.html#createavd">Creating an
+AVD</a> for more information.</p>
+
+<h3>Other Notes and Resolved Issues</h3>
+
+<ul>
+  <li>This SDK release adds support for Eclipse 3.5 (Galileo) and deprecates
+support for Eclipse 3.3 (Europa). </li>
+  <li>We regret to inform developers that Android 1.6 will not include support
+for <a href="http://www.ietf.org/rfc/rfc2549">RFC 2549</a></li>
+  <li>The issue preventing adb from recognizing Samsung Galaxy devices (linux SDK
+only) has been fixed.</li>
+</ul>
+
+
 <h2 id="1.5_r3">Android 1.5 SDK, Release 3</h2>
 
 <p>Provides an updated Android 1.5 system image that includes permissions
diff --git a/docs/html/sdk/adt_download.jd b/docs/html/sdk/adt_download.jd
index d7b9ac3..3eb6831 100644
--- a/docs/html/sdk/adt_download.jd
+++ b/docs/html/sdk/adt_download.jd
@@ -26,24 +26,24 @@
   </tr>
 
   <tr>
-     <td>0.9.2</td>
-     <td><a href="http://dl-ssl.google.com/android/ADT-0.9.2.zip">ADT-0.9.2.zip</a></td>
+     <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>August 2009</nobr></em></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 (and later releases). Updated from 0.9.0. <em><nobr>6 May 2009</nobr></em></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.1 SDK and Android 1.0 SDK. <em><nobr>23 Sep 2008</nobr></em></td>
+     <td><nobr>Required for users of Android 1.0/1.1 SDKs. <em><nobr>23 Sep 2008</nobr></em></td>
   </tr>
 </table>
 
@@ -63,20 +63,19 @@
 
   <tr>
      <td>0.7.1</td>
-     <td>Required for users of Android 0.9 SDK beta. As of this version, <b>Eclipse 3.2 is no longer supported.</b>
-     Please upgrade to Eclipse Ganymede (3.4) or Europa (3.3) if you are still using 3.2. <em><nobr>18 Aug 2008</nobr></em></td>
+     <td>Required for users of the Android 0.9 SDK beta. <em><nobr>18 Aug 2008</nobr></em></td>
   </tr>
   <tr>
      <td>0.4.0</td>
-     <td>Required if you are using the M5 SDK. See the SDK Release Notes for details on changes and enhancements in this version. <em><nobr>12 Feb 2008</nobr></em></td>
+     <td>Required for users of the Android M5 Early Look SDK. <em><nobr>12 Feb 2008</nobr></em></td>
   </tr>
   <tr>
      <td>0.3.3</td>
-     <td>Some significant enhancements (see m3-rc37 SDK Release Notes). <em><nobr>14 Dec 2007</nobr></em></td>
+     <td>Required for users of the Android M3-RC37 Early Look SDK. <em><nobr>14 Dec 2007</nobr></em></td>
   </tr>
   <tr>
      <td>0.3.1</td>
-     <td>Initial Release. Required for Android m3-rc20 SDK and Android m3-rc22 SDK.<em><nobr>21 Nov 2007</nobr></em></td>
+     <td>Initial Release. Required for users of the Android M3-RC20/22 SDKs.<em><nobr>21 Nov 2007</nobr></em></td>
   </tr>
 </table>
 </p>
diff --git a/docs/html/sdk/android-1.6.jd b/docs/html/sdk/android-1.6.jd
new file mode 100644
index 0000000..29dceec
--- /dev/null
+++ b/docs/html/sdk/android-1.6.jd
@@ -0,0 +1,235 @@
+page.title=Android 1.6 Version Notes
+
+@jd:body
+
+<p>
+<em>Date:</em> September 2009<br />
+<em>API Level:</em>&nbsp;<strong>4</strong></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">New Features</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,
+deployable to Android-powered handsets starting September 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/developing/">API Levels</a> document. </p>
+
+<h2 id="features">New Features</h2>
+
+<p>For a list of new system features, see the <a
+href="http://developer.android.com/sdk/android-1.6-highlights.html">Android 1.6 Platform
+Highlights</a> document.</p>
+
+<h2 id="apps">Built-in Applications</h2>
+
+<p>The system image includes these built-in applications:</p>
+	<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>
+	<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>
+
+<h2 id="locs">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>
+
+<table style="border: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>
+<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>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>French, France (fr_FR)</li>
+<li>French, Belgium (fr_BE)</li>
+<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>
+</td>
+</tr>
+</table>
+
+<p>Localized UI strings match the locales that are displayable in 
+the emulator, accessible through the device Settings application.</p>
+
+<h2 id="api-changes">API Changes</h2>
+
+<h3 style="padding-top:0">Overview</h3>
+
+<ul>
+
+<li>Search framework</li>
+  <ul>
+    <li>Applications can now expose relevant content to users as search suggestions in the Quick Search Box, a new device-wide search capability that is accessible from the home screen. To support this, the search framework adds new attributes to the searchable metadata file. For complete information, see the {@link android.app.SearchManager SearchManager} documentation.</li>
+  </ul>
+</li>
+
+<li>Accessibility framework</li>
+  <ul>
+    <li>New {@link android.view.accessibility android.accessibility} package
+that includes classes for capturing accessibility events and forwarding them to
+an {@link android.accessibilityservice AccessibilityService} handler. </li>
+    <li>New {@link android.accessibilityservice AccessibilityService} package
+that lets your application track user events and provide visual, audible, or
+haptic feedback to the user. </li>
+  </ul>
+</li>
+
+<li>Gestures</li>
+  <ul>
+    <li>New {@link android.gesture gesture} API for creating, recognizing,
+loading, and saving gestures.</li>
+  </ul>
+</li>
+
+<li>Text-to-speech</li>
+  <ul>
+    <li>New package {@link android.speech.tts android.speech.tts} provides
+classes for synthesizing speech from text, for immediate playback or to create a
+sound file.</li>
+  </ul>
+</li>
+
+<li>Permissions</li>
+  <ul>
+
+    <li>New permissions for 
+{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE CHANGE_WIFI_MULTICAST_STATE}, 
+{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}, 
+{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS},
+{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}, and  
+{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}.</li>
+  </ul>
+</li>
+
+<li>Graphics</li>
+  <ul>
+    <li>Classes in {@link android.graphics android.graphics} now support scaling
+for different screen densities.</li>
+  </ul>
+</li>
+
+<li>Telephony</li>
+  <ul>
+    <li>New {@link android.telephony.SmsManager SmsManager} and other classes
+for sending and receiving SMS messages.</li>
+  </ul>
+</li>
+
+<li>Utilities</li>
+  <ul>
+    <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for
+determining the density of the current device screen.</li>
+  </ul>
+</li>
+
+<li>Application-defined support for various screen densities</li>
+   <p>Applications can now use a new element in their manifest files, <a
+href="{@docRoot}guide/topics/manifest/supports-screen-element.html">&lt;supports-
+screen&gt;</a> to indicate to the specific screen resolutions/densities that
+they are designed to support. When the application is installed on a device
+whose screen is not explicitly supported by the application, the system
+runs the application in Compatibility Mode, where possible. </p>
+</li>
+</ul>
+
+<h3 id="api-diff">API Change Details</h3>
+
+<p>For a detailed view of API changes in this platform (API Level 4), see the <a
+href="{@docRoot}sdk/api_diff/4/changes.html">API Differences Report</a>.</p>
+
+
+
+
+
+
diff --git a/docs/html/sdk/preview/features.jd b/docs/html/sdk/preview/features.jd
new file mode 100644
index 0000000..81b4ff6
--- /dev/null
+++ b/docs/html/sdk/preview/features.jd
@@ -0,0 +1,4 @@
+sdk.redirect=true
+
+@jd:body
+
diff --git a/docs/html/sdk/preview/index.jd b/docs/html/sdk/preview/index.jd
index a6a6ca2..81b4ff6 100644
--- a/docs/html/sdk/preview/index.jd
+++ b/docs/html/sdk/preview/index.jd
@@ -1,194 +1,4 @@
-page.title=Android 1.6 Early Look SDK
-sdk.redirect=0
-sdk.version=1.6
-sdk.preview=true
-
-sdk.date=August 2009
-
-sdk.win_download=android-sdk-windows-1.5_r3.zip
-sdk.win_bytes=191477853
-sdk.win_checksum=1725fd6963ce69102ba7192568dfc711
-
-sdk.mac_download=android-sdk-mac_x86-1.5_r3.zip
-sdk.mac_bytes=183024673
-sdk.mac_checksum=b1bafdaefdcec89a14b604b504e7daec
-
-sdk.linux_download=android-sdk-linux_x86-1.5_r3.zip
-sdk.linux_bytes=178117561
-sdk.linux_checksum=350d0211678ced38da926b8c9ffa4fac
-
-adt.zip_download=ADT-0.9.2.zip
-adt.zip_version=0.9.2
-adt.zip_bytes=178117561
-adt.zip_checksum=350d0211678ced38da926b8c9ffa4fac
+sdk.redirect=true
 
 @jd:body
 
-<h2 id="overview">SDK Overview</h2>
-
-<p>This Early Look SDK provides the tools, libraries, and system images that you need to start developing and testing applications on the next version of the Android platform &mdash; Android 1.6.</p>
-
-<p>The sections below provide information about the contents of the SDK, as well as any applicable release notes.</p>
-
-<p>This Early Look SDK is provided for development and testing purposes only. You can use it to get familiar with the new Android 1.6 framework APIs and the UI and features of the Android 1.6 system, and you can use it to begin testing your existing applications with the new API and system. However, this SDK is not suitable for compiling applications for deployment to Android-powered devices running the Android 1.6 platform, when such devices are available. For more information, see <a href="#provisional">Framework API and Provisional API Level</a>. </p>
-
-<p>The sections below provide information about the contents of the SDK, as well as any applicable release notes.</p>
-
-<p class="note"><strong>Note:</strong> This is an <em>early look SDK only</em>. 
-The tools and documentation are not complete. The API reference documentation for the early look 
-SDK is provided only in the downloadable SDK package &mdash; documentation for this early 
-look release is <em>not</em> available at <a href="http://developer.android.com">http://developer.android.com</a>. 
-To access the API reference for the early
-look SDK, see the documentation in your SDK's <em>docs/reference/</em> directory.
-<br/><br/>
-Additionally, note that the APIs provided in this SDK are subject to change until the final 
-Android 1.6 SDK is released. You should not compile any applications for distribution using 
-this version of the SDK. If you do so, your applications will not function properly when deployed 
-to Android-powered devices running the final Android 1.6 platform. Please wait for the final 
-Android 1.6 SDK before distributing applications built on the Android 1.6 system image.
-</p>
-
-<h3 id="provisional">Framework API and Provisional API Level</h3>
-
-<p>This SDK gives you early access to the framework API that will be offered in Android 1.6. However, at the time of this release, The API specification for Android 1.6 was not yet final, meaning that it is possible that the API could change before the final release of the Android 1.6 platform. </p>
-
-<p>To help distinguish the API offered in the Early Look SDK from that of the final Android 1.6 platform, this SDK assigns a provisional API Level identifier &mdash; <strong>Donut</strong> &mdash; to its Early Look framework API. When the Android 1.6 framework API specification is final, the API Level identifier will change to <strong>4</strong> and the "Donut" identifier will no longer be supported. </p>
-
-<p>The "Donut" framework API is for development only and is not supported as a platform for compiling applications for deployment or publishing. The API Level of "Donut" will not be supported by any Android-powered devices in the field, including those running the Android 1.6 platform. This means that when the final Android 1.6 platform is released, you will need to change your application's <code>android:minSdkVersion</code> manifest attribute to reference the API Level of "4", rather than "Donut", if your application is using Android 1.6 APIs. You would then need to recompile your application before publishing it. </p>
-
-<p>The use of a provisional API Level in this SDK 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 Android 1.6.</p>
-
-<p>To develop using the Early Look framework API, you must reference an API Level of "Donut" in your application's manifest. </p>
-
-<p>Specifically, you must define a <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="Donut" /&gt;
-  ...
-&lt;/manifest&gt;</pre>
-
-<p>If you are developing in Eclipse with ADT, please read the next section for information about the ADT upgrade that supports the Early Look SDK's provisional API Level. </p>
-
-
-<h3>ADT Plugin for Eclipse</h3>
-
-<p>An updated version of the ADT Plugin for Eclipse is available in connection with the Android 1.6 Early Look SDK. The new version, ADT 0.9.2, provides support for the provisional API Level "Donut" that is offered in the Early Look SDK and includes several new features and improvements. These changes mean that this Early Look SDK does not work with older Eclipse plugins (ADT 0.9.1).</li>
-
-<p>If you are developing in Eclipse with ADT and want to get started with Android 1.6 Early Look SDK, you <em>must</em> download and install the correct version of the ADT Plugin (0.9.2 or higher). </p>
-
-<p>The new version of ADT is downloadable from the usual remote update site or is separately downloadable as a .zip archive. For instructions on how to download the plugin, please see <a href="upgrading.html#UpdateAdt">Upgrading Your Eclipse Plugin</a>. </p>
-
-<h3>Android AVD Manager</h3>
-
-<p>The SDK offers a new tool called Android AVD Manager that lets you manage your AVDs more efficiently. For example, you can quickly create new AVDs, manage their properties, and run a target AVD from a single window. 
-
-If you are developing in Eclipse with ADT, you can access the Android AVD Manager from the <strong>Window</strong> menu. </p>
-
-If you are developing in another IDE, you can access the AVD manager capabilities through the <code>android</code> command-line tool, located in the &lt;sdk&gt;/tools directory. You can launch the tool with a graphical UI by using the <code>android</code> command without specifying any options. The command-line version of the tool is also still available.</p>
-
-<h3>SDK Component Updater</h3>
-
-<p>This SDK includes a new SDK Component Updater tool that lets you download updated versions of SDK components individually into your environment, as soon as they become available. </p>
-
-<p>The Updater provides a graphical UI that lets you quickly check what Android platforms, add-ons, extras, and documentation packages are available in your SDK environment, what their versions are, and whether updated versions are available. Using the Updater, you can download one or more items from the remote repository and install them directly in your SDK environment. For example, the updater lets you receive updates to SDK tools incrementally, as they are made available, without having to wait for the next SDK release. </p>
-
-<p>To access the Updater, use the <code>android</code> command-line tool, located in the &lt;sdk&gt;/tools directory. You can launch the Updater by using the <code>android</code> command without specifying any options. </p>
-
-<p>In ADT, it you can also access the Updater through the Android AVD Manager tool. </p>
-
-<h3>Support for Test Packages in New Project Wizard</h3>
-
-<p>The New Project Wizard available in the ADT 0.9.2 now lets you add a test package containing JUnit or other classes of tests while you are creating or importing a new Android application project. </p>
-
-
-<h3>Other Notes and Resolved Issues</h3>
-
-<ul>
-<li>This SDK release adds support for Eclipse 3.5 (Galileo) and no longer formally supports Eclipse 3.3 (Europa). </li>
-<li>The issue preventing adb from recognizing Samsung Galaxy devices (linux SDK only) has been fixed.</li>
-</ul>
-
-<h2>SDK Contents</h2>
-
-<h4>Development tools</h4>
-
-<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>&lt;sdk&gt;/tools/</code> directory. 
-
-<p>The tools package in this SDK includes updates from those provided in the previous SDK. The tools use the same project structure as in the previous SDK (Android 1.5), but have been updated to support the the provisional API Level identifier "donut". If you have application projects developed in the Android 1.5 SDK, you can migrate them to the latest SDK without modification. For more information about how to migrate, see <a href="upgrading.html">Upgrading the SDK</a>.
-
-<p>For more information about the new tools features, see the <a href="#overview">SDK Overview</a> section above. 
-
-<h4 id="system_images">Android Platforms</h4>
-
-<p>This SDK includes multiple Android platform versions that you can use to develop applications. For each version, both a fully compliant Android library and system image are provided. The table below lists the platform versions included in this SDK. For more information about a platform version &mdash; features, applications included, localizations, API changes, and so on &mdash; see its Version Notes. </p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Platform</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.6 Early Look (Android Donut)</nobr></td>
-<td  width="5%">Donut</td>
-<td  width="5%"></td>
-<td>Includes an Early Look Android 1.6 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).</td>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.5</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version Notes</a></nobr></td>
-<td>Includes a standard Android 1.5 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).</td>
-</tr>
-</table>
-
-<h4 id="system_images">SDK Add-Ons</h4>
-
-<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-on listed below. The Android system API Level required by the add-on is noted.</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%">Donut</td>
-<td  width="5%">&nbsp;</td>
-<td>Includes the com.google.android.maps external library, an Early Look 
-Android 1.6 system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td  width="5%">3</td>
-<td  width="5%">&nbsp;</td>
-<td>Includes the com.google.android.maps external library, a compliant 
-system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the <a href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample code itself
-in the <code>&lt;sdk&gt;/platforms/&lt;platform&gt;/samples/</code> directory of the SDK package. Note the new location &mdash; the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory. </p>
-
-<p>For example, to view or build the samples available for the Android 
-1.6 Early Look platform (AVD target "Android Donut"), you will find the samples in the <code>&lt;sdk&gt;/platforms/android-Donut/samples/</code> directory of the SDK package. </p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package includes a full set of local documentation. To view it, open the <code>&lt;sdk&gt;/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. </p>
-
-
-<hr/>
-
-<div class="special">
-<p>Feedback on this preview SDK is welcome on the public Android Open Source forums:</p>
-<p style="margin-left:2em;"><a href="http://source.android.com/discuss">http://source.android.com/discuss</a></p>
-</div>
-
-
diff --git a/docs/html/sdk/preview/installing.jd b/docs/html/sdk/preview/installing.jd
index 05e7ab5..1e6b26b 100644
--- a/docs/html/sdk/preview/installing.jd
+++ b/docs/html/sdk/preview/installing.jd
@@ -1,346 +1,5 @@
-page.title=Installing the Android SDK
-sdk.version=1.6
-sdk.preview=true
-sdk.date=August 2009
+sdk.redirect=true
 
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
-
-  <h2>In this document</h2>
-  <ol>
-    <li><a href="#Preparing">Preparing for Installation</a></li>
-    <li><a href="#Installing">Installing the SDK</a></li>
-    <li><a href="#InstallingADT">Installing the ADT Plugin for Eclipse</a>
-      <ol>
-        <li><a href="#Troubleshooting">Troubleshooting ADT Installation</a></li>
-      </ol>
-    </li>
-    <li><a href="#NextSteps">Next Steps</a></li>
-    <li><a href="#InstallationNotes">Installation Notes</a></li>
-  </ol>
-
-</div>
-</div>
-
-<p>This page describes how to install the Android Early Look SDK and set up your
-development environment.</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 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version
-of the Android SDK, please read <a href="upgrading.html">Upgrading the SDK</a>, instead.
-</p>
-
-
-<h2 id="Preparing">Preparing 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 on 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">Installing the SDK</h2>
-
-<p>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>. 
-The directory contains a local copy of the documentation (accessible by opening
-<code>documentation.html</code> in your browser) and the subdirectories 
-<code>tools/</code>, <code>add-ons/</code>, <code>platforms/</code>, and others. Inside
-each subdirectory of <code>platforms/</code> you'll find <code>samples/</code>, which includes
-code samples that are specific to each version of the platform.</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, 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">Installing the ADT Plugin for Eclipse</h2>
-
-<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT), that is designed to give you a powerful,
-integrated environment in which to build Android applications. It
-extends the capabilites of Eclipse to let you quickly set up new Android
-projects, create an application UI, add components based on the Android
-Framework API, debug your applications using the Android SDK tools, and even export
-signed (or unsigned) APKs in order to distribute your application.</p>
-
-<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 Eclipse 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.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="45%">
-<!-- 3.3 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates</strong> 
-&gt; <strong>Find and Install...</strong>. </li>
-    <li>In the dialog that appears, select <strong>Search for new features to install</strong> 
-and click <strong>Next</strong>. </li>
-    <li>Click <strong>New Remote Site</strong>. </li>
-    <li>In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and 
-    enter the URL:
-        <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>If you have trouble aqcuiring the plugin, try using "http" in the URL,
-        instead of "https" (https is preferred for security reasons).</p>
-        <p>Click <strong>OK</strong>.</p> </li>
-    <li>You should now see the new site added to the search list (and checked).
-        Click <strong>Finish</strong>. </li>
-    <li>In the subsequent Search Results dialog box, select the checkbox for the
-    "Android Plugin".
-    This will select the nested tools: "Android DDMS" and "Android Development Tools". 
-    Click <strong>Next</strong>.</li>
-    <li>Read and accept the license agreement, then click <strong>Next</strong>. </li>
-    <li>On the following Installation window, click <strong>Finish</strong>. </li>
-    <li>The ADT plugin is not digitally signed. Accept the installation anyway
-        by clicking <strong>Install All</strong>. </li>
-    <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<!-- 3.4 steps -->
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.</li>
-    <li>In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
-    <li>Click <strong>Add Site...</strong> </li>
-    <li>Enter the Location:
-      <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>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>
-</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: <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>
-
-
-<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, <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 the 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 default install instructions (above).</li>
-  <li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
-      In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong></li>
-  <li>Browse and select the downloaded zip file.</li>
-  <li>Follow the remaining procedures, above, starting from steps 5.</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="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;platfrom&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="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="{@docRoot}sdk/{@sdkCurrent}/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/preview/requirements.jd b/docs/html/sdk/preview/requirements.jd
index 15731e0..1e6b26b 100644
--- a/docs/html/sdk/preview/requirements.jd
+++ b/docs/html/sdk/preview/requirements.jd
@@ -1,45 +1,5 @@
-page.title=System Requirements
-sdk.version=1.6
-sdk.preview=true
+sdk.redirect=true
+
 @jd:body
 
-<p>The sections below describe the system and software requirements for developing 
-Android applications using the Android SDK tools included in Android 
-<?cs var:sdk.version ?> SDK<?cs if:sdk.rel.id ?>, Release <?cs var:sdk.rel.id ?><?cs /if ?>. </p>
 
-<h3>Supported Operating Systems</h3>
-<ul>
-  <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
-  <li>Mac OS X 10.4.8 or later (x86 only)</li>
-  <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
-</ul>
-
-<h3>Supported Development Environments</h3>
-<ul>
-  <li>Eclipse IDE
-    <ul>
-      <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede), 3.5 (Galileo)
-        <ul>
-        <li><strong>Note:</strong> Eclipse 3.3 has not been fully tested with ADT 0.9.2 and support can no longer be guaranteed. We suggest you upgrade to 
-          Eclipse 3.4 or 3.5.</li>
-        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
-        <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li>Eclipse Classic IDE package is not supported.</li>
-        </ul>
-      </li>     
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-  <li>Other development environments or IDEs
-    <ul>
-      <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
-      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
-      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
-    </ul>
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. 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. </p>
\ No newline at end of file
diff --git a/docs/html/sdk/preview/upgrading.jd b/docs/html/sdk/preview/upgrading.jd
index da2eb25..1e6b26b 100644
--- a/docs/html/sdk/preview/upgrading.jd
+++ b/docs/html/sdk/preview/upgrading.jd
@@ -1,258 +1,5 @@
-page.title=Upgrading the SDK
-sdk.version=1.6
-sdk.preview=true
+sdk.redirect=true
+
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
-
-  <h2>Upgrading the SDK</h2>
-  <ul>
-    <li>ADT 0.9 / 0.9.1 is not compatible with the Android 1.6 Early Look SDK. You must upgrade
-    ADT to 0.9.2.</li>
-    <li>The Early Look SDK uses a special provisional API Level, "Donut", which is required
-    to compile against the new Donut platform.</li>
-  </ul>
-
-  <h2>In this document</h2>
-  <ol>
-    <li><a href="#Install">Install the SDK</a></li>
-    <li><a href="#UpdateAdt">Update Your Eclipse ADT Plugin</a></li>
-    <li><a href="#RunYourApps">Run Your Applications</a></li>
-    <li><a href="#ConvertYourApps">Convert Your Applications</a></li>
-  </ol>
-  
-  <h2>Migrating references</h2>
-  <ol>
-    <li><a href="{@docRoot}sdk/api_diff/4/changes.html">Android 1.6 Early Look API Differences</a></li>
-  </ol>
-
-</div>
-</div>
-
-<p>This document describes how to move your development environment and existing
-Android applications from an Android 1.5 SDK to the Android 1.6 Early Look SDK.
-If you are migrating applications from an SDK older than 1.5, please also read the upgrading
-document available in the Android 1.5 SDK package.</p>
-
-<p>There are several compelling reasons to upgrade, such as new SDK tools
-that make developing more efficient and new APIs that allow you to expand the feature-set
-of your applications. However, even if you or your applications don't require these enhancements,
-it's important that you upgrade to ensure that your applications run properly on the upcoming
-Android platform.</p>
-
-<p>The Android 1.6 platform will soon be deployable to devices around the world.
-If you have already released Android applications to the public, you should
-test the forward-compatibility of your applications on the latest version of the platform
-as soon as possible. It's unlikely that you'll encounter breakage in your applications, but
-in the interest of maintaining the best user experience, you should take no risks.
-So, please install the new Android SDK and test your applications on the new platform.</p>
-
-<!-- NOT AVAILABLE FOR THE PREVIEW
-<p>For more information on new SDK features and system changes, 
-see the <a href="{@docRoot}sdk/android-1.5.html">Android 1.5 Version Notes</a>.</p>
--->
-
-<h2 id="Install">Install the SDK</h2>
-
-<!--
-<p>If you haven't yet downloaded the SDK, <a href="index.html">download from here</a> 
-and unpack it into a safe location.</p>
--->
-<p>Now that you have the Android 1.6 Early Look SDK,
-you need to perform some of the regular installation steps.</p>
-
-
-<p>If you had previously setup your <code>PATH</code> variable to point to the SDK tools directory, 
-then you need to update it to point to the new SDK. For example, for a 
-<code>.bashrc</code> or <code>.bash_profile</code> file:</p>
-<pre>export PATH=$PATH:<em>&lt;your_sdk_dir></em>/tools</pre>
-
-
-<h2 id="UpdateAdt">Update Your Eclipse ADT Plugin</h2>
-
-<p>If you don't use Eclipse for development,
-skip to <a href="#RunYourApps">Run Your Applications</a>.</p>
-
-<!--
-<p><em>If you installed ADT 0.9.2 with the Android 1.6 Early Look SDK, there have been
-additional changes, so please continue with this guide and update ADT.</em></p>
--->
-
-<p>A new ADT plugin (version 0.9.2) is required for the Android 1.6 Early Look SDK.
-With ADT 0.9.2, you can still compile your applications against 
-multiple platform versions, such as Android 1.5. However, previous versions
-of ADT will not work with the Android 1.6 Early Look SDK, so you must upgrade
-to ADT 0.9.2.</p>
-
-<p>If you're currently using a version of ADT <em>older</em> than version 0.9, then you must
-uninstall ADT before you proceed (read how to
-<a href="http://developer.android.com/sdk/1.5_r3/upgrading.html#uninstallAdt">Uninstall
-your previous ADT plugin</a>). If you currently have version 0.9 or 0.9.1, then you don't 
-need to uninstall and can continue with the procedure below.</p>
-
-<h3 id="installAdt">Install the 0.9.2 ADT plugin</h3>
-
-<p>To install the new ADT plugin, follow the steps below for your respective version of Eclipse.</p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="50%">
-<!-- 3.3 steps -->
-<ol>
-    <li>Select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; 
-      <strong>Find and Install</strong>. </li>
-    <li>Select <strong>Search for new features to install</strong>.</li>
-    <li>Select the Android plugin entry by checking the box next to it, 
-      then click <strong>Finish</strong>.
-      <p>(Your original entry for the plugin should still be here. If not, see the guide
-      to <a href="installing.html#installingplugin">Installing the ADT Plugin</a>.)
-      </p></li>
-    <li>In the results, expand the entry for the Android plugin and
-      be sure that "Developer Tools" is checked, then click <strong>Next</strong>.
-      (This will install "Android DDMS" and "Android Development Tools".)</li>
-    <li>Read and accept the license agreement, then click <strong>Next</strong>.
-    <li>In the next window, click <strong>Finish</strong> to start installation.</li>
-    <li>The ADT plugin is not digitally signed. Accept the installation anyway by clicking 
-    <strong>Install All</strong>.</li>
-    <li>Restart Eclipse.</li>
-</ol>
-</td>
-<td>
-<!-- 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>Expand the entry for the Andriod plugin (may be listed as the location URL)
-      and select "Developer Tools" by checking the box next to it, then click 
-      <strong>Install</strong>.</li>
-    <li>On the next window, "Android DDMS" and "Android Development Tools" 
-    should both be checked. Click <strong>Finish</strong>.</li>
-    <li>Restart Eclipse.</li>
-</ol>
-</td>
-</tr>
-</table>
-
-<p>If you encounter problems with this update procedure, try performing a fresh installation. 
-Ensure your current ADT is fully uninstalled and then
-follow the guide to <a href="installing.html#InstallingADT">Installing the ADT Plugin
-for Eclipse</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="RunYourApps">Run Your Applications</h2>
-
-<p>Now that you have installed the Android 1.6 Early Look SDK, we encourage you
-to run each of your applications in an instance
-of the emulator that's running the new Android 1.6 system image. It's possible (however, unlikely) 
-that you'll encounter unexpected behavior in your application when you run your applications on
-the new system image. Whether you believe your application will be affected by 
-platform changes or not, it's very important that you test the application's 
-forward-compatibility.</p>
-
-<p>To test forward-compatibility, simply run your application, as-is, on an instance of the Android
-Emulator that uses an AVD targeted to "Android Donut (Preview)":</p>
-
-<ol>
-  <li>Make no changes to your application code.</li>
-  <li>Create a new AVD that's targeted to the "Donut" platform.</li>
-  <li>Launch your application in an emulator running the new AVD.</li>
-  <li>Perform normal testing on your application to ensure everything works as expected.</li>
-</ol>
-
-<p>For more information on creating an AVD and launching your application refer to the 
-<a href="{@docRoot}guide/developing/eclipse-adt.html#Running">Eclipse guide to 
-Running Your Application</a> or the 
-<a href="{@docRoot}guide/developing/other-ide.html#Running">Ant guide to 
-Running Your Application</a>, depending on your development environment.</p>
-
-
-<h2 id="ConvertYourApps">Convert Your Applications</h2>
-
-<p>If you want to fully utilize new APIs introduced with the Android 1.6 Early Look SDK,
-then you'll need to convert your application to compile against the new "Donut" platform.</p>
-
-<p>First, you need to change the value of the <code>minSdkVersion</code> attribute in
-the <code>&lt;uses-sdk></code> manifest element. While
-running your application against the Donut platform included with the Early Look SDK, you
-<strong>must</strong> set the <code>minSdkVersion</code> value to "Donut". For example:</p>
-
-<pre>
-&lt;manifest>
-  ...
-  &lt;uses-sdk android:minSdkVersion="Donut" />
-  ...
-&lt;/manifest>
-</pre>
-
-<p>This value is required only while compiling against the Donut platform included with
-the Android 1.6 Early Look SDK. Once the final SDK is made
-available for Android 1.6, you will need to change this value.
-For more information, read about the <a href="index.html#provisional">Framework API and
-Provisional API Level</a>.</p>
-
-<p>Once you've changed the <code>minSdkVersion</code> value in your application's manifest, 
-continue with the procedures below to convert your applications.</p>
-
-<h3 id="EclipseUsers">Eclipse users</h3>
-
-<ol>
-	<li>Right-click on the individual project (in the Package Explorer)
-	   and select <strong>Properties</strong>.</li>
-	<li>In the properties, open the Android panel and select a new Project Build Target.
-	    Select "Android Donut (Preview)" to target the new
-	    platform (or "Google APIs" with the "Donut" platform if your application uses the Maps APIs).</li>
-	<li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-	
-	<p>Remember that you must create an AVD that targets the same platform in order to run the emulator.
-  Continue with the
-	<a href="{@docRoot}guide/developing/eclipse-adt.html#Running">Eclipse guide to
-	Running Your Application</a>. During the procedure to Running Your Application, select a "deployment
-  target" or the AVD that includes the "Donut" platform. If your application utilizes the Google Maps APIs (i.e.,
-	MapView), be certain to select a target that includes the Google APIs.</p>
-	
-	
-<h3 id="AntUsers">Ant users</h3>
-	
-	<p>Use the <code>android</code> tool (located in <code><em>your_sdk</em>/tools/</code>)
-	to create a new <code>build.xml</code> that references
-	the new platform target. To see a list of available targets, execute:</p>
-	
-	<pre>android list targets</pre>
-	
-	<p>Select the target <code>id</code> that corresponds to the "Donut" platform and pass it with the
-	<code>--target</code> parameter when updating your project. For example:</p>
-	
-	<pre>android update project --path /path/to/my-project --target 2</pre>
-
-<p>Remember that you must create an Android Virtual Device (AVD) that's targeted to the
-	same platform before you can run the updated application an instance
-	of the emulator. Please continue with the
-	<a href="{@docRoot}guide/developing/other-ide.html#Running">Ant guide to
-	Running Your Application</a>. During the procedure to Running Your Application, select a "deployment
-  target" for the AVD that includes the "Donut" platform.
-	If your application utilizes the Google Maps APIs (i.e.,
-	MapView), be certain to select a target that includes the Google APIs.</p>
-
-
-<div class="special">
-<p>If you have additional trouble updating your code, visit the 
-<a href="http://groups.google.com/group/android-developers">Android Developers Group</a>
-to seek help from other Android developers.</p>
-</div>
-
diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs
index c08d75e..64af012 100644
--- a/docs/html/sdk/sdk_toc.cs
+++ b/docs/html/sdk/sdk_toc.cs
@@ -74,6 +74,7 @@
         <span class="zh-TW">系統影像版本資訊</span>
     </h2>
     <ul>
+      <li><a href="<?cs var:toroot ?>sdk/android-1.6.html">Android 1.6 Version Notes</a></li>
       <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>
@@ -96,6 +97,7 @@
         <span class="zh-TW">較舊的 SDK 發行版本</span>
     </h2>
     <ul>
+      <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>
