blob: 7151325626b9271ff0704f19ec11f7f4b9ecff4b [file] [log] [blame]
Dirk Doughertybca9f1b2009-11-18 23:06:16 -08001page.title=Android 1.6, Release 2
Dirk Doughertyee58d1b2009-10-16 15:25:15 -07002sdk.platform.version=1.6
3sdk.platform.apiLevel=4
4sdk.platform.majorMinor=minor
Dirk Doughertybca9f1b2009-11-18 23:06:16 -08005sdk.platform.releaseDate=December 2009
Dirk Doughertyee58d1b2009-10-16 15:25:15 -07006sdk.platform.deployableDate=October 2009
Dirk Doughertya6602f12009-08-27 16:26:43 -07007
8@jd:body
9
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070010<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>
Dirk Doughertybca9f1b2009-11-18 23:06:16 -080016 <li><a href="#releases">Release Notes</a></li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070017 <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>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070020 <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 &raquo;</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
Dirk Doughertya6602f12009-08-27 16:26:43 -070036<p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070037<em>Date:</em> {@sdkPlatformReleaseDate}<br />
38<em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
39
40<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
Dirk Doughertybca9f1b2009-11-18 23:06:16 -080041deployable to Android-powered handsets since {@sdkPlatformDeployableDate}.
42The platform includes new features for users and developers, as well as changes
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070043in the Android framework API. </p>
44
Dirk Doughertybca9f1b2009-11-18 23:06:16 -080045<p>For developers, a new release of the Android {@sdkPlatformVersion} platform
46is available as a downloadable component for the Android SDK. The platform
47&mdash; Android 1.6 r2 &mdash; 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>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070051
52<p>To get started developing or testing against the Android
53{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to
Dirk Doughertybca9f1b2009-11-18 23:06:16 -080054download 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
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070056Components</a>.</p>
Dirk Doughertya6602f12009-08-27 16:26:43 -070057
58
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070059<h2 id="features">Platform Highlights</h2>
Dirk Doughertya6602f12009-08-27 16:26:43 -070060
Dirk Dougherty24db03a2009-09-09 13:33:45 -070061<p>For a list of new user features and platform highlights, see the <a
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070062href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights.html">Android
63{@sdkPlatformVersion} Platform Highlights</a> document.</p>
64
Dirk Doughertya6602f12009-08-27 16:26:43 -070065
Dirk Doughertybca9f1b2009-11-18 23:06:16 -080066<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>
Dirk Dougherty7500f342009-12-01 16:45:14 -080077<li>Properly exposes CDMA-related constants in {@link android.telephony.TelephonyManager android.telephony.TelephonyManager}: <code>DATA_ACTIVITY_DORMANT</code>,
Dirk Doughertybca9f1b2009-11-18 23:06:16 -080078<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
Dirk Doughertya6602f12009-08-27 16:26:43 -0700105<h2 id="apps">Built-in Applications</h2>
106
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700107<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;">
Dirk Doughertya6602f12009-08-27 16:26:43 -0700113 <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>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700123 </ul>
124</td>
125<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
126 <ul>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700127 <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>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700136</td>
137</tr>
138</table>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700139
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700140<h2 id="locs" style="margin-top:.75em;">Locales</h2>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700141
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700142<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
Dirk Doughertyeeb0b252009-10-22 16:08:32 -0700145languages that are available in the Android {@sdkPlatformVersion} system
146image are listed below (with <em>language</em>_<em>country/region</em>
147locale descriptor).</p>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700148
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700149<table style="border:0;margin-bottom:0;padding-bottom:0;">
Dirk Doughertya6602f12009-08-27 16:26:43 -0700150<tr>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700151<td style="border:0;padding-bottom:0;margin-bottom:0;">
152<ul>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700153<li>Chinese, PRC (zh_CN)</li>
154<li>Chinese, Taiwan (zh_TW)</li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700155<li>Czech (cs_CZ)</li>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700156<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>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700162<li>English, New Zealand (en_NZ)</li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700163<li>English, Singapore(en_SG)</li>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700164<li>French, France (fr_FR)</li>
165<li>French, Belgium (fr_BE)</li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700166</ul>
167</td>
168<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
Dirk Doughertya6602f12009-08-27 16:26:43 -0700169<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>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700175<li>Italian, Italy (it_IT)</li>
176<li>Italian, Switzerland (it_CH)</li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700177<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>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700182</td>
183</tr>
184</table>
185
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700186<p>Localized UI strings match the locales that are accessible
187through Settings.</p>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700188
Dirk Doughertyeeb0b252009-10-22 16:08:32 -0700189<h2 id="skins">Emulator Skins</h2>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700190
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 &mdash; <strong>{@sdkPlatformApiLevel}</strong> &mdash; 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
Dirk Doughertyeeb0b252009-10-22 16:08:32 -0700226set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code>&lt;uses-sdk&gt;</code>
227element in your application's manifest. </p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700228
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>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700233
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700234<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.
Dirk Doughertyeeb0b252009-10-22 16:08:32 -0700254 </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>&lt;uses-sdk&gt;</code>
256element in your application's manifest. </p>
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700257 </ul>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700258
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700259<h4>Search framework</h4>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700260 <ul>
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700261 <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>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700267 </ul>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700268
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700269<h4>Accessibility framework</h4>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700270 <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>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700278
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700279<h4>Gesture Input</h4>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700280 <ul>
281 <li>New {@link android.gesture gesture} API for creating, recognizing,
282loading, and saving gestures.</li>
283 </ul>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700284
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700285<h4>Text-to-speech</h4>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700286 <ul>
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700287 <li>New {@link android.speech.tts android.speech.tts} package provides
Dirk Doughertya6602f12009-08-27 16:26:43 -0700288classes for synthesizing speech from text, for immediate playback or to create a
289sound file.</li>
290 </ul>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700291
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700292<h4>Graphics</h4>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700293 <ul>
294 <li>Classes in {@link android.graphics android.graphics} now support scaling
295for different screen densities.</li>
296 </ul>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700297
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700298<h4>Telephony</h4>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700299 <ul>
300 <li>New {@link android.telephony.SmsManager SmsManager} and other classes
301for sending and receiving SMS messages.</li>
302 </ul>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700303
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700304<h4>Utilities</h4>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700305 <ul>
306 <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for
307determining the density of the current device screen.</li>
308 </ul>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700309
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700310<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 &lt;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>&lt;supports-screen&gt;</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 &lt;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 &lt;uses-sdk>}</a> element:
364 <ul>
Dirk Dougherty7500f342009-12-01 16:45:14 -0800365 <li><code>targetSdkVersion</code>: Indicates the API Level that the application is targeting.
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700366 It is able to run on older versions (down to minSdkVersion), but was explicitly tested to
367 work with the version specified here. Specifying this version allows the platform to
368 disable compatibility code that is not required or enable newer features that are not
369 available to older applications. </li>
Dirk Dougherty7500f342009-12-01 16:45:14 -0800370 <li><code>maxSdkVersion</code>: Indicates the maximum API Level on which an application is
371 designed to run. <strong>Important:</strong> Please read the <a
372 href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
373 documentation before using this attribute. </li>
Dirk Dougherty24db03a2009-09-09 13:33:45 -0700374 </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
Dirk Doughertya6602f12009-08-27 16:26:43 -0700409
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700410<h3 id="api-diff">API differences report</h3>
Dirk Doughertya6602f12009-08-27 16:26:43 -0700411
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700412<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>