1 page.title=Android 4.0.3 Platform 2 sdk.platform.version=4.0.3 3 sdk.platform.apiLevel=15 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="#api">API Overview</a></li> 13 <li><a href="#Honeycomb">Previous APIs</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 23 href="{@docRoot}sdk/api_diff/15/changes.html">API 24 Differences Report »</a> </li> 25 </ol> 26 27 </div> 28 </div> 29 30 <p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> 31 32 <p>Android {@sdkPlatformVersion} is an incremental release of the Android 4.x 33 (Ice Cream Sandwich) platform family. This release includes new features for 34 users and developers, API changes, and various bug fixes.</p> 35 36 <p>For developers, the Android {@sdkPlatformVersion} platform is available as a 37 downloadable component for the Android SDK. The development platform includes a 38 fully compliant Android library and system image as well as a set of emulator 39 skins, sample applications, and more. The downloadable platform includes no 40 external libraries.</p> 41 42 <p>To start developing or testing against Android {@sdkPlatformVersion}, 43 use the Android SDK Manager to download the platform into your SDK. For more 44 information, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK 45 Components</a>. If you are new to Android, <a 46 href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> first.</p> 47 48 <p>For a high-level overview of the new user and developer features, see the 49 <a href="http://developer.android.com/sdk/android-4.0-highlights.html">Platform 50 Highlights</a>.</p> 51 52 53 <h2 id="relnotes">Development Platform Revisions</h2> 54 55 <p>The sections below provide notes about successive revisions of the Android 56 {@sdkPlatformVersion} development platform for the Android SDK, as denoted by 57 revision number. To determine what revisions you have installed in your SDK 58 environment, refer to the "Installed Packages" listing in the Android SDK 59 Manager.</p> 60 61 <p class="caution"><strong>Important:</strong> To download the new Android 62 4.0.x system components from the Android SDK Manager, you must first update the 63 SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, 64 the Android 4.0.x system components will not be available for download.</p> 65 66 <div class="toggle-content opened" style="padding-left:1em;"> 67 68 <p><a href="#" onclick="return toggleContent(this)"> 69 <img src="{@docRoot}assets/images/triangle-opened.png" 70 class="toggle-content-img" alt="" /> 71 Android {@sdkPlatformVersion}, Revision 2</a> <em>(January 2012)</em> 72 </a></p> 73 74 <div class="toggle-content-toggleme" style="padding-left:2em;"> 75 76 <dl> 77 <dt>Maintenance release. SDK Tools r14 or higher is required. 78 </dt> 79 </dl> 80 81 </div> 82 </div> 83 84 <div class="toggle-content closed" style="padding-left:1em;"> 85 86 <p><a href="#" onclick="return toggleContent(this)"> 87 <img src="{@docRoot}assets/images/triangle-closed.png" 88 class="toggle-content-img" alt="" /> 89 Android {@sdkPlatformVersion}, Revision 1</a> <em>(December 2011)</em> 90 </a></p> 91 92 <div class="toggle-content-toggleme" style="padding-left:2em;"> 93 94 <dl> 95 <dt>Initial release. SDK Tools r14 or higher is required. 96 </dt> 97 </dl> 98 99 </div> 100 </div> 101 102 <h2 id="api">API Overview</h2> 103 104 <p>The sections below provide a technical overview of new APIs in Android 4.0.3.</p> 105 106 <div class="toggle-content closed" style="padding-left:1em;"> 107 108 <p><a href="#" onclick="return toggleContent(this)"> 109 <img src="{@docRoot}assets/images/triangle-closed.png" 110 class="toggle-content-img" alt="" /> 111 <strong>Table of Contents</strong> 112 </a></p> 113 114 <div class="toggle-content-toggleme" style="padding-left:2em;"> 115 <ol class="toc" style="margin-left:-1em"> 116 <li><a href="#contacts">Social stream API in Contacts Provider</a></li> 117 <li><a href="#calendar">Calendar Provider</a></li> 118 <li><a href="#widgets">Home screen widgets</a></li> 119 <li><a href="#textservices">Spell-checking</a></li> 120 <li><a href="#bluetooth">Bluetooth</a></li> 121 <li><a href="#ui">UI toolkit</a></li> 122 <li><a href="#accessibility">Accessibility</a></li> 123 <li><a href="#tts">Text-to-speech</a></li> 124 <li><a href="#database">Database</a></li> 125 <li><a href="#intents">Intents</a></li> 126 <li><a href="#camera">Camera</a></li> 127 <li><a href="#permissions">Permissions</a></li> 128 </ol> 129 </div> 130 </div> 131 132 133 134 135 136 <h3 id="contacts">Social stream API in Contacts Provider</h3> 137 138 <p>Applications that use social stream data such as status updates and check-ins 139 can now sync that data with each of the users contacts, providing items in a 140 stream along with photos for each.</p> 141 142 <p>The database table that contains an individual contacts social stream is 143 defined by {@link android.provider.ContactsContract.StreamItems}, the Uri for 144 which is nested within the {@link android.provider.ContactsContract.RawContacts} 145 directory to which the stream items belong. Each social stream table includes 146 several columns for metadata about each stream item, such as an icon 147 representing the source (an avatar), a label for the item, the primary text 148 content, comments about the item (such as responses from other people), and 149 more. Photos associated with a stream are stored in another table, defined by 150 {@link android.provider.ContactsContract.StreamItemPhotos}, which is available 151 as a sub-directory of the {@link android.provider.ContactsContract.StreamItems} 152 Uri.</p> 153 154 <p>See {@link android.provider.ContactsContract.StreamItems} and 155 {@link android.provider.ContactsContract.StreamItemPhotos} for more information.</p> 156 157 <p>To read or write social stream items for a contact, an application must 158 request permission from the user by declaring <code><uses-permission 159 android:name="android.permission.READ_SOCIAL_STREAM"></code> and/or <code><uses-permission 160 android:name="android.permission.WRITE_SOCIAL_STREAM"></code> in their manifest files.</p> 161 162 <h3 id="calendar">Calendar Provider</h4> 163 <ul> 164 <li>Adds the class {@link android.provider.CalendarContract.Colors} to represent 165 a color table in the <a href="{@docRoot}guide/topics/providers/calendar-provider.html">Calendar 166 Provider</a>. The class provides fields for accessing 167 colors available for a given account. Colors are referenced by 168 {@link android.provider.CalendarContract.ColorsColumns#COLOR_KEY COLOR_KEY} 169 which must be unique for a given account name/type. These values can only be 170 updated by the sync adapter.</li> 171 <li>Adds {@link android.provider.CalendarContract.CalendarColumns#ALLOWED_AVAILABILITY ALLOWED_AVAILABILITY} 172 and 173 {@link android.provider.CalendarContract.CalendarColumns#ALLOWED_ATTENDEE_TYPES ALLOWED_ATTENDEE_TYPES} 174 for exchange/sync support.</li> 175 <li>Adds {@link android.provider.CalendarContract.AttendeesColumns#TYPE_RESOURCE} 176 (such as conference rooms) for attendees and 177 {@link android.provider.CalendarContract.EventsColumns#AVAILABILITY_TENTATIVE}, 178 as well as {@link android.provider.CalendarContract.EventsColumns#EVENT_COLOR_KEY} 179 for events.</li> 180 </ul> 181 182 <h3 id="widgets">Home screen widgets</h3> 183 184 <p>Starting from Android 4.0, home screen widgets should no longer include their 185 own padding. Instead, the system now automatically adds padding for each widget, 186 based the characteristics of the current screen. This leads to a more uniform, 187 consistent presentation of widgets in a grid. To assist applications that host 188 home screen widgets, the platform provides a new method 189 {@link android.appwidget.AppWidgetHostView#getDefaultPaddingForWidget(android.content.Context, android.content.ComponentName, android.graphics.Rect) 190 getDefaultPaddingForWidget()}. Applications can call this method to get the 191 system-defined padding and account for it when computing the number of cells to 192 allocate to the widget.</p> 193 194 <h3 id="textservices">Spell-checking</h3> 195 196 <ul> 197 <li>For apps that accessing spell-checker services, a new {@link 198 android.view.textservice.SpellCheckerSession#cancel() cancel()} method cancels 199 any pending and running spell-checker tasks in a session.</li> 200 201 <li>For spell-checker services, a new suggestions flag, 202 {@link android.view.textservice.SuggestionsInfo#RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS}, 203 lets the services distinguish higher-confidence suggestions from 204 lower-confidence ones. For example, a spell-checker could set the flag if an 205 input word is not in the user dictionary but has likely suggestions, or not set 206 the flag if an input word is not in the dictionary and has suggestions that are 207 likely to be less useful. 208 209 <p>Apps connected to the spell-checker can use the {@link 210 android.view.textservice.SuggestionsInfo#RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS} 211 flag in combination with other suggestion attributes, as well as the {@link 212 android.view.textservice.SuggestionsInfo#getSuggestionsAttributes()} and {@link 213 android.view.textservice.SuggestionsInfo#getSuggestionsCount()} methods, to 214 determine whether to mark input words as typos and offer suggestions.</p></li> 215 216 <li>A new {@link android.text.style.SuggestionSpan#FLAG_AUTO_CORRECTION} style 217 for text spans indicates that auto correction is about to be applied to a 218 word/text that the user is typing/composing. This type of suggestion is rendered 219 differently, to indicate the auto correction is happening.</li> 220 </ul> 221 222 <h3 id="bluetooth">Bluetooth</h3> 223 <p>New public methods {@link 224 android.bluetooth.BluetoothDevice#fetchUuidsWithSdp()} and {@link 225 android.bluetooth.BluetoothDevice#getUuids()} let apps determine the features 226 (UUIDs) supported by a remote device. In the case of {@link 227 android.bluetooth.BluetoothDevice#fetchUuidsWithSdp()}, the system performs a 228 service discovery on the remote device to get the UUIDs supported, then 229 broadcasts the result in an {@link 230 android.bluetooth.BluetoothDevice#ACTION_UUID} intent.</p> 231 232 <h3 id="ui">UI toolkit</h3> 233 234 <p>New methods {@link android.app.Fragment#setUserVisibleHint(boolean) setUserVisibleHint()} and 235 {@link android.app.Fragment#getUserVisibleHint() getUserVisibleHint()} allow a 236 fragment to set a hint of whether or not it is currently user-visible. The 237 system defers the start of fragments that are not user-visible until the loaders 238 for visible fragments have run. The visibility hint is "true" by default.</li> 239 </p> 240 241 <h3 id="graphics">Graphics</h3> 242 243 <ul> 244 <li>New method {@link android.graphics.SurfaceTexture#setDefaultBufferSize(int 245 width, int height)} in {@link android.graphics.SurfaceTexture} sets the default size of the image 246 buffers. This method may be used to set the image size when producing images 247 with {@link android.graphics.Canvas} (via {@link 248 android.view.Surface#lockCanvas}), or OpenGL ES (via an EGLSurface).</li> 249 <li>Adds definitions for the enums of the GL_OES_EGL_image_external OpenGL ES extension — 250 {@link android.opengl.GLES11Ext#GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES}, 251 {@link android.opengl.GLES11Ext#GL_SAMPLER_EXTERNAL_OES}, 252 {@link android.opengl.GLES11Ext#GL_TEXTURE_BINDING_EXTERNAL_OES}, and 253 {@link android.opengl.GLES11Ext#GL_TEXTURE_EXTERNAL_OES}.</li> 254 </ul> 255 256 <h3 id="accessibility">Accessibility</h3> 257 258 <ul> 259 <li>Clients of {@link android.widget.RemoteViews} can now use the method {@link 260 android.widget.RemoteViews#setContentDescription(int, java.lang.CharSequence) 261 setContentDescription()} to set and get the content description of any View in 262 the inflated layout.</li> 263 264 <li>The methods {@link android.view.accessibility.AccessibilityRecord#getMaxScrollX()}, 265 {@link android.view.accessibility.AccessibilityRecord#getMaxScrollY()}, 266 {@link android.view.accessibility.AccessibilityRecord#setMaxScrollX(int) setMaxScrollX()}, and 267 {@link android.view.accessibility.AccessibilityRecord#setMaxScrollY(int) setMaxScrollY()} 268 allow apps to get and set the maximum scroll offset for an 269 {@link android.view.accessibility.AccessibilityRecord} object.</li> 270 271 <li>When touch-exploration mode is enabled, a new secure setting 272 {@link android.provider.Settings.Secure#ACCESSIBILITY_SPEAK_PASSWORD} 273 indicates whether the user requests the IME to speak text entered in password fields, even when 274 a headset is not in use. By default, no password text is spoken unless a headset 275 is in use.</li> 276 </ul> 277 278 <h3 id="tts">Text-to-speech</h3> 279 280 <ul> 281 <li>Adds the new method {@link 282 android.speech.tts.TextToSpeech.Engine#getFeatures(java.util.Locale) 283 getFeatures()}for querying and enabling network TTS support. 284 <li>Adds a new listener class, {@link 285 android.speech.tts.UtteranceProgressListener}, that engines can register to 286 receive notification of speech-synthesis errors.</li> 287 </ul> 288 289 <h3 id="database">Database</h3> 290 291 <ul> 292 <li>A new {@link android.database.CrossProcessCursorWrapper} class lets content 293 providers return results for a cross-process query more efficiently. The new 294 class is a useful building block for wrapping cursors that will be sent to 295 processes remotely. It can also transform normal {@link android.database.Cursor} 296 objects into {@link android.database.CrossProcessCursor} objects 297 transparently. 298 299 <p>The {@link android.database.CrossProcessCursorWrapper} class fixes common 300 performance issues and bugs that applications have encountered when 301 implementing content providers.</p></li> 302 303 <li>The {@link android.database.CursorWindow#CursorWindow(java.lang.String)} 304 constructor now takes a name string as input. The system no longer distinguishes 305 between local and remote cursor windows, so {@link 306 android.database.CursorWindow#CursorWindow(boolean)} is now deprecated.</li> 307 </ul> 308 309 <h3 id="intents">Intents</h3> 310 311 <p>Adds new categories for targeting common types of applications on the 312 device, such as {@link android.content.Intent#CATEGORY_APP_BROWSER}, {@link 313 android.content.Intent#CATEGORY_APP_CALENDAR}, {@link 314 android.content.Intent#CATEGORY_APP_MAPS}, and more.</li> 315 316 <h3 id="camera">Camera</h3> 317 318 <ul> 319 <li>{@link android.media.MediaMetadataRetriever} adds the new constant 320 {@link android.media.MediaMetadataRetriever#METADATA_KEY_LOCATION} to let apps 321 access retrieve location information for an image or video. </li> 322 323 <li>{@link android.media.CamcorderProfile} adds the QVGA (320x240) resolution 324 profiles. Quality level is represented by the 325 {@link android.media.CamcorderProfile#QUALITY_QVGA}.and 326 {@link android.media.CamcorderProfile#QUALITY_TIME_LAPSE_QVGA} constants.</li> 327 328 <li>New methods {@link android.hardware.Camera.Parameters#setVideoStabilization(boolean) setVideoStabilization()}, 329 {@link android.hardware.Camera.Parameters#getVideoStabilization() setVideoStabilization()}, and {@link android.hardware.Camera.Parameters#isVideoStabilizationSupported() isVideoStabilizationSupported()} 330 let you check and manage video stabilization for a {@link android.hardware.Camera}.</li> 331 </ul> 332 333 <h3 id="Permissions">Permissions</h3> 334 335 <p>The following are new permissions:</p> 336 <ul> 337 <li>{@link android.Manifest.permission#READ_SOCIAL_STREAM} and 338 {@link android.Manifest.permission#WRITE_SOCIAL_STREAM}: Allow a sync 339 adapter to read and write social stream data to a contact in the shared 340 Contacts Provider.</li> 341 </ul> 342 343 344 <div class="special" style="margin-top:2em"> 345 <p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API Level 346 {@sdkPlatformApiLevel}), see the <a 347 href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API Differences Report</a>.</p> 348 </div> 349 350 351 <h2 id="api-level">API Level</h2> 352 353 <p>The Android {@sdkPlatformVersion} API is assigned an integer 354 identifier—<strong>{@sdkPlatformApiLevel}</strong>—that is stored in the system itself. 355 This identifier, called the "API level", allows the system to correctly determine whether an 356 application is compatible with the system, prior to installing the application. </p> 357 358 <p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need compile the 359 application against an Android platform that supports API level {@sdkPlatformApiLevel} or 360 higher. Depending on your needs, you might also need to add an 361 <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code> attribute to the 362 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a> 363 element.</p> 364 365 <p>For more information, see the <a href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> 366 document. </p> 367 368 369 <h2 id="apps">Built-in Applications</h2> 370 371 <p>The system image included in the downloadable platform provides these 372 built-in applications:</p> 373 374 <table style="border:0;padding-bottom:0;margin-bottom:0;"> 375 <tr> 376 <td style="border:0;padding-bottom:0;margin-bottom:0;"> 377 <ul> 378 <li>API Demos</li> 379 <li>Browser</li> 380 <li>Calculator</li> 381 <li>Calendar</li> 382 <li>Camera</li> 383 <li>Clock</li> 384 <li>Custom Locale</li> 385 <li>Dev Tools</li> 386 <li>Downloads</li> 387 <li>Email</li> 388 <li>Gallery</li> 389 </ul> 390 </td> 391 <td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> 392 <ul> 393 <li>Gestures Builder</li> 394 <li>Messaging</li> 395 <li>Music</li> 396 <li>People</li> 397 <li>Phone</li> 398 <li>Search</li> 399 <li>Settings</li> 400 <li>Speech Recorder</li> 401 <li>Widget Preview</li> 402 </ul> 403 </td> 404 </tr> 405 </table> 406 407 408 <h2 id="locs" style="margin-top:.75em;">Locales</h2> 409 410 <p>The system image included in the downloadable SDK platform provides a variety of built-in 411 locales. In some cases, region-specific strings are available for the locales. In other cases, a 412 default version of the language is used. The languages that are available in the Android 3.0 system 413 image are listed below (with <em>language</em>_<em>country/region</em> locale descriptor).</p> 414 415 <table style="border:0;padding-bottom:0;margin-bottom:0;"> 416 <tr> 417 <td style="border:0;padding-bottom:0;margin-bottom:0;"> 418 <ul> 419 <li>Arabic, Egypt (ar_EG)</li> 420 <li>Arabic, Israel (ar_IL)</li> 421 <li>Bulgarian, Bulgaria (bg_BG)</li> 422 <li>Catalan, Spain (ca_ES)</li> 423 <li>Czech, Czech Republic (cs_CZ)</li> 424 <li>Danish, Denmark(da_DK)</li> 425 <li>German, Austria (de_AT)</li> 426 <li>German, Switzerland (de_CH)</li> 427 <li>German, Germany (de_DE)</li> 428 <li>German, Liechtenstein (de_LI)</li> 429 <li>Greek, Greece (el_GR)</li> 430 <li>English, Australia (en_AU)</li> 431 <li>English, Canada (en_CA)</li> 432 <li>English, Britain (en_GB)</li> 433 <li>English, Ireland (en_IE)</li> 434 <li>English, India (en_IN)</li> 435 <li>English, New Zealand (en_NZ)</li> 436 <li>English, Singapore(en_SG)</li> 437 <li>English, US (en_US)</li> 438 <li>English, South Africa (en_ZA)</li> 439 <li>Spanish (es_ES)</li> 440 <li>Spanish, US (es_US)</li> 441 <li>Finnish, Finland (fi_FI)</li> 442 <li>French, Belgium (fr_BE)</li> 443 <li>French, Canada (fr_CA)</li> 444 <li>French, Switzerland (fr_CH)</li> 445 <li>French, France (fr_FR)</li> 446 <li>Hebrew, Israel (he_IL)</li> 447 <li>Hindi, India (hi_IN)</li> 448 </ul> 449 </td> 450 <td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> 451 <li>Croatian, Croatia (hr_HR)</li> 452 <li>Hungarian, Hungary (hu_HU)</li> 453 <li>Indonesian, Indonesia (id_ID)</li> 454 <li>Italian, Switzerland (it_CH)</li> 455 <li>Italian, Italy (it_IT)</li> 456 <li>Japanese (ja_JP)</li> 457 <li>Korean (ko_KR)</li> 458 <li>Lithuanian, Lithuania (lt_LT)</li> 459 <li>Latvian, Latvia (lv_LV)</li> 460 <li>Norwegian bokml, Norway (nb_NO)</li> 461 <li>Dutch, Belgium (nl_BE)</li> 462 <li>Dutch, Netherlands (nl_NL)</li> 463 <li>Polish (pl_PL)</li> 464 <li>Portuguese, Brazil (pt_BR)</li> 465 <li>Portuguese, Portugal (pt_PT)</li> 466 <li>Romanian, Romania (ro_RO)</li> 467 <li>Russian (ru_RU)</li></li> 468 <li>Slovak, Slovakia (sk_SK)</li> 469 <li>Slovenian, Slovenia (sl_SI)</li> 470 <li>Serbian (sr_RS)</li> 471 <li>Swedish, Sweden (sv_SE)</li> 472 <li>Thai, Thailand (th_TH)</li> 473 <li>Tagalog, Philippines (tl_PH)</li> 474 <li>Turkish, Turkey (tr_TR)</li> 475 <li>Ukrainian, Ukraine (uk_UA)</li> 476 <li>Vietnamese, Vietnam (vi_VN)</li> 477 <li>Chinese, PRC (zh_CN)</li> 478 <li>Chinese, Taiwan (zh_TW)</li> 479 </td> 480 </tr> 481 </table> 482 483 <p class="note"><strong>Note:</strong> The Android platform may support more 484 locales than are included in the SDK system image. All of the supported locales 485 are available in the <a href="http://source.android.com/">Android Open Source 486 Project</a>.</p> 487 488 <h2 id="skins">Emulator Skins</h2> 489 490 <p>The downloadable platform includes the following emulator skins:</p> 491 492 <ul> 493 <li> 494 QVGA (240x320, low density, small screen) 495 </li> 496 <li> 497 WQVGA400 (240x400, low density, normal screen) 498 </li> 499 <li> 500 WQVGA432 (240x432, low density, normal screen) 501 </li> 502 <li> 503 HVGA (320x480, medium density, normal screen) 504 </li> 505 <li> 506 WVGA800 (480x800, high density, normal screen) 507 </li> 508 <li> 509 WVGA854 (480x854 high density, normal screen) 510 </li> 511 <li> 512 WXGA720 (1280x720, extra-high density, normal screen) 513 </li> 514 <li> 515 WSVGA (1024x600, medium density, large screen) 516 </li> 517 <li> 518 WXGA (1280x800, medium density, xlarge screen) 519 </li> 520 </ul> 521 522 <p>To test your application on an emulator that represents the latest Android device, you can create 523 an AVD with the new WXGA720 skin (it's an xhdpi, normal screen device). Note that the emulator 524 currently doesn't support the new on-screen navigation bar for devices without hardware navigation 525 buttons, so when using this skin, you must use keyboard keys <em>Home</em> for the Home button, 526 <em>ESC</em> for the Back button, and <em>F2</em> or <em>Page-up</em> for the Menu button.</p> 527 528 <p>However, due to performance issues in the emulator when running high-resolution screens such as 529 the one for the WXGA720 skin, we recommend that you primarily use the traditional WVGA800 skin 530 (hdpi, normal screen) to test your application.</p> 531 532