Home | History | Annotate | Download | only in versions
      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 &raquo;</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>&nbsp;<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 &mdash; Android 1.6 r2 &mdash; 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 &mdash;
    201 <strong>{@sdkPlatformApiLevel}</strong> &mdash; 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>&lt;uses-sdk&gt;</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>&lt;uses-sdk&gt;</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       &lt;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>&lt;supports-screen&gt;</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 &lt;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 &lt;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>&lt;uses-sdk&gt;</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