Doc change: Move framework api change info higher in platform notes documents.
Small adjustment to compatibility doc.

Change-Id: I2af896292b00323d7f4eb2c828c8dea36b9e94ad
diff --git a/docs/html/guide/practices/compatibility.jd b/docs/html/guide/practices/compatibility.jd
index c91ab7f..bb7a72e 100644
--- a/docs/html/guide/practices/compatibility.jd
+++ b/docs/html/guide/practices/compatibility.jd
@@ -36,15 +36,16 @@
 variety of hardware.</p>
 
 <p>Fortunately, Android has built-in tools and support that make it easy for
-your apps to do that, while at the same time maintaining control of what types
-of devices your app is available to. If you do your work properly, users
+your apps to do that, while at the same time letting you maintain control of
+what types of devices your app is available to. With a bit of forethought and
+some minor changes in your app's manifest file, you can ensure that users
 whose devices can’t run your app will never see it in the Android Market, and
 will not get in trouble by downloading it. This page explains how you can
 control which devices have access to your apps, and how to prepare your apps to
 make sure they reach the right audience.</p>
 
 
-<h3 id="defined">What does “Compatibility” mean?</h3>
+<h3 id="defined">What does “compatibility” mean?</h3>
 
 <p>A device is “Android compatible” if it can correctly run apps written for the
 <em>Android execution environment</em>. The exact details of the Android execution
diff --git a/docs/html/guide/practices/screens_support.jd b/docs/html/guide/practices/screens_support.jd
index 45e3e49..2863fb2 100644
--- a/docs/html/guide/practices/screens_support.jd
+++ b/docs/html/guide/practices/screens_support.jd
@@ -171,7 +171,9 @@
 
 <p>The table below lists some of the more common screens supported
 by Android and illustrates how the platform maps them to generalized screen
-configurations.</p>
+configurations. Some devices use screens that are not specifically listed
+in the table &mdash; the platform maps those to the same set generalized
+screen configurations. </p>
 
 <p class="table-caption" id="screens-table"><strong>Table 1.</strong> Examples of
 device screens supported by Android.</p> 
diff --git a/docs/html/sdk/android-1.5.jd b/docs/html/sdk/android-1.5.jd
index ab74631..1d6e0ad 100644
--- a/docs/html/sdk/android-1.5.jd
+++ b/docs/html/sdk/android-1.5.jd
@@ -10,25 +10,31 @@
 <div id="qv-wrapper">
 <div id="qv">
 
-  <h2>In this document</h2>
-  <ol>
-	<li><a href="#features">Platform Highlights</a></li>
-	<li><a href="#relnotes">Revisions</a></li>
-	<li><a href="#apps">Built-in Applications</a></li>
-	<li><a href="#locs">Locales</a></li>
-	<li><a href="#skins">Emulator Skins</a></li>
-	<li><a href="#api">Framework API</a>
-        <ol>
-	<li><a href="#api-level">API level</a></li>
-	<li><a href="#api-changes">API changes summary</a></li>
-	<li><a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API differences report &raquo;</a> </li>
-        </ol></li>
-  </ol>
+<h2>In this document</h2>
+<ol>
+  <li><a href="#features">Platform Highlights</a></li>
+  <li><a href="#relnotes">Revisions</a></li>
+  <li><a href="#api-level">API Level</a></li>
+  <li><a href="#api">Framework API Changes</a>
+  <li><a href="#apps">Built-in Applications</a></li>
+  <li><a href="#locs">Locales</a></li>
+  <li><a href="#skins">Emulator Skins</a></li>
 
-  <h2>See Also</h2>
-  <ol>
-    <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
-  </ol>
+    </ol>
+  </li>
+</ol>
+
+<h2>Reference</h2>
+<ol>
+<li><a
+href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
+Differences Report &raquo;</a> </li>
+</ol>
+
+<h2>See Also</h2>
+<ol>
+  <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
+</ol>
 
 </div>
 </div>
