• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1page.title=Android 3.2 Platform
2sdk.platform.version=3.2
3sdk.platform.apiLevel=13
4@jd:body
5
6<div id="qv-wrapper">
7<div id="qv">
8
9<h2>In this document</h2>
10<ol>
11  <li><a href="#relnotes">Revisions</a></li>
12  <li><a href="#highlights">Highlights</a></li>
13  <li><a href="#api">API Overview</a></li>
14  <li><a href="#api-level">API Level</a></li>
15  <li><a href="#apps">Built-in Applications</a></li>
16  <li><a href="#locs">Locales</a></li>
17  <li><a href="#skins">Emulator Skins</a></li>
18</ol>
19
20<h2>Reference</h2>
21<ol>
22<li><a
23href="{@docRoot}sdk/api_diff/13/changes.html">API
24Differences Report &raquo;</a> </li>
25</ol>
26
27<h2>See Also</h2>
28<ol>
29  <li><a href="{@docRoot}guide/practices/screens_support.html">Supporting
30  Multiple Screens</a></li>
31  <li><a href="{@docRoot}guide/practices/optimizing-for-3.0.html">Optimizing
32Apps for Android 3.x</a></li>
33</ol>
34
35</div>
36</div>
37
38
39<p><em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
40
41<p>Welcome to Android 3.2!</p>
42
43<p>Android 3.2 is an incremental platform release that adds new
44capabilities for users and developers. The sections below provide an overview
45of the new features and developer APIs.</p>
46
47<p>For developers, the Android {@sdkPlatformVersion} platform is available as a
48downloadable component for the Android SDK. The downloadable platform includes
49an Android library and system image, as well as a set of emulator skins and
50more. The downloadable platform includes no external libraries.</p>
51
52<p>To get started developing or testing against Android {@sdkPlatformVersion},
53use the Android SDK Manager to download the platform into your SDK. For more
54information, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK
55Components</a>. If you are new to Android, <a
56href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> first.</p>
57
58<p class="note"><strong>Reminder:</strong> If you've already published an
59Android application, please test and optimize your application on Android 3.2 as
60soon as possible. You should do so to be sure your application provides the best
61experience possible on the latest Android-powered devices. For information about
62what you can do, read <a
63href="{@docRoot}guide/practices/optimizing-for-3.0.html">Optimizing Apps for
64Android 3.x</a>.</p>
65
66
67<h2 id="relnotes">Revisions</h2>
68
69<p>To determine what revision of the Android {@sdkPlatformVersion} platform you
70have installed, refer to the "Installed Packages" listing in the Android SDK and
71AVD Manager.</p>
72
73
74<div class="toggle-content opened" style="padding-left:1em;">
75
76  <p><a href="#" onclick="return toggleContent(this)">
77    <img src="{@docRoot}assets/images/triangle-opened.png"
78class="toggle-content-img" alt="" />
79    Android {@sdkPlatformVersion}, Revision 1</a> <em>(July 2011)</em>
80  </a></p>
81
82  <div class="toggle-content-toggleme" style="padding-left:2em;">
83
84<dl>
85<dt>Initial release. SDK Tools r12 or higher is recommended.</dt>
86</dl>
87
88  </div>
89</div>
90
91<h2 id="highlights" style="margin-top:1.5em;">Platform Highlights</h2>
92
93<h3>New user features</h3>
94
95<ul>
96<li><strong>Optimizations for a wider range of tablets</strong>
97
98<p>Android 3.2 includes a variety of optimizations across the system
99to ensure a great user experience on a wider range of tablet devices.</p></li>
100
101<li><strong>Compatibility zoom for fixed-sized apps</strong>
102
103<p>Android 3.2 introduces a new <em>compatibility zoom</em> mode that gives
104users a new way to view fixed-sized apps on larger devices. The new mode provides a
105pixel-scaled alternative to the standard UI stretching for apps that are not
106designed to run on larger screen sizes, such as on tablets. The new mode is
107accessible to users from a menu icon in the system bar, for apps that need
108compatibility support.</p></li>
109
110<li><strong>Media sync from SD card</strong>
111<p>On devices that support an SD card, users can now load media files directly
112from the SD card to apps that use them. A system facility makes the files
113accessible to apps from the system media store.</p></li>
114</ul>
115
116
117<h3>New developer features</h3>
118
119<ul>
120<li><strong>Extended API for managing screens support</strong>
121
122<p>Android 3.2 introduces extensions to the platform's screen support API to
123give developers additional ways to manage application UI across the range of
124Android-powered devices. The API includes new resource qualifiers and new
125manifest attributes that give you more precise control over how your
126apps are displayed on different sizes, rather than relying on generalized
127size categories.</p>
128
129<p>To ensure the best possible display for fixed-sized apps and apps with limited
130support for various screen sizes, the platform also provides a new zoom
131compatibility mode that renders the UI on a smaller screen area, then scales it
132up to fill the space available on the display. For more information about the
133screen support API and the controls it provides, see the sections below. </p></li>
134</ul>
135
136
137<h2 id="api">API Overview</h2>
138
139<h3 id="usb">Screens Support APIs</h3>
140
141<p>Android 3.2 introduces new screens support APIs that give you more
142control over how their applications are displayed across different screen sizes.
143The API builds on the existing screens-support API, including the platform's
144generalized screen density model, but extends it with the ability to precisely
145target specific screen ranges by their dimensions, measured in
146density-independent pixel units (such as 600dp or 720dp wide), rather than
147by their generalized screen sizes (such as large or xlarge)</p>
148
149<p>When designing an application's UI, you can still rely on the platform to
150provide density abstraction, which means that applications do not need to
151compensate for the differences in actual pixel density across devices. You
152can design the application UI according to the amount of horizontal or vertical
153space available. The platform expresses the amount of space available using three new
154characteristics: <em>smallestWidth</em>, <em>width</em>, and
155<em>height</em>.</p>
156
157<ul>
158<li>A screen's <em>smallestWidth</em> is its fundamental minimum size,
159measured in density-independent pixel ("dp") units. Of the screen's height or
160width, it is the shorter of the two. For a screen in portrait orientation, the
161smallestWidth is normally based on its width, while in landscape orientation it is based
162on its height. In all cases, the smallestWidth is derived from a fixed characteristic of the
163screen and the value does not change, regardless of orientation. The smallestWidth
164is important for applications because it represents the shortest possible width
165in which the application UI will need to be drawn, not including screen areas
166reserved by the system.
167</li>
168
169<li>In contrast, a screen's <em>width</em> and <em>height</em> represent the
170current horizontal or vertical space available for application layout, measured
171in "dp" units, not including screen areas reserved by the system. The width and
172height of a screen change when the user switches orientation between landscape
173and portrait. </li>
174
175</ul>
176
177<p>The new screens support API is designed to let you manage application UI
178according to the smallestWidth of the current screen. You can also manage the
179UI according to current width or height, as needed. For those purposes, the API
180provides these tools:</p>
181
182<ul>
183<li>New resource qualifiers for targeting layouts and other resources to a
184minimum smallestWidth, width, or height, and</li>
185<li>New manifest attributes, for specifying the app's maximum
186screen compatibility range</li>
187</ul>
188
189<p>Additionally, applications can still query the system and manage UI and
190resource loading at runtime, as in the previous versions of the platform.</p>
191
192<p>Since the new API lets you target screens more directly through smallestWidth,
193width, and height, it's helpful to understand the typical
194characteristics of the different screen types. The table below provides some
195examples, measured in "dp" units. </p>
196
197<p class="caption"><strong>Table 1.</strong> Typical devices, with density
198and size in dp.</p>
199
200<table>
201<tr>
202<th>Type</th>
203<th>Density (generalized)</th>
204<th>Dimensions (dp)</th>
205<th>smallestWidth (dp)</th>
206</tr>
207<tr>
208<td>Baseline phone</td>
209<td>mdpi</td>
210<td>320x480</td>
211<td>320</td>
212</td>
213<tr>
214<td>Small tablet/large phone</td>
215<td>mdpi</td>
216<td>480x800</td>
217<td>480</td>
218</tr>
219<tr>
220<td>7-inch tablet</td>
221<td>mdpi</td>
222<td>600x1024</td>
223<td>600</td>
224</tr>
225<tr>
226<td>10-inch tablet</td>
227<td>mdpi</td>
228<td>800x1280</td>
229<td>800</td>
230</tr>
231</table>
232
233<p>The sections below provide more information about the new screen qualifiers
234and manifest attributes. For complete information about how to use the screen
235support API, see <a
236href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
237Screens</a>.</p>
238
239<h4>New resource qualifiers for screens support</h4>
240
241<p>The new resource qualifiers in Android 3.2 let you better target your layouts
242for ranges of screen sizes. Using the qualifiers, you can create resource
243configurations designed for a specific minimum smallestWidth, current width, or
244current height, measured in density-independent pixels.</p>
245
246<p>The new qualifiers are:</p>
247<ul>
248<li><code>swNNNdp</code> &mdash; Specifies the minimum smallestWidth on which
249the resource should be used, measured in "dp" units. As mentioned above, a
250screen's smallestWidth is constant, regardless of orientation. Examples:
251<code>sw320dp</code>, <code>sw720dp</code>, <code>sw720dp</code>.</li>
252
253<li><code>wNNNdp</code> and <code>hNNNdp</code> &mdash; Specifies the minimum
254width or height on which the resource should be used, measured in "dp" units. As
255mentioned above, a screen's width and height are relative to the orientation of
256the screen and change whenever the orientation changes. Examples:
257<code>w320dp</code>, <code>w720dp</code>, <code>h1024dp</code>.</p></li>
258</ul>
259
260<p>You can also create multiple overlapping resource configurations if needed.
261For example, you could tag some resources for use on any screen wider than 480
262dp, others for wider than 600  dp, and others for wider than 720 dp. When
263multiple resource configurations are qualified for a given screen, the system
264selects the configuration that is the closest match. For precise control over
265which resources are loaded on a given screen, you can tag resources with one
266qualifier or combine several new or existing qualifiers.
267
268<p>Based on the typical dimensions listed earlier, here are some examples of how
269you could use the new qualifiers:</p>
270
271<pre class="classic prettyprint">res/layout/main_activity.xml   # For phones
272res/layout-sw600dp/main_activity.xml   # For 7” tablets
273res/layout-sw720dp/main_activity.xml   # For 10” tablets
274res/layout-w600dp/main_activity.xml   # Multi-pane when enough width
275res/layout-sw600dp-w720dp/main_activity.xml   # For large width</pre>
276
277<p>Older versions of the platform will ignore the new qualifiers, so you can
278mix them as needed to ensure that your app looks great on any device. Here
279are some examples:</p>
280
281<pre class="classic prettyprint">res/layout/main_activity.xml   # For phones
282res/layout-xlarge/main_activity.xml   # For pre-3.2 tablets
283res/layout-sw600dp/main_activity.xml   # For 3.2 and up tablets</pre>
284
285<p>For complete information about how to use the new qualifiers, see <a href="{@docRoot}guide/practices/screens_support.html#NewQualifiers">Using new
286size qualifiers</a>.</p>
287
288<h4>New manifest attributes for screen-size compatibility</h4>
289
290<p>The framework offers a new set of <a
291href="{@docRoot}"><code>&lt;supports-screens&gt;</code></a> manifest attributes that let
292you manage your app's support for different screen sizess.
293Specifically, you can specify the largest and smallest screens on which your app
294is designed to run, as well as the largest screen on which it is designed run
295without needing the system's new <a href="{@docRoot}guide/practices/screen-compat-mode.html">screen
296compatibility mode</a>. Like the resource qualifiers described above, the new
297manifest attributes specify the range of screens that the application supports,
298as specified by the smallestWidth. </p>
299
300<p>The new manifest attributes for screen support are: </p>
301
302<ul>
303<li><code>android:compatibleWidthLimitDp="<em>numDp"</em></code> &mdash; This
304attribute lets you specify the maximum smallestWidth on which the application
305can run without needing compatibility mode. If the current screen is larger than
306the value specified, the system displays the application in normal mode but
307allows the user to optionally switch to compatibility mode through a setting in
308the system bar.</li>
309
310<li><code>android:largestWidthLimitDp="<em>numDp</em>"</code> &mdash; This
311attribute lets you specify the maximum smallestWidth on which the application
312is designed to run.  If the current screen is larger than the value specified,
313the system forces the application into screen compatibility mode, to ensure best
314display on the current screen.</li>
315
316<li><code>android:requiresSmallestWidthDp="<em>numDp"</em></code> &mdash; This
317attribute lets you specify the minimum smallestWidth on which the application
318can run. If the current screen is smaller than the value specified, the system
319considers the application incompatible with the device, but does not prevent it
320from being installed and run.</li>
321</ul>
322
323<p class="note"><strong>Note:</strong> Android Market does not currently filter
324apps based on any of the attributes above. Support for filtering will be
325added in a later platform release. Applications that require
326filtering based on screen size can use the existing <code>&lt;supports-screens&gt;</code>
327attributes.</p>
328
329<p>For complete information about how to use the new attributes, see <a href="{@docRoot}guide/practices/screens_support.html#DeclaringScreenSizeSupport">Declaring
330screen size support</a>.</p>
331
332<h4>Screen compatibility mode</h4>
333
334<p>Android 3.2 provides a new screen compatibility mode for applications
335explicitly declaring that they do not support screens as large as the one on
336which they are running. This new "zoom" mode is a pixel-scaled &mdash; it
337renders the application in a smaller screen area and then scales the pixels to
338fill the current screen.</p>
339
340<p>By default, the system offers screen compatibility mode as an user option, for apps
341that require it. Users can turn the zoom mode on and off using a control available
342in the system bar. </p>
343
344<p>Because the new screen compatibility mode may not be appropriate for all
345applications, the platform allows the application to disable it using manifest
346attributes. When disabled by the app, the system does not offer "zoom" compatibility
347mode as an option for users when the app is running.</p>
348
349<p class="note"><strong>Note:</strong> For important information about how
350to control compatibility mode in your applications, please review the <a
351href="http://android-developers.blogspot.com/2011/07/new-mode-for-apps-on-large-
352screens.html">New Mode for Apps on Large Screens</a> article on the Android
353Developers Blog. </p>
354
355<h4>New screen density for 720p televisions and similar devices</h4>
356
357<p>To meet the needs of applications running on 720p televisions or similar with
358moderate density screens, Android 3.2 introduces a new generalized density,
359<code>tvdpi</code>, with an approximate dpi of 213. Applications can query for
360the new density in {@link android.util.DisplayMetrics#densityDpi} and can use
361the new <code>tvdpi</code> qualifier to tag resources for televisions and
362similar devices. For example:</p>
363
364<pre class="classic prettyprint">res/drawable-tvdpi/my_icon.png   # Bitmap for tv density</pre>
365
366<p>In general, applications should not need to work with this density. For situations
367where output is needed for a 720p screen, the UI elements can be scaled
368automatically by the platform.</p>
369
370
371<h3 id="ui" style="margin-top:1.25em;">UI framework</h3>
372<ul>
373<li>Fragments
374  <ul>
375    <li>New {@link android.app.Fragment.SavedState} class holds the state
376    information retrieved from a fragment instance through
377    {@link android.app.FragmentManager#saveFragmentInstanceState(android.app.Fragment) saveFragmentInstanceState()}.</li>
378    <li>New method {@link android.app.FragmentManager#saveFragmentInstanceState(android.app.Fragment) saveFragmentInstanceState()}
379    saves the current instance state of
380    the given Fragment. The state can be used later when creating a new instance
381    of the Fragment that matches the current state.</li>
382    <li>New method {@link android.app.Fragment#setInitialSavedState(SavedState) setInitialSavedState()}
383    sets the initial saved state for a Fragment when first constructed.</li>
384    <li>New {@link android.app.Fragment#onViewCreated(android.view.View, android.os.Bundle)
385    onViewCreated()} callback method notifies the Fragment that
386    {@link android.app.Fragment#onCreateView(LayoutInflater, ViewGroup, Bundle) onCreateView()}
387    has returned, but before any saved state has been restored in to the View.</li>
388    <li>{@link android.app.Fragment#isDetached()} method determines whether
389    the Fragment has been explicitly detached from the UI.</li>
390    <li>New {@link android.app.FragmentTransaction#attach(android.app.Fragment) attach()}
391    and {@link android.app.FragmentTransaction#detach(android.app.Fragment) detach()}
392    methods let an application re-attach or detach fragments in the UI.</li>
393    <li>A new {@link android.app.FragmentTransaction#setCustomAnimations(int, int, int, int)
394    setCustomAnimations()} overload method lets you set specific animation
395    resources to run for enter/exit operations and specifically when
396    popping the back stack. The existing implementation does not account
397    for the different behavior of fragments when popping the back stack.</li>
398  </ul>
399</li>
400<li>Screen size information in ActivityInfo and ApplicationInfo
401  <ul>
402    <li>{@link android.content.pm.ActivityInfo} adds {@link android.content.pm.ActivityInfo#CONFIG_SCREEN_SIZE}
403    and {@link android.content.pm.ActivityInfo#CONFIG_SMALLEST_SCREEN_SIZE} as bit masks
404    in {@link android.R.attr#configChanges}. The bits indicate whether an Activity can
405    itself handle the screen size and smallest screen size.</li>
406    <li>{@link android.content.pm.ApplicationInfo} adds
407    {@link android.content.pm.ApplicationInfo#largestWidthLimitDp}, {@link android.content.pm.ApplicationInfo#compatibleWidthLimitDp},
408    and {@link android.content.pm.ApplicationInfo#requiresSmallestWidthDp} fields,
409    derived from the corresponding <code>&lt;supports-screens&gt;</code> attributes
410    in the application manifest file.</li>
411  </ul>
412</li>
413<li>Helpers for getting display size from WindowManager
414  <ul>
415    <li>New methods {@link android.view.Display#getSize(android.graphics.Point)
416    getSize()} and {@link android.view.Display#getRectSize(android.graphics.Rect)
417    getRectSize()} let applications get the raw size of the display.</li>
418  </ul>
419</li>
420<li>New public "holographic" styles
421  <ul>
422    <li>The platform now exposes a variety of public "holographic" styles
423    for text, actionbar widgets and tabs, and more. See
424    {@link android.R.style} for a full list.</li>
425  </ul>
426</li>
427<li>{@link android.app.LocalActivityManager}, {@link android.app.ActivityGroup}, and
428    {@link android.app.LocalActivityManager} are now deprecated
429  <ul>
430    <li>New applications should use Fragments instead of these classes. To
431    continue to run on older versions of the platform, you can use the v4 Support
432    Library (compatibility library), available in the Android SDK. The v4 Support
433    Library provides a version of the Fragment API that is compatible down to
434    Android 1.6 (API level 4).
435    <li>For apps developing against Android 3.0 (API level
436    11) or higher, tabs are typically presented in the UI using the new
437    {@link android.app.ActionBar#newTab() ActionBar.newTab()} and related APIs
438    for placing tabs within their action bar area.</p></li>
439  </ul>
440</li>
441</ul>
442
443<h3 id="media" style="margin-top:1em;">Media framework</h3>
444<ul>
445    <li>Applications that use the platform's media provider ({@link
446    android.provider.MediaStore}) can now read media data directly from the
447    removeable SD card, where supported by the device. Applications can also
448    interact with the SD card files directly, using the MTP API. </li>
449
450</ul>
451<h3 id="graphics" style="margin-top:1.25em;">Graphics</h3>
452<ul>
453<li>Parcelable utilities in Point and PointF
454  <ul>
455    <li>{@link android.graphics.Point} and {@link android.graphics.PointF}
456    classes now include the {@link android.os.Parcelable} interface and utility methods {@link
457    android.graphics.Point#describeContents()}, {@link
458    android.graphics.Point#readFromParcel(android.os.Parcel) readFromParcel()}, and {@link
459    android.graphics.Point#writeToParcel(android.os.Parcel, int) writeToParcel()}.</li>
460  </ul>
461</li>
462</ul>
463
464
465<h3 id="ime" style="margin-top:1.25em;">IME framework</h3>
466<ul>
467    <li>New {@link android.view.KeyEvent#getModifiers()} method for
468    retrieving the current state of the modifier keys.</li>
469</ul>
470
471
472<h3 id="usb" style="margin-top:1.25em;">USB framework</h3>
473<ul>
474    <li>New {@link
475    android.hardware.usb.UsbDeviceConnection#getRawDescriptors()} method for
476    retrieving the raw USB descriptors for the device. You can use the
477    method to access descriptors not supported directly via the higher
478    level APIs.</li>
479</ul>
480
481
482<h3 id="network" style="margin-top:1.25em;">Network</h3>
483<ul>
484<li>Network type constants
485   <ul>
486     <li>{@link android.net.ConnectivityManager} adds the constants {@link
487     android.net.ConnectivityManager#TYPE_ETHERNET} and {@link
488     android.net.ConnectivityManager#TYPE_BLUETOOTH}.</li>
489  </ul>
490</li>
491</ul>
492
493
494<h3 id="telephony" style="margin-top:1.25em;">Telephony</h3>
495<ul>
496    <li>New {@link android.telephony.TelephonyManager#NETWORK_TYPE_HSPAP} network type constant.</li>
497</ul>
498
499<h3 id="other" style="margin-top:1.25em;">Core utilities</h3>
500<ul>
501<li>Parcelable utilities
502  <ul>
503    <li>New interface {@link android.os.Parcelable.ClassLoaderCreator} allows
504    the application to receive the ClassLoader in which the object is being created.</li>
505    <li>New {@link android.os.ParcelFileDescriptor#adoptFd(int) adoptFd}, {@link
506    android.os.ParcelFileDescriptor#dup(java.io.FileDescriptor) dup()}, and {@link
507    android.os.ParcelFileDescriptor#fromFd(int) fromFd()} for managing
508    {@link android.os.ParcelFileDescriptor} objects.</li>
509  </ul>
510</li>
511<li>Binder and IBinder
512  <ul>
513    <li>New method {@link android.os.Binder#dumpAsync(java.io.FileDescriptor, java.lang.String[]) dumpAsync()}
514    in {@link android.os.Binder} and {@link android.os.IBinder} let applications
515    dump to a specified file, ensuring that the target executes asynchronously.</li>
516    <li>New {@link android.os.IBinder} protocol transaction code {@link
517    android.os.IBinder#TWEET_TRANSACTION} lets applications send a tweet
518    to the target object.</li>
519  </ul>
520</li>
521</ul>
522
523
524
525
526<h3 id="features">New feature constants</h3>
527
528<p>The platform adds new hardware feature constants that you can declare
529in their application manifests, to inform external entities such as Android
530Market of required hardware and software capabilities. You declare these
531and other feature constants in <a
532href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code
533&lt;uses-feature&gt;}</a> manifest elements.
534
535<p>Android Market filters applications based on their <code>&lt;uses-feature&gt;</code> attributes, to ensure that they are available only to devices on which their requirements are met. </p>
536
537<ul>
538<li>Feature constants for landscape or portrait requirements
539
540<p>Android 3.2 introduces new feature constants that let applications specify whether they require display in landscape orientation, portrait orientation, or both. Declaring these constants indicates that the application must not be installed on a device that doesn't offer the associated orientation. Conversely, if one or both of the constants are not declared, it indicates that the application does not have a preference for the undeclared orientations and may be installed on a device that doesn't offer them. </p>
541
542<ul>
543  <li>{@link android.content.pm.PackageManager#FEATURE_SCREEN_LANDSCAPE
544android.hardware.screen.landscape} &mdash; The application requires display in
545landscape orientation.</li>
546  <li>{@link android.content.pm.PackageManager#FEATURE_SCREEN_PORTRAIT
547android.hardware.screen.portrait} &mdash; The application requires display in
548portrait orientation.</li>
549</ul>
550
551<p>A typical application that functions properly in both landscape and portrait orientations would not normally need to declare an orientation requirement. Rather, an application designed primarily for one orientation, such as an app designed for a television, could declare one of the constants to ensure that it isn't available to devices that don't provide that orientation.</p>
552
553<p>If any of activities declared in the manifest request that they run in a specific orientation,
554using the <a href="{@docRoot}guide/topics/manifest/activity-element.html#screen">{@code
555android:screenOrientation}</a> attribute, then this also declares that the application
556requires that orientation.</p>
557
558</li>
559<li>Other feature constants
560
561<ul>
562  <li>{@link android.content.pm.PackageManager#FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT
563android.hardware.faketouch.multitouch.distinct} &mdash; The application requires support for emulated mulitouch input with distinct tracking of two or more points.</li>
564
565  <li>{@link android.content.pm.PackageManager#FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND
566android.hardware.faketouch.multitouch.jazzhand} &mdash; The application requires support for emulated mulitouch input with distinct tracking of five or more points.</li>
567</ul>
568
569</li>
570</ul>
571
572
573<h3 id="api-diff">API Differences Report</h3>
574
575<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API
576Level
577{@sdkPlatformApiLevel}), see the <a
578href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
579Differences Report</a>.</p>
580
581
582
583
584
585<h2 id="api-level">API Level</h2>
586
587<p>The Android {@sdkPlatformVersion} platform delivers an updated version of
588the framework API. The Android {@sdkPlatformVersion} API
589is assigned an integer identifier &mdash;
590<strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
591stored in the system itself. This identifier, called the "API Level", allows the
592system to correctly determine whether an application is compatible with
593the system, prior to installing the application. </p>
594
595<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application,
596you need compile the application against the Android library that is provided in
597the Android {@sdkPlatformVersion} SDK platform. Depending on your needs, you
598might
599also need to add an <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code>
600attribute to the <code>&lt;uses-sdk&gt;</code> element in the application's
601manifest.</p>
602
603<p>For more information about how to use API Level, see the <a
604href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
605
606
607<h2 id="apps">Built-in Applications</h2>
608
609<p>The system image included in the downloadable platform provides these
610built-in applications:</p>
611
612<table style="border:0;padding-bottom:0;margin-bottom:0;">
613<tr>
614<td style="border:0;padding-bottom:0;margin-bottom:0;">
615<ul>
616<li>API Demos</li>
617<li>Browser</li>
618<li>Calculator</li>
619<li>Camera</li>
620<li>Clock</li>
621<li>Contacts</li>
622<li>Custom Locale</li>
623<li>Dev Tools</li>
624<li>Downloads</li>
625<li>Email</li>
626</ul>
627</td>
628<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
629<ul>
630<li>Gallery</li>
631<li>Gestures Builder</li>
632<li>Messaging</li>
633<li>Music</li>
634<li>Search</li>
635<li>Settings</li>
636<li>Spare Parts</li>
637<li>Speech Recorder</li>
638<li>Widget Preview</li>
639</ul>
640</td>
641</tr>
642</table>
643
644
645<h2 id="locs" style="margin-top:.75em;">Locales</h2>
646
647<p>The system image included in the downloadable SDK platform provides a variety
648of
649built-in locales. In some cases, region-specific strings are available for the
650locales. In other cases, a default version of the language is used. The
651languages that are available in the Android 3.0 system
652image are listed below (with <em>language</em>_<em>country/region</em> locale
653descriptor).</p>
654
655<table style="border:0;padding-bottom:0;margin-bottom:0;">
656<tr>
657<td style="border:0;padding-bottom:0;margin-bottom:0;">
658<ul>
659<li>Arabic, Egypt (ar_EG)</li>
660<li>Arabic, Israel (ar_IL)</li>
661<li>Bulgarian, Bulgaria (bg_BG)</li>
662<li>Catalan, Spain (ca_ES)</li>
663<li>Czech, Czech Republic (cs_CZ)</li>
664<li>Danish, Denmark(da_DK)</li>
665<li>German, Austria (de_AT)</li>
666<li>German, Switzerland (de_CH)</li>
667<li>German, Germany (de_DE)</li>
668<li>German, Liechtenstein (de_LI)</li>
669<li>Greek, Greece (el_GR)</li>
670<li>English, Australia (en_AU)</li>
671<li>English, Canada (en_CA)</li>
672<li>English, Britain (en_GB)</li>
673<li>English, Ireland (en_IE)</li>
674<li>English, India (en_IN)</li>
675<li>English, New Zealand (en_NZ)</li>
676<li>English, Singapore(en_SG)</li>
677<li>English, US (en_US)</li>
678<li>English, Zimbabwe (en_ZA)</li>
679<li>Spanish (es_ES)</li>
680<li>Spanish, US (es_US)</li>
681<li>Finnish, Finland (fi_FI)</li>
682<li>French, Belgium (fr_BE)</li>
683<li>French, Canada (fr_CA)</li>
684<li>French, Switzerland (fr_CH)</li>
685<li>French, France (fr_FR)</li>
686<li>Hebrew, Israel (he_IL)</li>
687<li>Hindi, India (hi_IN)</li>
688</ul>
689</td>
690<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
691<li>Croatian, Croatia (hr_HR)</li>
692<li>Hungarian, Hungary (hu_HU)</li>
693<li>Indonesian, Indonesia (id_ID)</li>
694<li>Italian, Switzerland (it_CH)</li>
695<li>Italian, Italy (it_IT)</li>
696<li>Japanese (ja_JP)</li>
697<li>Korean (ko_KR)</li>
698<li>Lithuanian, Lithuania (lt_LT)</li>
699<li>Latvian, Latvia (lv_LV)</li>
700<li>Norwegian bokmål, Norway (nb_NO)</li>
701<li>Dutch, Belgium (nl_BE)</li>
702<li>Dutch, Netherlands (nl_NL)</li>
703<li>Polish (pl_PL)</li>
704<li>Portuguese, Brazil (pt_BR)</li>
705<li>Portuguese, Portugal (pt_PT)</li>
706<li>Romanian, Romania (ro_RO)</li>
707<li>Russian (ru_RU)</li></li>
708<li>Slovak, Slovakia (sk_SK)</li>
709<li>Slovenian, Slovenia (sl_SI)</li>
710<li>Serbian (sr_RS)</li>
711<li>Swedish, Sweden (sv_SE)</li>
712<li>Thai, Thailand (th_TH)</li>
713<li>Tagalog, Philippines (tl_PH)</li>
714<li>Turkish, Turkey (tr_TR)</li>
715<li>Ukrainian, Ukraine (uk_UA)</li>
716<li>Vietnamese, Vietnam (vi_VN)</li>
717<li>Chinese, PRC (zh_CN)</li>
718<li>Chinese, Taiwan (zh_TW)</li>
719</td>
720</tr>
721</table>
722
723<p class="note"><strong>Note:</strong> The Android platform may support more
724locales than are included in the SDK system image. All of the supported locales
725are available in the <a href="http://source.android.com/">Android Open Source
726Project</a>.</p>
727
728<h2 id="skins">Emulator Skins</h2>
729
730<p>The downloadable platform includes the following emulator skin:</p>
731
732<ul>
733  <li>
734    WXGA (1280x800, medium density, xlarge screen)
735  </li>
736</ul>
737
738<p>For more information about how to develop an application that displays
739and functions properly on all Android-powered devices, see <a
740href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
741Screens</a>.</p>
742