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