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