blob: 4cb44b921b5a21f15f7cbf24e4c9be4b669bf215 [file] [log] [blame]
Dirk Doughertyb7c7f152011-03-25 11:54:46 -07001page.title=Android 2.3.4 Platform
2sdk.platform.version=2.3.4
3sdk.platform.apiLevel=10
4
5
6@jd:body
7
8<div id="qv-wrapper">
9<div id="qv">
10
11<h2>In this document</h2>
12<ol>
13 <li><a href="#relnotes">Revisions</a></li>
14 <li><a href="#api">API Overview</a></li>
15 <li><a href="#openaccessory">Open Accessory Library</a></li>
16 <li><a href="#api-level">API Level</a></li>
17 <li><a href="#apps">Built-in Applications</a></li>
18 <li><a href="#locs">Locales</a></li>
19 <li><a href="#skins">Emulator Skins</a></li>
20</ol>
21
22<h2>Reference</h2>
23<ol>
24<li><a
25href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
26Differences Report &raquo;</a> </li>
27</ol>
28
29<h2>See Also</h2>
30<ol>
31 <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
32</ol>
33
34</div>
35</div>
36
37<p>
38<em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
39
40<p>Android 2.3.4 is a maintenance release that adds several bug fixes and patches
41to the Android 2.3 platform, without any API changes from Android 2.3.3. Additionally,
42Android 2.3.4 brings support for the Open Accessory API to mobile devices,
43through the optional <a href="#usb">Open Accessory Library</a>. </p>
44
45<p>For developers, the Android {@sdkPlatformVersion} platform and the Open
46Accessory Library are available together in the latest version of the Google
47APIs Add-On, a downloadable component for the Android SDK.</p>
48
49<p>To get started developing or testing against Android {@sdkPlatformVersion},
50use the Android SDK Manager to download the latest version of the Google APIs
51Add-On into your SDK. For more information, see <a
52href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>. If you
53are new to Android, <a href="{@docRoot}sdk/index.html">download the SDK Starter
54Package</a> first.</p>
55
56<p>For a high-level introduction to Android 2.3, see the <a
57href="{@docRoot}sdk/android-2.3-highlights.html">Platform Highlights</a>.</p>
58
59
60<h2 id="relnotes">Revisions</h2>
61
62<p>The sections below provide notes about successive releases of
63the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by
64revision number. To determine what revision(s) of the Android
65{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to
66the "Installed Packages" listing in the Android SDK and AVD Manager.</p>
67
68<script type="text/javascript">
69function toggleDiv(link) {
70 var toggleable = $(link).parent();
71 if (toggleable.hasClass("closed")) {
72 //$(".toggleme", toggleable).slideDown("fast");
73 toggleable.removeClass("closed");
74 toggleable.addClass("open");
75 $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
76 } else {
77 //$(".toggleme", toggleable).slideUp("fast");
78 toggleable.removeClass("open");
79 toggleable.addClass("closed");
80 $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
81 }
82 return false;
83}
84</script>
85<style>
86.toggleable {
87 padding: .25em 1em 0em 1em;
88 margin-bottom: 0;
89}
90.toggleme {
91 padding: 1em 1em 0 2em;
92 line-height:1em;
93}
94.toggleable a {
95 text-decoration:none;
96}
97.toggleme a {
98 text-decoration:underline;
99}
100.toggleable.closed .toggleme {
101 display:none;
102}
103#jd-content .toggle-img {
104 margin:0;
105}
106</style>
107
108<div class="toggleable opened">
109 <a href="#" onclick="return toggleDiv(this)">
110 <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" />
111 Android {@sdkPlatformVersion}, Revision 1</a> <em>(May 2011)</em></a>
112 <div class="toggleme">
113<dl>
114<dt>Dependencies:</dt>
115<dd>
116<p>Requires SDK Tools r11 or higher.</p>
117</dd>
118
119</dl>
120 </div>
121</div>
122
123
124<h2 id="api">API Overview</h2>
125
126<p>Android 2.3.4 provides the same framework API to applications as Android 2.3.3
127(API level 10). For a summary of the API, see the
128<a href="{@docRoot}sdk/android-2.3.3.html">Android 2.3.3 version notes</a>.</p>
129
130
Scott Mainf5d8cea2011-05-24 17:11:55 -0700131<h2 id="openaccessory">Open Accessory Library</h2>
Dirk Doughertyb7c7f152011-03-25 11:54:46 -0700132
133<p><em>Open Accessory</em> is a new capability for integrating
134connected peripherals with applications running on the platform. The capability
135is based on a USB (Universal Serial Bus) stack built into the platform and an
136API exposed to applications. Peripherals that attach to Android-powered devices
137as accessories connect as USB hosts. </p>
138
139<p>Open Accessory is introduced in <a
140href="{@docRoot}sdk/android-3.1.html#usb">Android 3.1</a> (API level 12), but is
141made available to devices running Android 2.3.4 by means of an optional external
142library, the Open Accessory Library. The library exposes a framework API that
143lets applications discover, communicate with, and manage a variety of device
144types connected over USB. It also provides the implementation of the API against
145parts of the Android platform that are not directly exposed to applications in
146Android 2.3.4.</p>
147
148<p>The Open Accessory Library is optional on any given device. Device
149manufacturers may choose whether to include the Open Accessory Library in their
150products or exclude it. The library is forward-compatible with Android 3.1, so
151applications developed against Android 2.3.4 will run properly on devices
152running Android 3.1, if those devices support USB accessories. </p>
153
154<p>The API provided by the Open Accessory Library is based on the Open Accessory
155API provided in Android 3.1. In most areas, you can use the same techniques and
156APIs. However, developing for the Open Accessory Library on Android 2.3.4 differs
157from the standard USB API in these ways:
158
159<ul>
160<li>Obtaining a {@link android.hardware.usb.UsbManager} object &mdash; To obtain
161a {@link android.hardware.usb.UsbManager} object when using the add-on library,
162use the helper method <code>getInstance()</code> rather than {@link
163android.content.Context#getSystemService(java.lang.String) getSystemService()}
164For example:
165
166<pre>UsbManager manager = UsbManager.getInstance(this);</pre></li>
167
168<li>Obtaining a {@link android.hardware.usb.UsbAccessory} from a filtered intent
169&mdash; When you filter for a connected device or accessory with an intent
170filter, the {@link android.hardware.usb.UsbAccessory} object is contained
171inside the intent that is passed to your application. If you are using the
172add-on library, you can get the {@link android.hardware.usb.UsbAccessory} object
173in the following manner:
174
175<pre>UsbAccessory accessory = UsbManager.getAccessory(intent)</pre></li>
176
177<li>No USB host support &mdash; Android 2.3.4 and the Open Accessory Library do
178not support USB host mode (for example, through {@link
179android.hardware.usb.UsbDevice}), although USB host mode is supported in Android
1803.1. An Android-powered device running Android 2.3.4 can not function as a USB
181host. The library enables the Android-powered device to function as
182a peripheral only, with the connected accessory functioning as USB host
183(through {@link android.hardware.usb.UsbAccessory}).</li>
184</ul>
185
186<p>To develop apps using the Open Accessory Library, you need:</p>
187
188<ul>
189<li>The latest version of the Android SDK tools</li>
190<li>The latest version of the Google APIs add-on, which includes the library
191itself (for linking)</li>
192<li>An actual hardware device running Android 2.3.4 (or Android 3.1) with USB
193accessories support, for runtime testing against connected devices</li>
194</ul>
195
196<p>For a full discussion of how to develop applications that interact with USB
197accessories, please see the related <a
198href="{@docRoot}guide/topics/usb/index.html">developer documentation</a>.</p>
199
200<p>Additionally, developers can request filtering on Android Market, such that
201their applications are not available to users whose devices do not provide the
202appropriate accessory support. To request filtering, add the element below
203to the application manifest:</p>
204
205<pre>&lt;uses-feature
206 android:name="android.hardware.usb.accessory"
207 android:required="true"&gt;</pre>
208
209
210<h2 id="api-level">API Level</h2>
211
212<p>The Android 2.3.4 platform does <em>not</em> increment the API level &mdash;
213it uses the same API level as Android 2.3.3, API level 10.
214
215<p>To use APIs introduced in API level 10 in your application,
216you need compile the application against the Android library that is provided in
217the latest version of the Google APIs Add-On, which also includes the Open
218Accessory Library.</p>
219
220<p>Depending on your needs, you might
221also need to add an <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code>
222attribute to the <code>&lt;uses-sdk&gt;</code> element in the application's
223manifest. If your application is designed to run only on Android 2.3.3 and higher,
224declaring the attribute prevents the application from being installed on earlier
225versions of the platform.</p>
226
227<p>For more information about how to use API Level, see the <a
228href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
229
230<h2 id="apps">Built-in Applications</h2>
231
232<p>The system image included in the downloadable platform provides these
233built-in applications:</p>
234
235<table style="border:0;padding-bottom:0;margin-bottom:0;">
236<tr>
237<td style="border:0;padding-bottom:0;margin-bottom:0;">
238<ul>
239<li>Browser</li>
240<li>Calculator</li>
241<li>Camera</li>
242<li>Clock</li>
243<li>Contacts</li>
Scott Mainf5d8cea2011-05-24 17:11:55 -0700244<li>Custom Locale</li>
Dirk Doughertyb7c7f152011-03-25 11:54:46 -0700245<li>Dev Tools</li>
246<li>Downloads</li>
247<li>Email</li>
248</ul>
249</td>
250<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
251<ul>
252<li>Gallery</li>
253<li>IMEs for Japanese, Chinese, and Latin text input</li>
254<li>Messaging</li>
255<li>Music</li>
256<li>Phone</li>
257<li>Search</li>
258<li>Settings</li>
259<li>Spare Parts (developer app)</li>
260<li>Speech Recorder</li>
261</ul>
262</td>
263</tr>
264</table>
265
266
267<h2 id="locs" style="margin-top:.75em;">Locales</h2>
268
269<p>The system image included in the downloadable SDK platform provides a variety of
270built-in locales. In some cases, region-specific strings are available for the
271locales. In other cases, a default version of the language is used. The
272languages that are available in the Android {@sdkPlatformVersion} system
273image are listed below (with <em>language</em>_<em>country/region</em> locale
274descriptor).</p>
275
276<table style="border:0;padding-bottom:0;margin-bottom:0;">
277<tr>
278<td style="border:0;padding-bottom:0;margin-bottom:0;">
279<ul>
280<li>Arabic, Egypt (ar_EG)</li>
281<li>Arabic, Israel (ar_IL)</li>
282<li>Bulgarian, Bulgaria (bg_BG)</li>
283<li>Catalan, Spain (ca_ES)</li>
284<li>Czech, Czech Republic (cs_CZ)</li>
285<li>Danish, Denmark(da_DK)</li>
286<li>German, Austria (de_AT)</li>
287<li>German, Switzerland (de_CH)</li>
288<li>German, Germany (de_DE)</li>
289<li>German, Liechtenstein (de_LI)</li>
290<li>Greek, Greece (el_GR)</li>
291<li>English, Australia (en_AU)</li>
292<li>English, Canada (en_CA)</li>
293<li>English, Britain (en_GB)</li>
294<li>English, Ireland (en_IE)</li>
295<li>English, India (en_IN)</li>
296<li>English, New Zealand (en_NZ)</li>
297<li>English, Singapore(en_SG)</li>
298<li>English, US (en_US)</li>
299<li>English, Zimbabwe (en_ZA)</li>
300<li>Spanish (es_ES)</li>
301<li>Spanish, US (es_US)</li>
302<li>Finnish, Finland (fi_FI)</li>
303<li>French, Belgium (fr_BE)</li>
304<li>French, Canada (fr_CA)</li>
305<li>French, Switzerland (fr_CH)</li>
306<li>French, France (fr_FR)</li>
307<li>Hebrew, Israel (he_IL)</li>
308<li>Hindi, India (hi_IN)</li>
309</ul>
310</td>
311<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
Scott Mainf5d8cea2011-05-24 17:11:55 -0700312<ul>
Dirk Doughertyb7c7f152011-03-25 11:54:46 -0700313<li>Croatian, Croatia (hr_HR)</li>
314<li>Hungarian, Hungary (hu_HU)</li>
315<li>Indonesian, Indonesia (id_ID)</li>
316<li>Italian, Switzerland (it_CH)</li>
317<li>Italian, Italy (it_IT)</li>
318<li>Japanese (ja_JP)</li>
319<li>Korean (ko_KR)</li>
320<li>Lithuanian, Lithuania (lt_LT)</li>
321<li>Latvian, Latvia (lv_LV)</li>
322<li>Norwegian-Bokmol, Norway(nb_NO)</li>
323<li>Dutch, Belgium (nl_BE)</li>
324<li>Dutch, Netherlands (nl_NL)</li>
325<li>Polish (pl_PL)</li>
326<li>Portuguese, Brazil (pt_BR)</li>
327<li>Portuguese, Portugal (pt_PT)</li>
328<li>Romanian, Romania (ro_RO)</li>
329<li>Russian (ru_RU)</li></li>
330<li>Slovak, Slovakia (sk_SK)</li>
331<li>Slovenian, Slovenia (sl_SI)</li>
332<li>Serbian (sr_RS)</li>
333<li>Swedish, Sweden (sv_SE)</li>
334<li>Thai, Thailand (th_TH)</li>
335<li>Tagalog, Philippines (tl_PH)</li>
336<li>Turkish, Turkey (tr_TR)</li>
337<li>Ukrainian, Ukraine (uk_UA)</li>
338<li>Vietnamese, Vietnam (vi_VN)</li>
339<li>Chinese, PRC (zh_CN)</li>
340<li>Chinese, Taiwan (zh_TW)</li>
Scott Mainf5d8cea2011-05-24 17:11:55 -0700341</ul>
Dirk Doughertyb7c7f152011-03-25 11:54:46 -0700342</td>
343</tr>
344</table>
345
346<p class="note"><strong>Note:</strong> The Android platform may support more
347locales than are included in the SDK system image. All of the supported locales
348are available in the <a href="http://source.android.com/">Android Open Source
349Project</a>.</p>
350
351<h2 id="skins">Emulator Skins</h2>
352
353<p>The downloadable platform includes a set of emulator skins that you can use
354for modeling your application in different screen sizes and resolutions. The
355emulator skins are:</p>
356
357<ul>
358 <li>
359 QVGA (240x320, low density, small screen)
360 </li>
361 <li>
362 WQVGA400 (240x400, low density, normal screen)
363 </li>
364 <li>
365 WQVGA432 (240x432, low density, normal screen)
366 </li>
367 <li>
368 HVGA (320x480, medium density, normal screen)
369 </li>
370 <li>
371 WVGA800 (480x800, high density, normal screen)
372 </li>
373 <li>
374 WVGA854 (480x854 high density, normal screen)
375 </li>
376</ul>
377
378<p>For more information about how to develop an application that displays
379and functions properly on all Android-powered devices, see <a
380href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
381Screens</a>.</p>