@@ -87,7 +93,8 @@
 </script>
 <style>
 .toggleable {
-padding: .25em 1em;
+  padding: .25em 1em 0em 1em;
+  margin-bottom: 0;
 }
 .toggleme {
   padding: 1em 1em 0 2em;
@@ -162,6 +169,106 @@
  </div>
 </div>
 
+
+<h2 id="api-level">API Level</h2>
+
+<p>The Android {@sdkPlatformVersion} platform delivers an updated version of
+the framework API. The Android {@sdkPlatformVersion} API
+is assigned an integer identifier &mdash;
+<strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
+stored in the system itself. This identifier, called the "API Level", allows the
+system to correctly determine whether an application is compatible with
+the system, prior to installing the application. </p>
+
+<p>To use APIs introduced in Android {@sdkPlatformVersion} in your
+application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the
+<code>android:minSdkVersion</code> attributes of the <code>&lt;uses-sdk&gt;</code>
+element in your application's manifest. </p>
+
+<p>For more information about how to use API Level, see the <a
+href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
+
+
+<h2 id="api">Framework API Changes</h2>
+
+<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p>
+
+<h3>UI framework</h3>
+  <ul>
+    <li>Framework for easier background/UI thread interaction</li>
+    <li>New {@link android.widget.SlidingDrawer SlidingDrawer} widget</li>
+    <li>New {@link android.widget.HorizontalScrollView HorizontalScrollview} widget</li>
+  </ul>
+
+<h3>AppWidget framework</h3>
+  <ul>
+    <li>APIs for creating secure home screen {@link android.appwidget
+AppWidgets}. For information about how to use AppWidgets, see the Developer's
+Guide <a href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a>
+documentation. Also see <a
+href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html">
+Introducing home screen widgets and the AppWidget
+framework</a> on the Android Developer's Blog.</li>
+    <li>APIs for populating {@link android.provider.LiveFolders Live Folders}
+        with custom content.</li>
+  </ul>
+
+<h3>Media framework</h3>
+  <ul>
+    <li>Raw audio recording and playback APIs</li>
+    <li>Interactive MIDI playback engine</li>
+    <li>Video recording APIs for developers (3GP format)</li>
+    <li>Video and photo sharing Intents</li>
+    <li>Media search Intent</li>
+  </ul>
+
+<h3>Input Method framework </h3>
+   <ul>
+    <li>{@link android.inputmethodservice.InputMethodService Input Method
+        Service} framework</li>
+    <li>Text-prediction engine</li>
+    <li>Ability to provide downloadable IMEs to users</li>
+  </ul>
+
+<h3>Application-defined hardware requirements</h3>
+
+<p>Applications can now use a new element in their manifest files, <a
+href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code>&lt;uses-configuration&gt;</code></a>
+ to indicate to the Android system what hardware features
+they require in order to function properly. For example, an application might
+use the element to specify that it requires a physical keyboard or a particular
+navigation device, such as a trackball. Prior to installing the application, the
+Android system checks the attributes defined for the
+<code>&lt;uses-configuration&gt;</code> element and allows the installation to
+continue only if the required hardware is present.</p>
+
+<h3>Speech recognition framework</h3>
+    <ul>
+    <li>Support for using speech recognition libraries via Intent. See {@link
+android.speech.RecognizerIntent RecognizerIntent}.</li>
+  </ul>
+
+<h3>Miscellaneous API additions</h3>
+  <ul>
+    <li>LocationManager - Applications can get location change updates via
+        Intent</li>
+    <li>WebView - Touch start/end/move/cancel DOM event support</li>
+    <li>Redesigned {@link android.hardware.SensorManager Sensor Manager
+        APIs}</li>
+    <li>GLSurfaceView - convenience framework for creating OpenGL
+        applications</li>
+    <li>Broadcast Intent for app update install succeeded - for smoother app
+        upgrade experience</li>
+  </ul>
+
+
+<h3 id="api-diff">API differences report</h3>
+
+<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to 
+the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 
+Differences Report</a>.</p>
+
+
 <h2 id="apps">Built-in Applications</h2>
 
 <p>The system image included in the downloadable platform provides these
@@ -268,101 +375,3 @@
 </ul>
 
 <p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p>
-
-
-<h2 id="api">Framework API</h2>
-
-<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p>
-
-
-<h3 id="api-level">API level</h3>
-
-<p>The Android {@sdkPlatformVersion} platform delivers an updated version of the framework
-API. As with previous versions, the Android {@sdkPlatformVersion} API 
-is assigned an integer identifier &mdash; <strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
-stored in the system itself. This identifier, called the "API Level", allows the
-system to correctly determine whether an application is compatible with
-the system, prior to installing the application. </p>
-
-<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 
-set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code>&lt;uses-sdk&gt;</code> 
-element in your application's manifest. </p>
-
-<p>For more information about how to use API Level, see the <a
-href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
-
-<h3 id="api-changes">API changes summary</h3>
-
-<h4>UI framework</h4>
-  <ul>
-    <li>Framework for easier background/UI thread interaction</li>
-    <li>New {@link android.widget.SlidingDrawer SlidingDrawer} widget</li>
-    <li>New {@link android.widget.HorizontalScrollView HorizontalScrollview} widget</li>
-  </ul>
-
-<h4>AppWidget framework</h4>
-  <ul>
-    <li>APIs for creating secure home screen {@link android.appwidget
-AppWidgets}. For information about how to use AppWidgets, see the Developer's
-Guide <a href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a>
-documentation. Also see <a
-href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html">
-Introducing home screen widgets and the AppWidget
-framework</a> on the Android Developer's Blog.</li>
-    <li>APIs for populating {@link android.provider.LiveFolders Live Folders}
-        with custom content.</li>
-  </ul>
-
-<h4>Media framework</h4>
-  <ul>
-    <li>Raw audio recording and playback APIs</li>
-    <li>Interactive MIDI playback engine</li>
-    <li>Video recording APIs for developers (3GP format)</li>
-    <li>Video and photo sharing Intents</li>
-    <li>Media search Intent</li>
-  </ul>
-
-<h4>Input Method framework </h4>
-   <ul>
-    <li>{@link android.inputmethodservice.InputMethodService Input Method
-        Service} framework</li>
-    <li>Text-prediction engine</li>
-    <li>Ability to provide downloadable IMEs to users</li>
-  </ul>
-
-<h4>Application-defined hardware requirements</h4>
-   <p>Applications can now use a new element in their manifest files, <a
-href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code>&lt;uses-configuration&gt;</code></a>
- to indicate to the Android system what hardware features
-they require in order to function properly. For example, an application might
-use the element to specify that it requires a physical keyboard or a particular
-navigation device, such as a trackball. Prior to installing the application, the
-Android system checks the attributes defined for the
-<code>&lt;uses-configuration&gt;</code> element and allows the installation to
-continue only if the required hardware is present.</p>
-
-<h4>Speech recognition framework</h4>
-    <ul>
-    <li>Support for using speech recognition libraries via Intent. See {@link
-android.speech.RecognizerIntent RecognizerIntent}.</li>
-  </ul>
-
-<h4>Miscellaneous API additions</h4>
-  <ul>
-    <li>LocationManager - Applications can get location change updates via
-        Intent</li>
-    <li>WebView - Touch start/end/move/cancel DOM event support</li>
-    <li>Redesigned {@link android.hardware.SensorManager Sensor Manager
-        APIs}</li>
-    <li>GLSurfaceView - convenience framework for creating OpenGL
-        applications</li>
-    <li>Broadcast Intent for app update install succeeded - for smoother app
-        upgrade experience</li>
-  </ul>
-
-
-<h3 id="api-diff">API differences report</h3>
-
-<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to 
-the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 
-Differences Report</a>.</p>
diff --git a/docs/html/sdk/android-1.6.jd b/docs/html/sdk/android-1.6.jd
index d7d14e9..c2651b6 100644
--- a/docs/html/sdk/android-1.6.jd
+++ b/docs/html/sdk/android-1.6.jd
@@ -10,25 +10,31 @@
 <div id="qv-wrapper">
 <div id="qv">
 
-  <h2>In this document</h2>
-  <ol>
-	<li><a href="#features">Platform Highlights</a></li>
-	<li><a href="#relnotes">Revisions</a></li>
-	<li><a href="#apps">Built-in Applications</a></li>
-	<li><a href="#locs">Locales</a></li>
-	<li><a href="#skins">Emulator Skins</a></li>
-	<li><a href="#api">Framework API</a>
-        <ol>
-	<li><a href="#api-level">API level</a></li>
-	<li><a href="#api-changes">API changes summary</a></li>
-	<li><a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API differences report &raquo;</a> </li>
-        </ol></li>
-  </ol>
+<h2>In this document</h2>
+<ol>
+  <li><a href="#features">Platform Highlights</a></li>
+  <li><a href="#relnotes">Revisions</a></li>
+  <li><a href="#api-level">API Level</a></li>
+  <li><a href="#api">Framework API Changes</a>
+  <li><a href="#apps">Built-in Applications</a></li>
+  <li><a href="#locs">Locales</a></li>
+  <li><a href="#skins">Emulator Skins</a></li>
 
-  <h2>See Also</h2>
-  <ol>
-    <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
-  </ol>
+    </ol>
+  </li>
+</ol>
+
+<h2>Reference</h2>
+<ol>
+<li><a
+href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
+Differences Report &raquo;</a> </li>
+</ol>
+
+<h2>See Also</h2>
+<ol>
+  <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
+</ol>
 
 </div>
 </div>
@@ -89,7 +95,8 @@
 </script>
 <style>
 .toggleable {
-padding: .25em 1em;
+  padding: .25em 1em 0em 1em;
+  margin-bottom: 0;
 }
 .toggleme {
   padding: 1em 1em 0 2em;
@@ -186,6 +193,212 @@
  </div>
 </div>
 
+
+<h2 id="api-level">API Level</h2>
+
+<p>The Android {@sdkPlatformVersion} platform delivers an updated version of
+the framework API. The Android {@sdkPlatformVersion} API
+is assigned an integer identifier &mdash;
+<strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
+stored in the system itself. This identifier, called the "API Level", allows the
+system to correctly determine whether an application is compatible with
+the system, prior to installing the application. </p>
+
+<p>To use APIs introduced in Android {@sdkPlatformVersion} in your
+application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the
+<code>android:minSdkVersion</code> attributes of the <code>&lt;uses-sdk&gt;</code>
+element in your application's manifest. </p>
+
+<p>For more information about how to use API Level, see the <a
+href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
+
+
+<h2 id="api">Framework API Changes</h2>
+
+<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p>
+
+<h3 id="UIFramework">UI framework</h3>
+    <ul>
+      <li>New classes in {@link android.view.animation}
+      to control the behavior of animations:
+        <ul>
+          <li><code>AnticipateInterpolator</code></li>
+          <li><code>AnticipateOvershootInterpolator</code></li>
+          <li><code>BounceInterpolator</code></li>
+          <li><code>OvershootInterpolator</code></li>
+        </ul>
+      </li>
+      <li>New XML attribute <code>android:onClick</code> to specify a View's 
+<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> 
+from a layout file.
+      </li>
+      <li>New support for dealing with varying screen densities. Density
+information is associated with Bitmap and Canvas for performing the
+correct scaling. The framework will automatically scale bitmaps and
+nine-patches based on the density the resource was found under and the
+density of the screen, etc.
+      </li><p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 
+set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code>&lt;uses-sdk&gt;</code> 
+element in your application's manifest. </p>
+    </ul>
+
+<h3>Search framework</h3>
+  <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>
+
+<h3>Accessibility framework</h3>
+  <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>
+
+<h3>Gesture input</h3>
+  <ul>
+    <li>New {@link android.gesture gesture} API for creating, recognizing,
+loading, and saving gestures.</li>
+  </ul>
+
+<h3>Text-to-speech</h3>
+  <ul>
+    <li>New {@link android.speech.tts android.speech.tts} package provides
+classes for synthesizing speech from text, for immediate playback or to create a
+sound file.</li>
+  </ul>
+
+<h3>Graphics</h3>
+  <ul>
+    <li>Classes in {@link android.graphics android.graphics} now support scaling
+for different screen densities.</li>
+  </ul>
+
+<h3>Telephony</h3>
+  <ul>
+    <li>New {@link android.telephony.SmsManager SmsManager} and other classes
+for sending and receiving SMS messages.</li>
+  </ul>
+
+<h3>Utilities</h3>
+  <ul>
+    <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for
+determining the density of the current device screen.</li>
+  </ul>
+
+<h3 id="AndroidManifest">Android Manifest elements</h3>
+
+    <ul>
+      <li>New <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code 
+      &lt;supports-screens>}</a> element lets you specify the device screen sizes that your 
+      application is designed and tested to support, where "size" is a combination
+      of resolution and density. If your application is run on a device whose screen 
+      size is not specified in the <code>&lt;supports-screen&gt;</code> element, the system 
+      displays the application in <em>compatibility mode</em>, which performs best-effort scaling
+      of the application UI to match the resolution and density of the screen. 
+
+    <p>The attributes available for defining an application's screen support are:
+
+        <ul>
+
+          <li><code>smallScreen</code>: Boolean value that indicates whether the
+            application is designed to run on devices with small screens. 
+            Examples: QVGA low density; VGA high density.
+          </li>
+          <li><code>normalScreens</code>: Boolean value that indicates whether 
+            the application is designed to run on devices with normal screens. 
+            Examples: WQVGA low density; HVGA medium density; WVGA high density.
+          </li>
+          <li><code>largeScreens</code>: Boolean value that indicates whether 
+            the application is designed to run on devices with significantly 
+            larger screens, such that special care may be required on
+            the application's part to make proper use of the screen area. 
+            Examples: VGA medium density; WVGA medium density.
+          </li>
+          <li><code>anyDensity</code>: Boolean value that indicates whether 
+            the application can accommodate any screen density.
+          </li>
+          <li><code>resizable</code>: Boolean value that indicates whether
+            the application can expand its layout to fit slightly larger screens.
+          </li>
+        </ul>
+    </p>
+    </li>
+
+      <li>New <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature>}</a>
+        element lets an application specify hardware (or other)
+        features that it requires to function normally. When an application
+        specifies such features, the system allows the application to be installed only
+        on devices that offer the required features. The element supports these
+        attributes:
+        <ul>
+          <li><code>name</code>: The name of the feature required by the application. Currently accepts 
+          "android.hardware.camera" and "android.hardware.camera.autofocus" values, which specify that a 
+          camera and camera autofocus are required, respectively.</li>
+          <li><code>glEsVersion</code>: Indicates the minimum version of OpenGL ES required.</li>
+        </ul>
+      </li>
+      <li>New attributes for the 
+      <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code &lt;uses-sdk>}</a> element:
+        <ul>
+          <li><code>targetSdkVersion</code>: Indicates the API Level that the application is targeting. 
+          It is able to run on older versions (down to minSdkVersion), but was explicitly tested to 
+          work with the version specified here. Specifying this version allows the platform to 
+          disable compatibility code that is not required or enable newer features that are not 
+          available to older applications. </li>
+          <li><code>maxSdkVersion</code>: Indicates the maximum API Level on which an application is 
+          designed to run. <strong>Important:</strong> Please read the <a
+          href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
+          documentation before using this attribute. </li>
+        </ul>
+      </li>
+
+      </li>
+    </ul>
+
+<h3>New permissions</h3>
+
+    <ul>
+      <li>{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE
+          CHANGE_WIFI_MULTICAST_STATE}: Allows applications to enter Wi-Fi 
+          Multicast mode.
+      </li>
+      <li>{@link android.Manifest.permission#GLOBAL_SEARCH}: Allows the 
+          global search system to access the data of a specified content provider.
+      </li> 
+      <li>{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}: 
+          Allows an application to install a location provider into the Location Manager.
+      </li>
+      <li>{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS}: 
+          Allows an application to read (but not write) the user's browsing history 
+          and bookmarks.
+      </li>
+      <li>{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}: 
+          Allows an application to write (but not read) the user's browsing history 
+          and bookmarks.
+      </li>
+      <li>{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}: 
+          Allows an application to write to external storage. Applications using API Level 3
+          and lower will be implicitly granted this permission (and this will be visible to 
+          the user); Applications using API Level 4 or higher must explicitly request this 
+          permission.
+      </li>
+    </ul>
+
+
+<h3 id="api-diff">API differences report</h3>
+
+<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to 
+the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 
+Differences Report</a>.</p>
+
 <h2 id="apps">Built-in Applications</h2>
 
 <p>The system image included in the downloadable platform provides these
@@ -292,209 +505,3 @@
 </ul>
 
 <p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p>
-
-
-<h2 id="api">Framework API</h2>
-
-<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p>
-
-
-<h3 id="api-level">API level</h3>
-
-<p>The Android {@sdkPlatformVersion} platform delivers an updated version of the framework
-API. As with previous versions, the Android {@sdkPlatformVersion} API 
-is assigned an integer identifier &mdash; <strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
-stored in the system itself. This identifier, called the "API Level", allows the
-system to correctly determine whether an application is compatible with
-the system, prior to installing the application. </p>
-
-<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 
-set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code>&lt;uses-sdk&gt;</code> 
-element in your application's manifest. </p>
-
-<p>For more information about how to use API Level, see the <a
-href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
-
-<h3 id="api-changes">API changes summary</h3>
-
-<h4 id="UIFramework">UI framework</h4>
-    <ul>
-      <li>New classes in {@link android.view.animation}
-      to control the behavior of animations:
-        <ul>
-          <li><code>AnticipateInterpolator</code></li>
-          <li><code>AnticipateOvershootInterpolator</code></li>
-          <li><code>BounceInterpolator</code></li>
-          <li><code>OvershootInterpolator</code></li>
-        </ul>
-      </li>
-      <li>New XML attribute <code>android:onClick</code> to specify a View's 
-<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> 
-from a layout file.
-      </li>
-      <li>New support for dealing with varying screen densities. Density
-information is associated with Bitmap and Canvas for performing the
-correct scaling. The framework will automatically scale bitmaps and
-nine-patches based on the density the resource was found under and the
-density of the screen, etc.
-      </li><p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 
-set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code>&lt;uses-sdk&gt;</code> 
-element in your application's manifest. </p>
-    </ul>
-
-<h4>Search framework</h4>
-  <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>
-
-<h4>Accessibility framework</h4>
-  <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>
-
-<h4>Gesture Input</h4>
-  <ul>
-    <li>New {@link android.gesture gesture} API for creating, recognizing,
-loading, and saving gestures.</li>
-  </ul>
-
-<h4>Text-to-speech</h4>
-  <ul>
-    <li>New {@link android.speech.tts android.speech.tts} package provides
-classes for synthesizing speech from text, for immediate playback or to create a
-sound file.</li>
-  </ul>
-
-<h4>Graphics</h4>
-  <ul>
-    <li>Classes in {@link android.graphics android.graphics} now support scaling
-for different screen densities.</li>
-  </ul>
-
-<h4>Telephony</h4>
-  <ul>
-    <li>New {@link android.telephony.SmsManager SmsManager} and other classes
-for sending and receiving SMS messages.</li>
-  </ul>
-
-<h4>Utilities</h4>
-  <ul>
-    <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for
-determining the density of the current device screen.</li>
-  </ul>
-
-<h4 id="AndroidManifest">Android Manifest elements</h4>
-
-    <ul>
-      <li>New <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code 
-      &lt;supports-screens>}</a> element lets you specify the device screen sizes that your 
-      application is designed and tested to support, where "size" is a combination
-      of resolution and density. If your application is run on a device whose screen 
-      size is not specified in the <code>&lt;supports-screen&gt;</code> element, the system 
-      displays the application in <em>compatibility mode</em>, which performs best-effort scaling
-      of the application UI to match the resolution and density of the screen. 
-
-    <p>The attributes available for defining an application's screen support are:
-
-        <ul>
-
-          <li><code>smallScreen</code>: Boolean value that indicates whether the
-            application is designed to run on devices with small screens. 
-            Examples: QVGA low density; VGA high density.
-          </li>
-          <li><code>normalScreens</code>: Boolean value that indicates whether 
-            the application is designed to run on devices with normal screens. 
-            Examples: WQVGA low density; HVGA medium density; WVGA high density.
-          </li>
-          <li><code>largeScreens</code>: Boolean value that indicates whether 
-            the application is designed to run on devices with significantly 
-            larger screens, such that special care may be required on
-            the application's part to make proper use of the screen area. 
-            Examples: VGA medium density; WVGA medium density.
-          </li>
-          <li><code>anyDensity</code>: Boolean value that indicates whether 
-            the application can accommodate any screen density.
-          </li>
-          <li><code>resizable</code>: Boolean value that indicates whether
-            the application can expand its layout to fit slightly larger screens.
-          </li>
-        </ul>
-    </p>
-    </li>
-
-      <li>New <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature>}</a>
-        element lets an application specify hardware (or other)
-        features that it requires to function normally. When an application
-        specifies such features, the system allows the application to be installed only
-        on devices that offer the required features. The element supports these
-        attributes:
-        <ul>
-          <li><code>name</code>: The name of the feature required by the application. Currently accepts 
-          "android.hardware.camera" and "android.hardware.camera.autofocus" values, which specify that a 
-          camera and camera autofocus are required, respectively.</li>
-          <li><code>glEsVersion</code>: Indicates the minimum version of OpenGL ES required.</li>
-        </ul>
-      </li>
-      <li>New attributes for the 
-      <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code &lt;uses-sdk>}</a> element:
-        <ul>
-          <li><code>targetSdkVersion</code>: Indicates the API Level that the application is targeting. 
-          It is able to run on older versions (down to minSdkVersion), but was explicitly tested to 
-          work with the version specified here. Specifying this version allows the platform to 
-          disable compatibility code that is not required or enable newer features that are not 
-          available to older applications. </li>
-          <li><code>maxSdkVersion</code>: Indicates the maximum API Level on which an application is 
-          designed to run. <strong>Important:</strong> Please read the <a
-          href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
-          documentation before using this attribute. </li>
-        </ul>
-      </li>
-
-      </li>
-    </ul>
-
-<h4>New Permissions</h4>
-
-    <ul>
-      <li>{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE
-          CHANGE_WIFI_MULTICAST_STATE}: Allows applications to enter Wi-Fi 
-          Multicast mode.
-      </li>
-      <li>{@link android.Manifest.permission#GLOBAL_SEARCH}: Allows the 
-          global search system to access the data of a specified content provider.
-      </li> 
-      <li>{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}: 
-          Allows an application to install a location provider into the Location Manager.
-      </li>
-      <li>{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS}: 
-          Allows an application to read (but not write) the user's browsing history 
-          and bookmarks.
-      </li>
-      <li>{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}: 
-          Allows an application to write (but not read) the user's browsing history 
-          and bookmarks.
-      </li>
-      <li>{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}: 
-          Allows an application to write to external storage. Applications using API Level 3
-          and lower will be implicitly granted this permission (and this will be visible to 
-          the user); Applications using API Level 4 or higher must explicitly request this 
-          permission.
-      </li>
-    </ul>
-
-
-<h3 id="api-diff">API differences report</h3>
-
-<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to 
-the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 
-Differences Report</a>.</p>
diff --git a/docs/html/sdk/android-2.1.jd b/docs/html/sdk/android-2.1.jd
index db9c491..7490bae 100644
--- a/docs/html/sdk/android-2.1.jd
+++ b/docs/html/sdk/android-2.1.jd
@@ -13,20 +13,23 @@
 <ol>
   <li><a href="#features">Platform Highlights</a></li>
   <li><a href="#relnotes">Revisions</a></li>
+  <li><a href="#api-level">API Level</a></li>
+  <li><a href="#api">Framework API Changes</a>
   <li><a href="#apps">Built-in Applications</a></li>
   <li><a href="#locs">Locales</a></li>
   <li><a href="#skins">Emulator Skins</a></li>
-  <li><a href="#api">Framework API</a>
-    <ol>
-      <li><a href="#api-level">API level</a></li>
-      <li><a href="#api-changes">API changes summary</a></li>
-      <li><a
-href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
-differences report &raquo;</a> </li>
+
     </ol>
   </li>
 </ol>
 
+<h2>Reference</h2>
+<ol>
+<li><a
+href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
+Differences Report &raquo;</a> </li>
+</ol>
+
 <h2>See Also</h2>
 <ol>
   <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
@@ -90,7 +93,8 @@
 </script>
 <style>
 .toggleable {
-padding: .25em 1em;
+  padding: .25em 1em 0em 1em;
+  margin-bottom: 0;
 }
 .toggleme {
   padding: 1em 1em 0 2em;
@@ -147,6 +151,115 @@
  </div>
 </div>
 
+
+<h2 id="api-level">API Level</h2>
+
+<p>The Android {@sdkPlatformVersion} platform delivers an updated version of
+the framework API. The Android {@sdkPlatformVersion} API
+is assigned an integer identifier &mdash;
+<strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
+stored in the system itself. This identifier, called the "API Level", allows the
+system to correctly determine whether an application is compatible with
+the system, prior to installing the application. </p>
+
+<p>To use APIs introduced in Android {@sdkPlatformVersion} in your
+application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the
+<code>android:minSdkVersion</code> attributes of the <code>&lt;uses-sdk&gt;</code>
+element in your application's manifest. </p>
+
+<p>For more information about how to use API Level, see the <a
+href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
+
+
+<h2 id="api">Framework API Changes</h2>
+
+<p>The sections below provide information about changes made to the application
+framework API provided by the Android {@sdkPlatformVersion} platform.</p>
+
+<h3>Live Wallpapers</h3>
+
+<p>The following additions provide APIs for you to develop animated wallpapers:</p>
+<ul>
+<li>New {@link android.service.wallpaper} package.</li>
+<li>New {@link android.app.WallpaperInfo} class.</li>
+<li>Updated {@link android.app.WallpaperManager}.</li>
+</ul>
+
+<p>Additionally, if your application uses or provides Live Wallpapers, you must
+remember to add a <a
+href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature></code></a>
+ element to the application's manifest, declaring the attribute
+<code>android:name="android.software.live_wallpaper"</code>. For example:</p>
+
+<pre class="no-pretty-print">
+&lt;uses-feature android:name="android.software.live_wallpaper" />
+</pre>
+
+<p>When you've published your application, Android Market checks for the
+presence of this element and uses it as a filter, ensuring that your application
+is not made available to users whose devices do not support Live Wallpapers.
+</p>
+
+<h3>Telephony</h3>
+
+<ul>
+<li>New {@link android.telephony.SignalStrength} class provides information
+about the device's current network signal. This can be acquired from the
+new {@link
+android.telephony.PhoneStateListener#onSignalStrengthsChanged(SignalStrength)}
+callback.</li>
+
+<li>New {@link
+android.telephony.PhoneStateListener#onDataConnectionStateChanged(int,int)}
+callback.</li>
+</ul>
+
+<h3>Views</h3>
+
+<ul>
+<li>New {@link android.view.View} methods {@link android.view.View#isOpaque()}
+and {@link android.view.View#onDrawScrollBars(Canvas)}.</li>
+
+<li>New {@link android.widget.RemoteViews} methods {@link
+android.widget.RemoteViews#addView(int,RemoteViews)} and {@link
+android.widget.RemoteViews#removeAllViews(int)}.</li>
+
+<li>New {@link android.view.ViewGroup} methods {@link
+android.view.ViewGroup#isChildrenDrawingOrderEnabled()} and {@link
+android.view.ViewGroup#setChildrenDrawingOrderEnabled(boolean)}.</li>
+</ul>
+
+<h3>WebKit</h3>
+
+<ul>
+<li>New {@link android.webkit.WebStorage} methods to manipulate web
+storage databases.</li>
+
+<li>New {@link android.webkit.GeolocationPermissions} methods to
+get Geolocation permissions from, and set them on the WebView.</li>
+
+<li>New {@link android.webkit.WebSettings} methods to manage settings for
+app cache, web storage, and zooming based on screen density.</li>
+
+<li>New {@link android.webkit.WebChromeClient} methods for handling video,
+browsing history, custom Views, app cache limits, and more.</li>
+</ul>
+
+</ul>
+
+<!--
+<h3 id="behavior-changes">Behavior changes</h3>
+
+<h3 id="bug-fixes">Bug fixes</h3>
+-->
+
+<h3 id="api-diff">API differences report</h3>
+
+<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API
+Level {@sdkPlatformApiLevel}), as compared to API Level 6, see the <a
+href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
+Differences Report</a>.</p>
+
 <h2 id="apps">Built-in Applications</h2>
 
 <p>The system image included in the downloadable platform provides these
@@ -262,117 +375,3 @@
 and functions properly on all Android-powered devices, see <a
 href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
 Screens</a>.</p>
-
-<h2 id="api">Framework API</h2>
-
-<p>The sections below provide information about changes made to the application
-framework API provided by the Android {@sdkPlatformVersion} platform.</p>
-
-
-<h3 id="api-level">API level</h3>
-
-<p>The Android {@sdkPlatformVersion} platform delivers an updated version of
-the framework API. The Android {@sdkPlatformVersion} API
-is assigned an integer identifier &mdash;
-<strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
-stored in the system itself. This identifier, called the "API Level", allows the
-system to correctly determine whether an application is compatible with
-the system, prior to installing the application. </p>
-
-<p>To use APIs introduced in Android {@sdkPlatformVersion} in your
-application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the
-attributes of the <code>&lt;uses-sdk&gt;</code> element in your application's
-manifest. </p>
-
-<p>For more information about how to use API Level, see the <a
-href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
-
-
-<h3 id="api-changes">API changes summary</h3>
-
-<p>The following is a summary of some notable changes to the framework APIs.</p>
-
-<h4>Live Wallpapers</h4>
-
-<p>The following additions provide APIs for you to develop animated wallpapers:</p>
-<ul>
-<li>New {@link android.service.wallpaper} package.</li>
-<li>New {@link android.app.WallpaperInfo} class.</li>
-<li>Updated {@link android.app.WallpaperManager}.</li>
-</ul>
-
-<p>Additionally, if your application uses or provides Live Wallpapers, you must
-remember to add a <a
-href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature></code></a>
- element to the application's manifest, declaring the attribute
-<code>android:name="android.software.live_wallpaper"</code>. For example:</p>
-
-<pre class="no-pretty-print">
-&lt;uses-feature android:name="android.software.live_wallpaper" />
-</pre>
-
-<p>When you've published your application, Android Market checks for the
-presence of this element and uses it as a filter, ensuring that your application
-is not made available to users whose devices do not support Live Wallpapers.
-</p>
-
-<h4>Telephony</h4>
-
-<ul>
-<li>New {@link android.telephony.SignalStrength} class provides information
-about the device's current network signal. This can be acquired from the
-new {@link
-android.telephony.PhoneStateListener#onSignalStrengthsChanged(SignalStrength)}
-callback.</li>
-
-<li>New {@link
-android.telephony.PhoneStateListener#onDataConnectionStateChanged(int,int)}
-callback.</li>
-</ul>
-
-<h4>Views</h4>
-
-<ul>
-<li>New {@link android.view.View} methods {@link android.view.View#isOpaque()}
-and {@link android.view.View#onDrawScrollBars(Canvas)}.</li>
-
-<li>New {@link android.widget.RemoteViews} methods {@link
-android.widget.RemoteViews#addView(int,RemoteViews)} and {@link
-android.widget.RemoteViews#removeAllViews(int)}.</li>
-
-<li>New {@link android.view.ViewGroup} methods {@link
-android.view.ViewGroup#isChildrenDrawingOrderEnabled()} and {@link
-android.view.ViewGroup#setChildrenDrawingOrderEnabled(boolean)}.</li>
-</ul>
-
-<h4>WebKit</h4>
-
-<ul>
-<li>New {@link android.webkit.WebStorage} methods to manipulate web
-storage databases.</li>
-
-<li>New {@link android.webkit.GeolocationPermissions} methods to
-get Geolocation permissions from, and set them on the WebView.</li>
-
-<li>New {@link android.webkit.WebSettings} methods to manage settings for
-app cache, web storage, and zooming based on screen density.</li>
-
-<li>New {@link android.webkit.WebChromeClient} methods for handling video,
-browsing history, custom Views, app cache limits, and more.</li>
-</ul>
-
-</ul>
-
-<!--
-<h3 id="behavior-changes">Behavior changes</h3>
-
-<h3 id="bug-fixes">Bug fixes</h3>
--->
-
-<h3 id="api-diff">API differences report</h3>
-
-<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API
-Level {@sdkPlatformApiLevel}), as compared to API Level 6, see the <a
-href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
-Differences Report</a>.</p>
-
diff --git a/docs/html/sdk/android-2.2.jd b/docs/html/sdk/android-2.2.jd
index ab261f0..f82edf9 100644
--- a/docs/html/sdk/android-2.2.jd
+++ b/docs/html/sdk/android-2.2.jd
@@ -13,20 +13,23 @@
 <ol>
   <li><a href="#features">Platform Highlights</a></li>
   <li><a href="#relnotes">Revisions</a></li>
+  <li><a href="#api-level">API Level</a></li>
+  <li><a href="#api">Framework API Changes</a>
   <li><a href="#apps">Built-in Applications</a></li>
   <li><a href="#locs">Locales</a></li>
   <li><a href="#skins">Emulator Skins</a></li>
-  <li><a href="#api">Framework API</a>
-    <ol>
-      <li><a href="#api-level">API level</a></li>
-      <li><a href="#api-changes">API changes summary</a></li>
-      <li><a
-href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
-differences report &raquo;</a> </li>
+
     </ol>
   </li>
 </ol>
 
+<h2>Reference</h2>
+<ol>
+<li><a
+href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
+Differences Report &raquo;</a> </li>
+</ol>
+
 <h2>See Also</h2>
 <ol>
   <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
@@ -91,7 +94,8 @@
 </script>
 <style>
 .toggleable {
-padding: .25em 1em;
+  padding: .25em 1em 0em 1em;
+  margin-bottom: 0;
 }
 .toggleme {
   padding: 1em 1em 0 2em;
@@ -131,6 +135,201 @@
  </div>
 </div>
 
+
+<h2 id="api-level">API Level</h2>
+
+<p>The Android {@sdkPlatformVersion} platform delivers an updated version of
+the framework API. The Android {@sdkPlatformVersion} API
+is assigned an integer identifier &mdash;
+<strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
+stored in the system itself. This identifier, called the "API Level", allows the
+system to correctly determine whether an application is compatible with
+the system, prior to installing the application. </p>
+
+<p>To use APIs introduced in Android {@sdkPlatformVersion} in your
+application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the
+<code>android:minSdkVersion</code> attributes of the <code>&lt;uses-sdk&gt;</code>
+element in your application's manifest. </p>
+
+<p>For more information about how to use API Level, see the <a
+href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
+
+
+<h2 id="api">Framework API Changes</h2>
+
+<p>The sections below provide information about changes made to the application
+framework API provided by the Android {@sdkPlatformVersion} platform.</p>
+
+<h3 id="install-loc">App installation on external storage media</h3>
+
+<p>The Android platform now allows applications to request installation onto the
+device's external storage media (such as the SD card), as an alternative to
+installation onto the device's internal memory. </p>
+
+<p>Application developers can express the preferred installation location for
+their applications by means of a new attribute of <code>&lt;manifest&gt;</code>
+in the manifest file, <a
+href="{@docRoot}guide/topics/manifest/manifest-element.html#install"><code>
+android:installLocation</code></a>. The attribute supports three values:
+<code>"internalOnly"</code>, <code>"preferExternal"</code>, and
+<code>"auto"</code>. At install time, the system checks the value of
+<code>android:installLocation</code> and installs the application
+<code>.apk</code> according to the preferred location, if possible. If the
+application has requested external installation, the system installs it into a
+private, encrypted partition in the external media. Once an application .apk is
+installed externally, the system lets the user change the storage location of
+the .apk and move it onto the device's internal memory if needed (and vice
+versa), through Manage Applications in the user settings.</p>
+
+<p>By default, the system installs all applications onto the device's internal
+memory, except for those that explicitly request external installation. This
+means that the system will always install legacy applications onto internal
+memory, since they do not have access to the
+<code>android:installLocation</code> attribute. However, it is possible to
+configure and compile a legacy application such that it is installed internally
+on older versions of the platform and externally on Android 2.2 and later
+platforms, if necessary. </p>
+
+<p>Note that requesting installation onto the device's external media is not
+suitable for all applications, particularly because the external media may be
+removable and unmounting/remounting may disrupt the user experience and system
+settings.</p>
+
+<p>For more information about setting a preferred install location for your
+application, including a discussion of what types of applications should and
+should not request external installation, please read the <a
+href="{@docRoot}guide/appendix/install-location.html">App Install Location</a>
+document. </p>
+
+<h3 id="backup-manager">Data backup</h3>
+
+<p>The platform now provides a generalized backup service that
+applications can use to backup and restore user data, to ensure that users can
+maintain their data when switching devices or reinstalling the application. The
+Backup Manager handles the work of transporting the application data to and from
+the backup storage area in the cloud. The Backup Manager can store any type of
+data, from arbitrary data to files, and manages backup and restore operations
+in an atomic manner. For more information, see <a
+href="{@docRoot}guide/topics/data/backup.html">Data Backup</a>.</p>
+
+<h3>Graphics</h3>
+
+<ul>
+<li>New OpenGL ES 2.0 APIs in {@link android.opengl.GLES20 android.opengl.GLES20}.</li>
+<li>New {@link android.opengl.ETC1}, {@link android.opengl.ETC1Util}, and {@link android.opengl.ETC1Util.ETC1Texture} classes and utility methods for using ETC1 for texture compression.</li>
+<li>New {@link android.graphics.ImageFormat} class.</li>
+<li>New {@link android.graphics.YuvImage YUV image format API} to enable compression from YUV to JPEG and manipulation of YUV data.</li>
+</ul>
+
+<h3>Media</h3>
+
+<ul>
+<li>New APIs in {@link android.media.AudioManager android.media.AudioManager} for managing audio focus, transport control, transient loss of audio focus, ducking.</li>
+<li>New broadcast intent for routing audio to SCO &mdash; {@link android.media.AudioManager#ACTION_SCO_AUDIO_STATE_CHANGED} with extras indicating new state.</li>
+<li>New APIs in {@link android.media.SoundPool} to detect completion of sound-loading.</li>
+<li>New APIs in {@link android.media.SoundPool} for auto pause and resume.</li>
+<li>New APIs in {@link android.media.MediaRecorder} for specifying audio settings for number of channels, encoding and sampling rates, sampling rate.</li>
+<li>New APIs for adding files to the media database, so that they are automatically scanned. See {@link android.media.MediaScannerConnection#scanFile(Context, String[], String[], OnScanCompletedListener) MediaScannerConnection.scanFile} and {@link android.media.MediaScannerConnection.OnScanCompletedListener MediaScannerConnection.OnScanCompletedListener}.</li>
+</ul>
+
+<h3>Speech recognition and third-party recognition engines</h3>
+
+<ul>
+<li>The platform provides new speech-recognition APIs that allow applications to have a richer interaction with the available voice recognizer. For example, the APIs are sufficient to integrate voice recognition deeply into an IME.</li>
+<li>The platform also provides a {@link android.speech.RecognitionService} base class that lets third-party developers create plug-in recognition engines. </li>
+<li>New {@link android.speech.RecognitionListener} interface to receive callbacks.</li>
+<li>New {@link android.speech.RecognizerIntent} extras that let a requester app specify details as preferred language, minimum length in milliseconds, and so on.</li>
+</ul>
+
+<h3>Camera and camcorder</h3>
+
+<ul>
+<li>Changes to camera preview API to improve efficieny of preview pipeline. </li>
+<li>New display orientation for camera (it can now work in portrait orientation).</li>
+<li>New APIs in {@link android.hardware.Camera android.hardware.Camera} for managing zoom level.</li>
+<li>New APIs {@link android.hardware.Camera.Parameters android.hardware.Camera.Parameters} for querying and setting device camera settings such as focal length, exposure, zoom level, view angle, and others.</li>
+<li>New {@link android.media.ThumbnailUtils thumbnail} utility for video and image thumbnails.</li>
+<li>New {@link android.media.CamcorderProfile} and {@link android.media.CamcorderProfile} classes enable apps to determine device hardware camera capablities.</li>
+<li>New support in {@link android.media.ExifInterface android.media.ExifInterface} for retrieving GPS and focal length.</li>
+</ul>
+
+<h3>Device policy manager</h3>
+
+<p>New device policy management APIs allow developers to write "device
+administrator" applications that can control security features of the device,
+such as the minimum password strength, data wipe, and so on. Users can select
+the administrators that are enabled on their devices. For more information, see
+the {@link android.app.admin android.app.admin} classees or the example
+application code in <a
+href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html">DeviceAdminSample.java</a>.</p>
+
+<h3>UI Framework</h3>
+
+<ul>
+<li>New UI modes "car mode" and "night mode" and {@link android.app.UiModeManager} let applications adjust their application UI for specific user modes. </li>
+<li>New {@link android.view.ScaleGestureDetector} that lets Views detect and handle transformation gestures that involve more than one pointer (multitouch) using the supplied MotionEvents. </li>
+<li>Improvements in the way that multitouch events are reported in {@link android.view.MotionEvent} objects.</li>
+<li>The layout attribute <code>fill_parent</code> is renamed to <code>match_parent</code>. This affects both XML and Java code (see {@link android.view.ViewGroup.LayoutParams}). Note that the platform will continue to honor uses of <code>fill_parent</code> in legacy applications. </li>
+<li>New layout attributes {@link android.R.attr#tabStripEnabled}, {@link android.R.attr#tabStripRight}, and {@link android.R.attr#tabStripLeft} let developers customize the bottom strip of TabWidgets.</li>
+<li>Better support for managed dialogs in Activity.</li>
+</ul>
+
+<h3>Accounts and sync</h3>
+
+<ul>
+<li>New method {@link android.content.ContentResolver#addPeriodicSync(Account, String, Bundle, long) AddPeriodicSync()} lets you schedule a periodic sync with a specific account, authority, and extras at the given frequency.</li>
+</ul>
+
+<h3>New manifest elements and attributes</h3>
+
+<ul>
+<li>For specifying the application's preferred install location (see <a href="#install-loc">App Installation on External Storage Media</a>, above):
+
+<ul>
+  <li>New <code>android:installLocation</code> attribute of the <code>&lt;manifest&gt;</code> element. Specifies the default install location defined by an application.</li>
+</ul>
+</li>
+
+<li>For managing user data backup (see <a href="#backup-manager">Backup manager</a>, above, for more information):
+
+<ul>
+  <li> New <code>android:backupAgent</code> attribute of the
+<code>&lt;application&gt;</code> element. Specifies the component name of the 
+BackupAgent subclass provided by the application to handle backup/restore 
+operations, if any.</li>
+  <li> New <code>android:restoreAnyVersion</code> attribute of the
+<code>&lt;application&gt;</code> element. Boolean value that indicates whether
+the application is prepared to attempt a restore of any backed-up dataset, even
+if the backup is apparently from a newer version of the application than is
+currently installed on the device.</li>
+</ul>
+</li>
+
+<li>For managing the platform's JIT compiler:
+
+<ul>
+<li>New <code>android:vmSafeMode</code> attribute of the <code>&lt;application&gt;</code> element. Boolean value that specifies whether to disable JIT compiler optimizations when running the application.</li>
+</ul>
+</li>
+</ul>
+
+<h3>Permissions</h3>
+
+<ul>
+<li><code>android.permission.BIND_DEVICE_ADMIN</code> &mdash; Any device administration broadcast receiver must require this permission, to ensure that only the system can interact with it.</li>
+<li><code>android.permission.KILL_BACKGROUND_PROCESSES</code> &mdash; Allows an application to call {@link android.app.ActivityManager#killBackgroundProcesses(String)}.
+<li><code>android.permission.BIND_WALLPAPER</code> &mdash; Any {@link android.service.wallpaper.WallpaperService} must require this permission, to ensure that only the system can interact with it.</li>
+<li><code>android.permission.SET_TIME</code> &mdash; Allows an application to set the system time.</li>
+</ul>
+
+<h3 id="api-diff">API differences report</h3>
+
+<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API
+Level {@sdkPlatformApiLevel}), see the <a
+href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
+Differences Report</a>.</p>
+
+
 <h2 id="apps">Built-in Applications</h2>
 
 <p>The system image included in the downloadable platform provides these
@@ -245,210 +444,4 @@
 <p>For more information about how to develop an application that displays
 and functions properly on all Android-powered devices, see <a
 href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
-Screens</a>.</p>
-
-<h2 id="api">Framework API</h2>
-
-<p>The sections below provide information about changes made to the application
-framework API provided by the Android {@sdkPlatformVersion} platform.</p>
-
-
-<h3 id="api-level">API level</h3>
-
-<p>The Android {@sdkPlatformVersion} platform delivers an updated version of
-the framework API. The Android {@sdkPlatformVersion} API
-is assigned an integer identifier &mdash;
-<strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
-stored in the system itself. This identifier, called the "API Level", allows the
-system to correctly determine whether an application is compatible with
-the system, prior to installing the application. </p>
-
-<p>To use APIs introduced in Android {@sdkPlatformVersion} in your
-application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the
-<code>android:minSdkVersion</code> attributes of the <code>&lt;uses-sdk&gt;</code>
-element in your application's manifest. </p>
-
-<p>For more information about how to use API Level, see the <a
-href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
-
-
-<h3 id="api-changes">API changes summary</h3>
-
-<p>The sections below summarize the changes to the application framework and its APIs.</p>
-
-<h4 id="install-loc">App Installation on External Storage Media</h4>
-
-<p>The Android platform now allows applications to request installation onto the
-device's external storage media (such as the SD card), as an alternative to
-installation onto the device's internal memory. </p>
-
-<p>Application developers can express the preferred installation location for
-their applications by means of a new attribute of <code>&lt;manifest&gt;</code>
-in the manifest file, <a
-href="{@docRoot}guide/topics/manifest/manifest-element.html#install"><code>
-android:installLocation</code></a>. The attribute supports three values:
-<code>"internalOnly"</code>, <code>"preferExternal"</code>, and
-<code>"auto"</code>. At install time, the system checks the value of
-<code>android:installLocation</code> and installs the application
-<code>.apk</code> according to the preferred location, if possible. If the
-application has requested external installation, the system installs it into a
-private, encrypted partition in the external media. Once an application .apk is
-installed externally, the system lets the user change the storage location of
-the .apk and move it onto the device's internal memory if needed (and vice
-versa), through Manage Applications in the user settings.</p>
-
-<p>By default, the system installs all applications onto the device's internal
-memory, except for those that explicitly request external installation. This
-means that the system will always install legacy applications onto internal
-memory, since they do not have access to the
-<code>android:installLocation</code> attribute. However, it is possible to
-configure and compile a legacy application such that it is installed internally
-on older versions of the platform and externally on Android 2.2 and later
-platforms, if necessary. </p>
-
-<p>Note that requesting installation onto the device's external media is not
-suitable for all applications, particularly because the external media may be
-removable and unmounting/remounting may disrupt the user experience and system
-settings.</p>
-
-<p>For more information about setting a preferred install location for your
-application, including a discussion of what types of applications should and
-should not request external installation, please read the <a
-href="{@docRoot}guide/appendix/install-location.html">App Install Location</a>
-document. </p>
-
-<h4 id="backup-manager">Backup manager</h4>
-
-<p>The platform now provides a generalized backup service that
-applications can use to backup and restore user data, to ensure that users can
-maintain their data when switching devices or reinstalling the application. The
-Backup Manager handles the work of transporting the application data to and from
-the backup storage area in the cloud. The Backup Manager can store any type of
-data, from arbitrary data to files, and manages backup and restore operations
-in an atomic manner. For more information, see <a
-href="{@docRoot}guide/topics/data/backup.html">Data Backup</a>.</p>
-
-<h4>Graphics</h4>
-
-<ul>
-<li>New OpenGL ES 2.0 APIs in {@link android.opengl.GLES20 android.opengl.GLES20}.</li>
-<li>New {@link android.opengl.ETC1}, {@link android.opengl.ETC1Util}, and {@link android.opengl.ETC1Util.ETC1Texture} classes and utility methods for using ETC1 for texture compression.</li>
-<li>New {@link android.graphics.ImageFormat} class.</li>
-<li>New {@link android.graphics.YuvImage YUV image format API} to enable compression from YUV to JPEG and manipulation of YUV data.</li>
-</ul>
-
-<h4>Media</h4>
-
-<ul>
-<li>New APIs in {@link android.media.AudioManager android.media.AudioManager} for managing audio focus, transport control, transient loss of audio focus, ducking.</li>
-<li>New broadcast intent for routing audio to SCO &mdash; {@link android.media.AudioManager#ACTION_SCO_AUDIO_STATE_CHANGED} with extras indicating new state.</li>
-<li>New APIs in {@link android.media.SoundPool} to detect completion of sound-loading.</li>
-<li>New APIs in {@link android.media.SoundPool} for auto pause and resume.</li>
-<li>New APIs in {@link android.media.MediaRecorder} for specifying audio settings for number of channels, encoding and sampling rates, sampling rate.</li>
-<li>New APIs for adding files to the media database, so that they are automatically scanned. See {@link android.media.MediaScannerConnection#scanFile(Context, String[], String[], OnScanCompletedListener) MediaScannerConnection.scanFile} and {@link android.media.MediaScannerConnection.OnScanCompletedListener MediaScannerConnection.OnScanCompletedListener}.</li>
-</ul>
-
-<h4>Speech recognition and third-party recognition engines</h4>
-
-<ul>
-<li>The platform provides new speech-recognition APIs that allow applications to have a richer interaction with the available voice recognizer. For example, the APIs are sufficient to integrate voice recognition deeply into an IME.</li>
-<li>The platform also provides a {@link android.speech.RecognitionService} base class that lets third-party developers create plug-in recognition engines. </li>
-<li>New {@link android.speech.RecognitionListener} interface to receive callbacks.</li>
-<li>New {@link android.speech.RecognizerIntent} extras that let a requester app specify details as preferred language, minimum length in milliseconds, and so on.</li>
-</ul>
-
-<h4>Camera and camcorder</h4>
-
-<ul>
-<li>Changes to camera preview API to improve efficieny of preview pipeline. </li>
-<li>New display orientation for camera (it can now work in portrait orientation).</li>
-<li>New APIs in {@link android.hardware.Camera android.hardware.Camera} for managing zoom level.</li>
-<li>New APIs {@link android.hardware.Camera.Parameters android.hardware.Camera.Parameters} for querying and setting device camera settings such as focal length, exposure, zoom level, view angle, and others.</li>
-<li>New {@link android.media.ThumbnailUtils thumbnail} utility for video and image thumbnails.</li>
-<li>New {@link android.media.CamcorderProfile} and {@link android.media.CamcorderProfile} classes enable apps to determine device hardware camera capablities.</li>
-<li>New support in {@link android.media.ExifInterface android.media.ExifInterface} for retrieving GPS and focal length.</li>
-</ul>
-
-<h4>Device policy manager</h4>
-
-<p>New device policy management APIs allow developers to write "device
-administrator" applications that can control security features of the device,
-such as the minimum password strength, data wipe, and so on. Users can select
-the administrators that are enabled on their devices. For more information, see
-the {@link android.app.admin android.app.admin} classees or the example
-application code in <a
-href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html">DeviceAdminSample.java</a>.</p>
-
-<h4>UI Framework</h4>
-
-<ul>
-<li>New UI modes "car mode" and "night mode" and {@link android.app.UiModeManager} let applications adjust their application UI for specific user modes. </li>
-<li>New {@link android.view.ScaleGestureDetector} that lets Views detect and handle transformation gestures that involve more than one pointer (multitouch) using the supplied MotionEvents. </li>
-<li>Improvements in the way that multitouch events are reported in {@link android.view.MotionEvent} objects.</li>
-<li>The layout attribute <code>fill_parent</code> is renamed to <code>match_parent</code>. This affects both XML and Java code (see {@link android.view.ViewGroup.LayoutParams}). Note that the platform will continue to honor uses of <code>fill_parent</code> in legacy applications. </li>
-<li>New layout attributes {@link android.R.attr#tabStripEnabled}, {@link android.R.attr#tabStripRight}, and {@link android.R.attr#tabStripLeft} let developers customize the bottom strip of TabWidgets.</li>
-<li>Better support for managed dialogs in Activity.</li>
-</ul>
-
-<h4>Accounts and Sync</h4>
-
-<ul>
-<li>New method {@link android.content.ContentResolver#addPeriodicSync(Account, String, Bundle, long) AddPeriodicSync()} lets you schedule a periodic sync with a specific account, authority, and extras at the given frequency.</li>
-</ul>
-
-<h4>New manifest elements and attributes</h4>
-
-<ul>
-<li>For specifying the application's preferred install location (see <a href="#install-loc">App Installation on External Storage Media</a>, above):
-
-<ul>
-  <li>New <code>android:installLocation</code> attribute of the <code>&lt;manifest&gt;</code> element. Specifies the default install location defined by an application.</li>
-</ul>
-</li>
-
-<li>For managing user data backup (see <a href="#backup-manager">Backup manager</a>, above, for more information):
-
-<ul>
-  <li> New <code>android:backupAgent</code> attribute of the
-<code>&lt;application&gt;</code> element. Specifies the component name of the 
-BackupAgent subclass provided by the application to handle backup/restore 
-operations, if any.</li>
-  <li> New <code>android:restoreAnyVersion</code> attribute of the
-<code>&lt;application&gt;</code> element. Boolean value that indicates whether
-the application is prepared to attempt a restore of any backed-up dataset, even
-if the backup is apparently from a newer version of the application than is
-currently installed on the device.</li>
-</ul>
-</li>
-
-<li>For managing the platform's JIT compiler:
-
-<ul>
-<li>New <code>android:vmSafeMode</code> attribute of the <code>&lt;application&gt;</code> element. Boolean value that specifies whether to disable JIT compiler optimizations when running the application.</li>
-</ul>
-</li>
-</ul>
-
-<h4>Permissions</h4>
-
-<ul>
-<li><code>android.permission.BIND_DEVICE_ADMIN</code> &mdash; Any device administration broadcast receiver must require this permission, to ensure that only the system can interact with it.</li>
-<li><code>android.permission.KILL_BACKGROUND_PROCESSES</code> &mdash; Allows an application to call {@link android.app.ActivityManager#killBackgroundProcesses(String)}.
-<li><code>android.permission.BIND_WALLPAPER</code> &mdash; Any {@link android.service.wallpaper.WallpaperService} must require this permission, to ensure that only the system can interact with it.</li>
-<li><code>android.permission.SET_TIME</code> &mdash; Allows an application to set the system time.</li>
-</ul>
-
-<!--
-<h3 id="behavior-changes">Behavior changes</h3>
-
-What did change is that android:process and android:sharedUserId can now be a reference to a resource (instead of just a literal).
-<h3 id="bug-fixes">Bug fixes</h3>
--->
-
-<h3 id="api-diff">API differences report</h3>
-
-<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API
-Level {@sdkPlatformApiLevel}), see the <a
-href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
-Differences Report</a>.</p>
-
+Screens</a>.</p>
\ No newline at end of file