Home | History | Annotate | Download | only in versions
      1 page.title=Android 1.6 Platform
      2 sdk.platform.version=1.6
      3 sdk.platform.apiLevel=4
      4 sdk.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
     28 href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
     29 Differences 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
     44 deployable to Android-powered handsets since October 2009.
     45 The platform includes new features for users and developers, as well as changes
     46 in the Android framework API. </p>
     47 
     48 <p>For developers, a new release of the Android {@sdkPlatformVersion} platform
     49 is 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
     51 system image, as well as a set of emulator skins, sample applications, and minor
     52 development updates. The downloadable platform is fully compliant (API Level 4)
     53 and 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
     57 download the latest Android 1.6 platform into your Android 1.6 or later SDK. For
     58 more information, see <a href="{@docRoot}sdk/exploring.html">Exploring the
     59 SDK</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
     65 href="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
     72 the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by
     73 revision number. To determine what revision(s) of the Android
     74 {@sdkPlatformVersion} platforms are installed in your SDK environment, refer to
     75 the "Installed Packages" listing in the Android SDK and AVD Manager.</p>
     76 
     77 <script type="text/javascript">
     78 function 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
    164 available 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
    198 the framework API. The Android {@sdkPlatformVersion} API
    199 is assigned an integer identifier &mdash;
    200 <strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
    201 stored in the system itself. This identifier, called the "API Level", allows the
    202 system to correctly determine whether an application is compatible with
    203 the system, prior to installing the application. </p>
    204 
    205 <p>To use APIs introduced in Android {@sdkPlatformVersion} in your
    206 application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the
    207 <code>android:minSdkVersion</code> attributes of the <code>&lt;uses-sdk&gt;</code>
    208 element in your application's manifest. </p>
    209 
    210 <p>For more information about how to use API Level, see the <a
    211 href="{@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> 
    231 from a layout file.
    232       </li>
    233       <li>New support for dealing with varying screen densities. Density
    234 information is associated with Bitmap and Canvas for performing the
    235 correct scaling. The framework will automatically scale bitmaps and
    236 nine-patches based on the density the resource was found under and the
    237 density of the screen, etc.
    238       </li><p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 
    239 set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code>&lt;uses-sdk&gt;</code> 
    240 element 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
    246 suggestions in the Quick Search Box, a new device-wide search capability that is
    247 accessible from the home screen. To support this, the search framework adds new
    248 attributes 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
    256 that includes classes for capturing accessibility events and forwarding them to
    257 an {@link android.accessibilityservice AccessibilityService} handler. </li>
    258     <li>New {@link android.accessibilityservice AccessibilityService} package
    259 that lets your application track user events and provide visual, audible, or
    260 haptic 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,
    266 loading, 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
    272 classes for synthesizing speech from text, for immediate playback or to create a
    273 sound file.</li>
    274   </ul>
    275 
    276 <h3>Graphics</h3>
    277   <ul>
    278     <li>Classes in {@link android.graphics android.graphics} now support scaling
    279 for different screen densities.</li>
    280   </ul>
    281 
    282 <h3>Telephony</h3>
    283   <ul>
    284     <li>New {@link android.telephony.SmsManager SmsManager} and other classes
    285 for 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
    291 determining 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 
    397 the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 
    398 Differences 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
    403 built-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
    438 built-in locales. In some cases, region-specific strings are available for the
    439 locales. In other cases, a default version of the language is used. The
    440 languages that are available in the Android {@sdkPlatformVersion} system 
    441 image are listed below (with <em>language</em>_<em>country/region</em> 
    442 locale 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 
    482 through 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 
    487 use for modeling your application in different screen sizes and resolutions. 
    488 The 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