Doc change: Move framework api change info higher in platform notes documents.
Small adjustment to compatibility doc. Change-Id: I2af896292b00323d7f4eb2c828c8dea36b9e94ad
This commit is contained in:
@@ -36,15 +36,16 @@ exchange, however, it also means that your apps will have to cope with that same
|
||||
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
|
||||
|
||||
@@ -171,7 +171,9 @@ device screen, and adapts them to the actual pixel map of the screen.</p>
|
||||
|
||||
<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 — 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>
|
||||
|
||||
@@ -10,25 +10,31 @@ sdk.platform.deployableDate=May 2009
|
||||
<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 »</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 »</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 @@ function toggleDiv(link) {
|
||||
</script>
|
||||
<style>
|
||||
.toggleable {
|
||||
padding: .25em 1em;
|
||||
padding: .25em 1em 0em 1em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.toggleme {
|
||||
padding: 1em 1em 0 2em;
|
||||
@@ -162,6 +169,106 @@ padding: .25em 1em;
|
||||
</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 —
|
||||
<strong>{@sdkPlatformApiLevel}</strong> — 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><uses-sdk></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><uses-configuration></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><uses-configuration></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 @@ through Settings.</p>
|
||||
</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 — <strong>{@sdkPlatformApiLevel}</strong> — 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><uses-sdk></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><uses-configuration></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><uses-configuration></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>
|
||||
|
||||
@@ -10,25 +10,31 @@ sdk.platform.deployableDate=October 2009
|
||||
<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 »</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 »</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 @@ function toggleDiv(link) {
|
||||
</script>
|
||||
<style>
|
||||
.toggleable {
|
||||
padding: .25em 1em;
|
||||
padding: .25em 1em 0em 1em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.toggleme {
|
||||
padding: 1em 1em 0 2em;
|
||||
@@ -186,6 +193,212 @@ available Android-powered devices.</li>
|
||||
</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 —
|
||||
<strong>{@sdkPlatformApiLevel}</strong> — 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><uses-sdk></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><uses-sdk></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
|
||||
<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><supports-screen></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 <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 <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><uses-sdk></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 @@ The emulator skins are: </p>
|
||||
</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 — <strong>{@sdkPlatformApiLevel}</strong> — 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><uses-sdk></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><uses-sdk></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
|
||||
<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><supports-screen></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 <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 <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><uses-sdk></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>
|
||||
|
||||
@@ -13,20 +13,23 @@ sdk.platform.deployableDate=January 2010
|
||||
<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 »</a> </li>
|
||||
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<h2>Reference</h2>
|
||||
<ol>
|
||||
<li><a
|
||||
href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
|
||||
Differences Report »</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 @@ function toggleDiv(link) {
|
||||
</script>
|
||||
<style>
|
||||
.toggleable {
|
||||
padding: .25em 1em;
|
||||
padding: .25em 1em 0em 1em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.toggleme {
|
||||
padding: 1em 1em 0 2em;
|
||||
@@ -147,6 +151,115 @@ padding: .25em 1em;
|
||||
</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 —
|
||||
<strong>{@sdkPlatformApiLevel}</strong> — 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><uses-sdk></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><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">
|
||||
<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 @@ emulator skins are:</p>
|
||||
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 —
|
||||
<strong>{@sdkPlatformApiLevel}</strong> — 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><uses-sdk></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><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">
|
||||
<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>
|
||||
|
||||
|
||||
@@ -13,20 +13,23 @@ sdk.platform.deployableDate=May 2010
|
||||
<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 »</a> </li>
|
||||
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<h2>Reference</h2>
|
||||
<ol>
|
||||
<li><a
|
||||
href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
|
||||
Differences Report »</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 @@ function toggleDiv(link) {
|
||||
</script>
|
||||
<style>
|
||||
.toggleable {
|
||||
padding: .25em 1em;
|
||||
padding: .25em 1em 0em 1em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.toggleme {
|
||||
padding: 1em 1em 0 2em;
|
||||
@@ -131,6 +135,201 @@ padding: .25em 1em;
|
||||
</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 —
|
||||
<strong>{@sdkPlatformApiLevel}</strong> — 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><uses-sdk></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><manifest></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 — {@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><manifest></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><application></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><application></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><application></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> — 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> — Allows an application to call {@link android.app.ActivityManager#killBackgroundProcesses(String)}.
|
||||
<li><code>android.permission.BIND_WALLPAPER</code> — 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> — 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 @@ emulator skins are:</p>
|
||||
<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 —
|
||||
<strong>{@sdkPlatformApiLevel}</strong> — 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><uses-sdk></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><manifest></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 — {@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><manifest></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><application></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><application></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><application></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> — 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> — Allows an application to call {@link android.app.ActivityManager#killBackgroundProcesses(String)}.
|
||||
<li><code>android.permission.BIND_WALLPAPER</code> — 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> — 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>
|
||||
Reference in New Issue
Block a user