1 page.title=Android 1.6 Platform 2 excludeFromSuggestions=true 3 sdk.platform.version=1.6 4 sdk.platform.apiLevel=4 5 sdk.platform.majorMinor=minor 6 7 @jd:body 8 9 <div id="qv-wrapper"> 10 <div id="qv"> 11 12 <h2>In this document</h2> 13 <ol> 14 <li><a href="#features">Platform Highlights</a></li> 15 <li><a href="#relnotes">Revisions</a></li> 16 <li><a href="#api-level">API Level</a></li> 17 <li><a href="#api">Framework API Changes</a> 18 <li><a href="#apps">Built-in Applications</a></li> 19 <li><a href="#locs">Locales</a></li> 20 <li><a href="#skins">Emulator Skins</a></li> 21 22 </ol> 23 </li> 24 </ol> 25 26 <h2>Reference</h2> 27 <ol> 28 <li><a 29 href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 30 Differences Report »</a> </li> 31 </ol> 32 33 <h2>See Also</h2> 34 <ol> 35 <li><a href="{@docRoot}sdk/exploring.html">Exploring the SDK</a></li> 36 </ol> 37 38 </div> 39 </div> 40 41 <p> 42 <em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> 43 44 <p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release 45 deployable to Android-powered handsets since October 2009. 46 The platform includes new features for users and developers, as well as changes 47 in the Android framework API. </p> 48 49 <p>For developers, a new release of the Android {@sdkPlatformVersion} platform 50 is available as a downloadable component for the Android SDK. The platform 51 — Android 1.6 r2 — includes a fully compliant Android library and 52 system image, as well as a set of emulator skins, sample applications, and minor 53 development updates. The downloadable platform is fully compliant (API Level 4) 54 and includes no external libraries.</p> 55 56 <p>To get started developing or testing against the Android 57 {@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to 58 download the latest Android 1.6 platform into your Android 1.6 or later SDK. For 59 more information, see <a href="{@docRoot}sdk/exploring.html">Exploring the 60 SDK</a>.</p> 61 62 63 <h2 id="features">Platform Highlights</h2> 64 65 <p>For a list of new user features and platform highlights, see the <a 66 href="http://developer.android.com/about/versions/android-{@sdkPlatformVersion}-highlights.html">Android 67 {@sdkPlatformVersion} Platform Highlights</a> document.</p> 68 69 70 <h2 id="relnotes">Revisions</h2> 71 72 <p>The sections below provide notes about successive releases of 73 the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by 74 revision number. To determine what revision(s) of the Android 75 {@sdkPlatformVersion} platforms are installed in your SDK environment, refer to 76 the "Installed Packages" listing in the Android SDK and AVD Manager.</p> 77 78 <script type="text/javascript"> 79 function toggleDiv(link) { 80 var toggleable = $(link).parent(); 81 if (toggleable.hasClass("closed")) { 82 //$(".toggleme", toggleable).slideDown("fast"); 83 toggleable.removeClass("closed"); 84 toggleable.addClass("open"); 85 $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png")); 86 } else { 87 //$(".toggleme", toggleable).slideUp("fast"); 88 toggleable.removeClass("open"); 89 toggleable.addClass("closed"); 90 $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png")); 91 } 92 return false; 93 } 94 </script> 95 <style> 96 .toggleable { 97 padding: .25em 1em 0em 1em; 98 margin-bottom: 0; 99 } 100 .toggleme { 101 padding: 1em 1em 0 2em; 102 line-height:1em; 103 } 104 .toggleable a { 105 text-decoration:none; 106 } 107 .toggleme a { 108 text-decoration:underline; 109 } 110 .toggleable.closed .toggleme { 111 display:none; 112 } 113 #jd-content .toggle-img { 114 margin:0; 115 } 116 </style> 117 118 <div class="toggleable opened"> 119 <a href="#" onclick="return toggleDiv(this)"> 120 <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" /> 121 Android 1.6, Revision 3</a> <em>(May 2010)</em></a> 122 <div class="toggleme"> 123 <dl> 124 <dt>Dependencies:</dt> 125 <dd> 126 <p>Requires SDK Tools r6 or higher.</p> 127 </dd> 128 <dt>Tools:</dt> 129 <dd> 130 <ul> 131 <li>Adds support for library projects in the Ant build system.</li> 132 </ul> 133 </dd> 134 </dl> 135 </div> 136 </div> 137 138 <div class="toggleable closed"> 139 <a href="#" onclick="return toggleDiv(this)"> 140 <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> 141 Android 1.6, Revision 2</a> <em>(December 2009)</em></a> 142 <div class="toggleme"> 143 <dl> 144 <dt>Dependencies:</dt> 145 <dd> 146 <p>Requires SDK Tools r4 or higher.</p> 147 </dd> 148 149 <dt>API related:</dt> 150 <dd> 151 <ul> 152 <li>Properly exposes CDMA-related constants in <code><a href="{@docRoot}reference/android/telephony/TelephonyManager.html">android.telephony.TelephonyManager</a></code>: <code>DATA_ACTIVITY_DORMANT</code>, 153 <code>PHONE_TYPE_CDMA</code>, <code>NETWORK_TYPE_CDMA</code>, 154 <code>NETWORK_TYPE_EVDO_0</code>, <code>NETWORK_TYPE_EVDO_A</code>, and 155 <code>NETWORK_TYPE_1xRTT</code>.</li> 156 </ul> 157 </dd> 158 <dt>System image:</dt> 159 <dd> 160 <ul> 161 <li>Fixes bug so that Bitmap's density is now propagated through Parcelable.</li> 162 <li>Fixes NinePatchDrawable to properly scale its reported padding for compatibility mode.</li> 163 <li>Fixes TextView to properly compute styled font metrics based on the screen density.</li> 164 <li>Updates kernel to 2.6.29, to match kernel on commercially 165 available Android-powered devices.</li> 166 </ul> 167 </dd> 168 <dt>Tools:</dt> 169 <dd> 170 <ul> 171 <li>Adds new Ant build system with support for Emma instrumentation projects 172 (code coverage).</li> 173 <li>Fixes emulator skins to properly emulate d-pad in landscape mode.</li> 174 <li>Fixes density rendering in the layout editor in ADT.</li> 175 </ul> 176 </dd> 177 </dl> 178 </div> 179 </div> 180 181 <div class="toggleable closed"> 182 <a href="#" onclick="return toggleDiv(this)"> 183 <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> 184 Android 1.6, Revision 1</a> <em>(September 2009)</em></a> 185 <div class="toggleme"> 186 <dl> 187 <dt>Dependencies</dt> 188 <dd> 189 <p>Requires SDK Tools r3 or higher.</p> 190 </dd> 191 </dl> 192 </div> 193 </div> 194 195 196 <h2 id="api-level">API Level</h2> 197 198 <p>The Android {@sdkPlatformVersion} platform delivers an updated version of 199 the framework API. The Android {@sdkPlatformVersion} API 200 is assigned an integer identifier — 201 <strong>{@sdkPlatformApiLevel}</strong> — that is 202 stored in the system itself. This identifier, called the "API Level", allows the 203 system to correctly determine whether an application is compatible with 204 the system, prior to installing the application. </p> 205 206 <p>To use APIs introduced in Android {@sdkPlatformVersion} in your 207 application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the 208 <code>android:minSdkVersion</code> attributes of the <code><uses-sdk></code> 209 element in your application's manifest. </p> 210 211 <p>For more information about how to use API Level, see the <a 212 href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API Levels</a> document. </p> 213 214 215 <h2 id="api">Framework API Changes</h2> 216 217 <p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p> 218 219 <h3 id="UIFramework">UI framework</h3> 220 <ul> 221 <li>New classes in {@link android.view.animation} 222 to control the behavior of animations: 223 <ul> 224 <li><code>AnticipateInterpolator</code></li> 225 <li><code>AnticipateOvershootInterpolator</code></li> 226 <li><code>BounceInterpolator</code></li> 227 <li><code>OvershootInterpolator</code></li> 228 </ul> 229 </li> 230 <li>New XML attribute <code>android:onClick</code> to specify a View's 231 <a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> 232 from a layout file. 233 </li> 234 <li>New support for dealing with varying screen densities. Density 235 information is associated with Bitmap and Canvas for performing the 236 correct scaling. The framework will automatically scale bitmaps and 237 nine-patches based on the density the resource was found under and the 238 density of the screen, etc. 239 </li><p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 240 set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code><uses-sdk></code> 241 element in your application's manifest. </p> 242 </ul> 243 244 <h3>Search framework</h3> 245 <ul> 246 <li>Applications can now expose relevant content to users as search 247 suggestions in the Quick Search Box, a new device-wide search capability that is 248 accessible from the home screen. To support this, the search framework adds new 249 attributes to the searchable metadata file. For complete information, see the 250 {@link android.app.SearchManager SearchManager} documentation. 251 </li> 252 </ul> 253 254 <h3>Accessibility framework</h3> 255 <ul> 256 <li>New {@link android.view.accessibility android.accessibility} package 257 that includes classes for capturing accessibility events and forwarding them to 258 an {@link android.accessibilityservice AccessibilityService} handler. </li> 259 <li>New {@link android.accessibilityservice AccessibilityService} package 260 that lets your application track user events and provide visual, audible, or 261 haptic feedback to the user. </li> 262 </ul> 263 264 <h3>Gesture input</h3> 265 <ul> 266 <li>New {@link android.gesture gesture} API for creating, recognizing, 267 loading, and saving gestures.</li> 268 </ul> 269 270 <h3>Text-to-speech</h3> 271 <ul> 272 <li>New {@link android.speech.tts android.speech.tts} package provides 273 classes for synthesizing speech from text, for immediate playback or to create a 274 sound file.</li> 275 </ul> 276 277 <h3>Graphics</h3> 278 <ul> 279 <li>Classes in {@link android.graphics android.graphics} now support scaling 280 for different screen densities.</li> 281 </ul> 282 283 <h3>Telephony</h3> 284 <ul> 285 <li>New {@link android.telephony.SmsManager SmsManager} and other classes 286 for sending and receiving SMS messages.</li> 287 </ul> 288 289 <h3>Utilities</h3> 290 <ul> 291 <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for 292 determining the density of the current device screen.</li> 293 </ul> 294 295 <h3 id="AndroidManifest">Android Manifest elements</h3> 296 297 <ul> 298 <li>New <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code 299 <supports-screens>}</a> element lets you specify the device screen sizes that your 300 application is designed and tested to support, where "size" is a combination 301 of resolution and density. If your application is run on a device whose screen 302 size is not specified in the <code><supports-screen></code> element, the system 303 displays the application in <em>compatibility mode</em>, which performs best-effort scaling 304 of the application UI to match the resolution and density of the screen. 305 306 <p>The attributes available for defining an application's screen support are: 307 308 <ul> 309 310 <li><code>smallScreen</code>: Boolean value that indicates whether the 311 application is designed to run on devices with small screens. 312 Examples: QVGA low density; VGA high density. 313 </li> 314 <li><code>normalScreens</code>: Boolean value that indicates whether 315 the application is designed to run on devices with normal screens. 316 Examples: WQVGA low density; HVGA medium density; WVGA high density. 317 </li> 318 <li><code>largeScreens</code>: Boolean value that indicates whether 319 the application is designed to run on devices with significantly 320 larger screens, such that special care may be required on 321 the application's part to make proper use of the screen area. 322 Examples: VGA medium density; WVGA medium density. 323 </li> 324 <li><code>anyDensity</code>: Boolean value that indicates whether 325 the application can accommodate any screen density. 326 </li> 327 <li><code>resizable</code>: Boolean value that indicates whether 328 the application can expand its layout to fit slightly larger screens. 329 </li> 330 </ul> 331 </p> 332 </li> 333 334 <li>New <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> 335 element lets an application specify hardware (or other) 336 features that it requires to function normally. When an application 337 specifies such features, the system allows the application to be installed only 338 on devices that offer the required features. The element supports these 339 attributes: 340 <ul> 341 <li><code>name</code>: The name of the feature required by the application. Currently accepts 342 "android.hardware.camera" and "android.hardware.camera.autofocus" values, which specify that a 343 camera and camera autofocus are required, respectively.</li> 344 <li><code>glEsVersion</code>: Indicates the minimum version of OpenGL ES required.</li> 345 </ul> 346 </li> 347 <li>New attributes for the 348 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a> element: 349 <ul> 350 <li><code>targetSdkVersion</code>: Indicates the API Level that the application is targeting. 351 It is able to run on older versions (down to minSdkVersion), but was explicitly tested to 352 work with the version specified here. Specifying this version allows the platform to 353 disable compatibility code that is not required or enable newer features that are not 354 available to older applications. </li> 355 <li><code>maxSdkVersion</code>: Indicates the maximum API Level on which an application is 356 designed to run. <strong>Important:</strong> Please read the <a 357 href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code><uses-sdk></code></a> 358 documentation before using this attribute. </li> 359 </ul> 360 </li> 361 362 </li> 363 </ul> 364 365 <h3>New permissions</h3> 366 367 <ul> 368 <li>{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE 369 CHANGE_WIFI_MULTICAST_STATE}: Allows applications to enter Wi-Fi 370 Multicast mode. 371 </li> 372 <li>{@link android.Manifest.permission#GLOBAL_SEARCH}: Allows the 373 global search system to access the data of a specified content provider. 374 </li> 375 <li>{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}: 376 Allows an application to install a location provider into the Location Manager. 377 </li> 378 <li>{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS}: 379 Allows an application to read (but not write) the user's browsing history 380 and bookmarks. 381 </li> 382 <li>{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}: 383 Allows an application to write (but not read) the user's browsing history 384 and bookmarks. 385 </li> 386 <li>{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}: 387 Allows an application to write to external storage. Applications using API Level 3 388 and lower will be implicitly granted this permission (and this will be visible to 389 the user); Applications using API Level 4 or higher must explicitly request this 390 permission. 391 </li> 392 </ul> 393 394 395 <h3 id="api-diff">API differences report</h3> 396 397 <p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to 398 the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 399 Differences Report</a>.</p> 400 401 <h2 id="apps">Built-in Applications</h2> 402 403 <p>The system image included in the downloadable platform provides these 404 built-in applications:</p> 405 406 <table style="border:0;padding-bottom:0;margin-bottom:0;"> 407 <tr> 408 <td style="border:0;padding-bottom:0;margin-bottom:0;"> 409 <ul> 410 <li>Alarm Clock</li> 411 <li>Browser</li> 412 <li>Calculator</li> 413 <li>Camcorder</li> 414 <li>Camera</li> 415 <li>Contacts</li> 416 <li>Custom Locale (developer app)</li> 417 <li>Dev Tools (developer app)</li> 418 <li>Dialer</li> 419 </ul> 420 </td> 421 <td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> 422 <ul> 423 <li>Email</li> 424 <li>Gallery</li> 425 <li>Gestures Builder</li> 426 <li>IME for Japanese text input</li> 427 <li>Messaging</li> 428 <li>Music</li> 429 <li>Settings</li> 430 <li>Spare Parts (developer app)</li> 431 </ul> 432 </td> 433 </tr> 434 </table> 435 436 <h2 id="locs" style="margin-top:.75em;">Locales</h2> 437 438 <p>The system image included in the downloadable platform provides a variety of 439 built-in locales. In some cases, region-specific strings are available for the 440 locales. In other cases, a default version of the language is used. The 441 languages that are available in the Android {@sdkPlatformVersion} system 442 image are listed below (with <em>language</em>_<em>country/region</em> 443 locale descriptor).</p> 444 445 <table style="border:0;margin-bottom:0;padding-bottom:0;"> 446 <tr> 447 <td style="border:0;padding-bottom:0;margin-bottom:0;"> 448 <ul> 449 <li>Chinese, PRC (zh_CN)</li> 450 <li>Chinese, Taiwan (zh_TW)</li> 451 <li>Czech (cs_CZ)</li> 452 <li>Dutch, Netherlands (nl_NL)</li> 453 <li>Dutch, Belgium (nl_BE)</li> 454 <li>English, US (en_US)</li> 455 <li>English, Britain (en_GB)</li> 456 <li>English, Canada (en_CA)</li> 457 <li>English, Australia (en_AU)</li> 458 <li>English, New Zealand (en_NZ)</li> 459 <li>English, Singapore(en_SG)</li> 460 <li>French, France (fr_FR)</li> 461 <li>French, Belgium (fr_BE)</li> 462 </ul> 463 </td> 464 <td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> 465 <li>French, Canada (fr_CA)</li> 466 <li>French, Switzerland (fr_CH)</li> 467 <li>German, Germany (de_DE)</li> 468 <li>German, Austria (de_AT)</li> 469 <li>German, Switzerland (de_CH)</li> 470 <li>German, Liechtenstein (de_LI)</li> 471 <li>Italian, Italy (it_IT)</li> 472 <li>Italian, Switzerland (it_CH)</li> 473 <li>Japanese (ja_JP)</li> 474 <li>Korean (ko_KR)</li> 475 <li>Polish (pl_PL)</li> 476 <li>Russian (ru_RU)</li> 477 <li>Spanish (es_ES)</li> 478 </td> 479 </tr> 480 </table> 481 482 <p>Localized UI strings match the locales that are accessible 483 through Settings.</p> 484 485 <h2 id="skins">Emulator Skins</h2> 486 487 <p>The downloadable platform includes a set of emulator skins that you can 488 use for modeling your application in different screen sizes and resolutions. 489 The emulator skins are: </p> 490 491 <ul> 492 <li> 493 QVGA (240x320, low density, small screen) 494 </li> 495 <li> 496 HVGA (320x480, medium density, normal screen) 497 </li> 498 <li> 499 WVGA800 (480x800, high density, normal screen) 500 </li> 501 <li> 502 WVGA854 (480x854 high density, normal screen) 503 </li> 504 </ul> 505 506 <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> 507