Home | History | Annotate | Download | only in sdk
      1 page.title=SDK Release Notes
      2 excludeFromSuggestions=true
      3 @jd:body
      4 
      5 <p>This document provides version-specific information about Android SDK
      6 releases. <!--For the latest known issues, please ensure that you're viewing this
      7 page at <a
      8 href="http://developer.android.com/sdk/RELEASENOTES.html">http://developer.
      9 android.com/sdk/RELEASENOTES.html</a>.--></p>
     10 
     11 <h2 id="multiversion_r1">Android SDK</h2>
     12 
     13 <p>The Android SDK has changed! If you've worked with the Android SDK before,
     14 you will notice several important differences:</p>
     15 
     16 <ul>
     17 <li style="margin-top:.5em">The SDK downloadable package includes <em>only</em>
     18 the latest version of the Android SDK Tools.</li>
     19 <li>Once you've installed the SDK, you now use the Android SDK and AVD Manager
     20 to download all of the SDK components that you need, such as Android platforms,
     21 SDK add-ons, tools, and documentation. </li>
     22 <li>The new approach is modular &mdash; you can install only the components you
     23 need and update any or all components without affecting your development
     24 environment.</li>
     25 <li>In short, once you've installed the new SDK, you will not need to download
     26 an SDK package again. Instead, you will use the Android SDK and AVD Manager to
     27 keep your development environment up-to-date. </li>
     28 </ul>
     29 
     30 <p>Note that if you are currently using the Android 1.6 SDK, you do not
     31 necessarily need to install the new SDK, since your existing SDK already
     32 includes the Android SDK and AVD Manager tool. To develop against Android 2.0.1,
     33 for example, you could just download the Android 2.0.1 platform into your existing
     34 SDK. </p>
     35 
     36 <p>Release notes for Android platforms and other SDK components are
     37 now available from the "SDK" tab, under "Downloadable SDK Components."</p>
     38 
     39 <ul>
     40 <li>Notes for the Android 2.0.1 platform are in the <a
     41 href="{@docRoot}about/versions/android-2.0.1.html">Android 2.0.1, Release 1</a> document. </li>
     42 <li>You can find information about tools changes in the <a
     43 href="{@docRoot}tools/sdk/tools-notes.html#notes">SDK Tools</a> and <a
     44 href="{@docRoot}tools/sdk/eclipse-adt.html#notes">ADT Plugin for Eclipse</a>.</li>
     45 </ul>
     46 
     47 <p>To get started with the SDK, review the Quick Start summary on the <a
     48 href="{@docRoot}sdk/index.html">Android SDK download page</a> or read <a
     49 href="{@docRoot}sdk/installing/index.html">Installing the SDK</a> for detailed
     50 installation instructions. </p>
     51 
     52 
     53 <h2 id="1.6_r1">Android 1.6 SDK, Release 1</h2>
     54 
     55 <p>This SDK provides updates to the development tools and Android system that
     56 you use to create applications for compliant Android-powered devices. </p>
     57 
     58 <h3>Release Overview</h3>
     59 
     60 <p>This SDK release includes several new features for developers. Highlights of the
     61 changes include: </p>
     62 
     63   <ul>
     64     <li>Emulator support for multiple screen sizes/densities, including new
     65 skins. </li>
     66     <li>Android SDK and AVD Manager, a graphical UI to let you manage your
     67 SDK and AVD environments more easily. The tool lets you create and manage 
     68 your <a href="{@docRoot}tools/devices/managing-avds.html">Android Virtual
     69 Devices</a> and download new SDK packages (such as platform versions and 
     70 add-ons) into your environment.</li>
     71     <li>Improved support for test packages in New Project Wizard</li>
     72     <li>The reference documentation now offers a "Filter by API Level" 
     73 capability that lets you display only the parts of the API that are actually 
     74 available to your application, based on the <code>android:minSdkVersion</code>
     75 value the application declares in its manifest. For more information, see
     76 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">Android API Levels</a></li>
     77   </ul>
     78 
     79 <p>For details about the Android platforms included in the SDK &mdash; including
     80 bug fixes, features, and API changes &mdash; please read the <a
     81 href="android-1.6.html">Android 1.6 version notes</a>.</p>
     82 
     83 <h3>Installation and Upgrade Notes</h3>
     84 
     85 <p>If you've been developing an application using an Android 1.1 SDK, you need
     86 to make a few changes to your development environment to migrate to the new SDK.
     87 Tools and documentation are provided to assist you. No changes to the source
     88 code of an existing application should be needed, provided that your application
     89 is not using Android internal structures or APIs.</p>
     90 
     91 <p>To ensure that your existing application will work properly on a device
     92 running the latest version of the Android platform, you are strongly encouraged
     93 to migrate the application to the new SDK, compile it using the platform
     94 matching the application's original API Level, and run it against the most
     95 current platform. </p>
     96 
     97 <h3>ADT Plugin for Eclipse</h3>
     98 
     99 <p>An updated version of the ADT Plugin for Eclipse is available with the
    100 Android 1.6 SDK. The new version, ADT 0.9.3, provides several new
    101 features, including integrated support for the Android SDK and AVD Manager
    102 and zipalign tool. In addition, the New Project Wizard now
    103 lets you create a test package containing tests for your application. These
    104 features are described in the sections below. </p>
    105 
    106 <p>If you are developing in Eclipse with ADT and want to get started with the
    107 Android 1.6 SDK, you should download and install a compatible version of the ADT
    108 Plugin (0.9.3 or higher). </p>
    109 
    110 <p>The new version of ADT is downloadable from the usual remote update site or
    111 is separately downloadable as a .zip archive. For instructions on how to
    112 download the plugin, please see <a
    113 href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>. </p>
    114 
    115 <h3>Android SDK and AVD Manager</h3>
    116 
    117 <p>The SDK offers a new tool called Android SDK and AVD Manager that lets you 
    118 manage your SDK and AVD environments more efficiently. </p>
    119 
    120 <p>Using the tool, you can quickly check what Android platforms, add-ons,
    121 extras, and documentation packages are available in your SDK environment, what
    122 their versions are, and whether updated versions are available. You can then
    123 download one or more items from remote repositories and install them directly in
    124 your SDK environment. For example, the tool lets you obtain updates to SDK tools
    125 incrementally, as they are made available, without having to wait for the next
    126 SDK release. You can also download Android platform versions into your
    127 environment that were not included in the SDK package.</p>
    128 
    129 <p>The tool also lets you quickly create new AVDs, manage
    130 their properties, and run a target AVD from a single window. </p>
    131 
    132 <p>If you are developing in Eclipse with ADT, you can access the Android SDK 
    133 and AVD Manager from the <strong>Window</strong> menu. </p>
    134 
    135 <p>If you are developing in another IDE, you can access the Android SDK and 
    136 AVD Manager through the <code>android</code> command-line tool, located in the
    137 &lt;sdk&gt;/tools directory. You can launch the tool with a graphical UI by
    138 using the <code>android</code> command without specifying any options. You can
    139 also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
    140 You can still use <code>android</code> commands to create and manage AVDs, 
    141 including AVDs with custom hardware configurations.</p>
    142 
    143 <h3>Integration with zipalign</h3>
    144 
    145 <p>The Android system offers a performance optimization for installed
    146 application packages whose contained uncompressed files are all aligned on
    147 4-byte boundaries. For these .apks, the system can read the files by mmap'ing
    148 the zip file, rather than by copying all the data out of them. This reduces
    149 the amount of memory used by the application at run time. The SDK includes
    150 a tool called <code>zipalign</code> that you can run against your .apks, to
    151 align them properly and enable them to benefit from this optimization.</p>
    152 
    153 <p>The ADT Plugin and the Ant build tools both provide integrated support for
    154 aligning your application packages. After you build an .apk, the SDK tools can
    155 sign and then run <code>zipalign</code> against it. The SDK includes the
    156 standalone version of the <code>zipalign</code> tool, so you can run also run it
    157 manually from the command line if you choose. </p>
    158 
    159 <ul>
    160   <li>If you are developing in Eclipse with ADT, support for
    161 <code>zipalign</code> is integrated into the Export Wizard. When you use the
    162 Wizard to export a signed application package, ADT signs and then automatically
    163 runs <code>zipalign</code> against the exported package. If you use the Wizard 
    164 to export an unsigned application package, then it will not zipalign the 
    165 package because zipalign must be performed only after the APK has been signed. 
    166 You must manually sign and zipalign the package after export. </li>
    167   <li>If you are developing using Ant and are compiling in release mode, the
    168 build tools will automatically sign and then <code>zipalign</code> the
    169 application package, provided that you have specified the location of a valid
    170 keystore in the build properties file. If you are compiling in debug mode, the
    171 build tools will sign the package with the debug key and then <code>zipalign</code>
    172 it.</li>
    173   <li>To use <code>zipalign</code> manually, change to the SDK tools directory
    174 and use the command syntax <code>$ zipalign 4 &lt;infile&gt;
    175 &lt;outfile&gt;</code></li>
    176 </ul>
    177 
    178 <p>In general, note that you must <code>zipalign</code> an application only
    179 <em>after</em> it has been signed, as signing will disrupt the package
    180 alignment.</p>
    181 
    182 <h3>Support for Test Packages in New Project Wizard</h3>
    183 
    184 <p>The New Project Wizard available in the ADT 0.9.3 now lets you add a test
    185 package containing Instrumentation or other classes of tests while you are 
    186 creating or importing a new Android application project. </p>
    187 
    188 <h3>New USB Driver for Windows</h3>
    189 
    190 <p>If you are using Windows and want to develop or test your application on an
    191 Android-powered device (such as the T-Mobile G1), you need an appropriate USB
    192 driver. 
    193 
    194 <p>The Windows version of the Android 1.6 SDK includes a new, WinUSB-based
    195 driver that you can install. The driver is compatible with both 32- and 64-bit
    196 versions of Windows XP and Vista. The driver represents an upgrade from the USB
    197 driver included in previous Android SDKs, although installing the new driver is
    198 not required. </p>
    199 
    200 <p>If you installed the USB driver from a previous SDK release and it is working
    201 properly, you do not need to upgrade to the new driver. However, we recommend
    202 upgrading if you have had any problems with the older driver or simply want
    203 to upgrade to the latest version.</p>
    204 
    205 <p>For driver installation or
    206 upgrade instructions, see  <a
    207 href="{@docRoot}sdk/win-usb.html">USB Driver for Windows</a>.</p>
    208 </p>
    209 
    210 <h3>Emulator Skins, Android 1.6 Platform</h3>
    211 
    212 <p>The Android 1.6 platform included in the SDK provides a new set of emulator
    213 skins, including: </p>
    214 
    215 <ul>
    216   <li>QVGA &mdash; 240 x 320, low density (120 dpi)</li>
    217   <li>HVGA &mdash; 320 x 480, medium density (160 dpi)</li>
    218   <li>WVGA800  &mdash; 480 x 800, high density (240 dpi)</li>
    219   <li>WVGA854  &mdash; 480 x 854, high density (240 dpi)</li>
    220 </ul>
    221 
    222 <p>Besides these defaults, You can also create an AVD that overrides the default
    223 density for each skin, to create any combination of resolution/density (WVGA
    224 with medium density, for instance).  To do so, use the <code>android</code> tool
    225 command line to create a new AVD that uses a custom hardware configuration. See
    226 <a href="{@docRoot}tools/devices/managing-avds.html#createavd">Creating an
    227 AVD</a> for more information.</p>
    228 
    229 <h3>Other Notes and Resolved Issues</h3>
    230 
    231 <ul>
    232   <li>This SDK release adds support for Eclipse 3.5 (Galileo) and deprecates
    233 support for Eclipse 3.3 (Europa). </li>
    234   <li>We regret to inform developers that Android 1.6 will not include support
    235 for <a href="http://www.ietf.org/rfc/rfc2549">RFC 2549</a></li>
    236   <li>The issue preventing adb from recognizing Samsung Galaxy devices (linux SDK
    237 only) has been fixed.</li>
    238 </ul>
    239 
    240 
    241 <h2 id="1.5_r3">Android 1.5 SDK, Release 3</h2>
    242 
    243 <p>Provides an updated Android 1.5 system image that includes permissions
    244 fixes, as described below, and a new application &mdash; an IME for Japanese 
    245 text input. Also provides the same set of developer tools included in the 
    246 previous SDK, but with bug fixes and several new features.</p>
    247 
    248 <h3>Permissions Fixes</h3>
    249 
    250 <p>The latest version of the Android platform, deployable to 
    251 Android-powered devices, includes fixes to the permissions-checking
    252 in certain areas of the framework. Specifically, the Android system
    253 now properly checks and enforces several existing permissions where it
    254 did not do so in the previous release. Because of these changes in 
    255 enforcement, you are strongly encouraged to test your application 
    256 against the new Android 1.5 system image included in this SDK, to ensure 
    257 that it functions normally. </p>
    258 
    259 <p>In particular, if your application uses any of the system areas listed below,
    260 you should add the required permissions to the application's manifest and then
    261 test the areas of your code that depend on the permission-protected services.
    262 Even if you believe your application does not use the permissions-protected
    263 services, you should compile and test your application under the latest platform
    264 version to ensure that users will not encounter problems when using your
    265 application. </p>
    266 
    267 <p>The changes to permissions are as follows:</p>
    268 
    269 <ul>
    270 <li>When an application requests access to device camera (through
    271 android.hardware.camera), the <code>CAMERA</code> permission check is now
    272 properly enforced. </li>
    273 <li>When an application requests access to device audio capture (through
    274 android.media.MediaRecorder), the <code>RECORD_AUDIO</code> permission check is
    275 now properly enforced.</li>
    276 </ul>
    277 
    278 <p>For more information, see the issue described in the oCert advisory
    279 below:</p>
    280 
    281 <p style="margin-left: 2em;"><a href="http://www.ocert.org/advisories/ocert-2009-011.html">http://www.ocert.org/advisories/ocert-2009-011.html</a> </p>
    282 
    283 <h3>Resolved Issues, Changes</h3>
    284 
    285 <ul>
    286 <li>The SDK includes a new version of the Google APIs add-on. The add-on
    287 provides an updated com.google.android.maps external library that fixes compile
    288 errors related to certain classes such as GeoPoint. For information about the
    289 Google APIs add-on and the library it provides, see:
    290 
    291 <p style="margin-left:2em;"><a
    292 href="http://code.google.com/android/add-ons/google-apis">http://code.google.com/android/add-ons/google-apis</a> </p></li>
    293 
    294 <li>The SDK add-on architecture now lets device manufacturers specify a USB
    295 Vendor ID in their add-ons. 
    296 <li>The <code>android</code> tool provides a new command that scans SDK add-ons
    297 for their USB Vendor IDs and makes them available to adb (OS X and Linux
    298 versions of the SDK only). The command is  <code>android update adb</code>. On
    299 Windows versions of the SDK, a custom USB driver is included that supports the
    300 "Google" and "HTC" Vendor IDs, which allow adb to recognize G1 and HTC
    301 Magic devices. For other devices, contact the device manufacturer 
    302 to obtain a USB driver, especially if you have an SDK add-on that defines 
    303 a new USB Vendor ID.</li>
    304 <li>The telephony, sensor, and geo fix issues in the emulator are now
    305 fixed.</li>
    306 <li>When you use adb to uninstall an upgraded application, the Android system
    307 now properly restores any permissions that had already been granted to the
    308 previous (downgrade) version of the application</li>
    309 </ul>
    310 
    311 <h2 id="1.5_r2">Android 1.5 SDK, Release 2</h2>
    312 
    313 <p>This SDK release provides the same developer tools as the Android 1.5 SDK,
    314 Release 1, but provides an updated Android 1.5 system image that includes a
    315 security patch for the issue described in the oCert advisory below:</p>
    316 
    317 <p style="margin-left:2em;"><a href="http://www.ocert.org/advisories/ocert-2009-006.html">http://www.ocert.org/advisories/ocert-2009-006.html</a></p>
    318 
    319 <h2 id="1.5_r1">Android 1.5 SDK, Release 1</h2>
    320 
    321 <p>This SDK provides updates to the development tools and Android system that
    322 you use to create applications for compliant Android-powered devices. </p>
    323 
    324 <h3>Release Overview</h3>
    325 
    326 <p>This SDK release includes many new features for developers. Highlights of the
    327 changes include: </p>
    328 
    329   <ul>
    330     <li>Multiple versions of the Android platform are included (Android 1.1,
    331 Android 1.5). The tools are updated to let you deploy your application
    332 on any platform in the SDK, which helps you ensure forward-compatibility and, 
    333 if applicable, backward-compatibility.</li>
    334     <li>Introduces <a href="{@docRoot}tools/devices/managing-avds.html">Android
    335 Virtual Devices</a> &mdash; (AVD) configurations of options that you
    336 run in the emulator to better model actual devices. Each AVD gets its
    337 own dedicated storage area, making it much easier to work with multiple emulators 
    338 that are running concurrently.</li>
    339     <li>Support for SDK add-ons, which extend the
    340 Android SDK to give you access to one or more external Android libraries and/or
    341 a customized (but compliant) system image that can run in the emulator. </li>
    342     <li>The new Eclipse ADT plugin (version 0.9.x) offers new Wizards to let you
    343 create projects targeted for specific Android configurations, generate XML
    344 resources (such as layouts, animations, and menus), generate alternate layouts,
    345 and export and sign your application for publishing.</li>
    346     <li>Improved JUnit support in ADT</li>
    347     <li>Easier profiling of performance</li>
    348     <li>Easier management of localized applications. You can now include or
    349 exclude locale resources when building your APK from a single
    350 Android project.</li>
    351     <li>A new tool called "android" replaces the activitycreator script.</li>
    352   </ul>
    353 
    354 <p>For details about the Android platforms included in the SDK &mdash; including
    355 bug fixes, features, and API changes &mdash; please read the <a
    356 href="{@docRoot}about/versions/android-1.5.html">Android 1.5 version notes</a>.</p>
    357 
    358 <h3>Installation and Upgrade Notes</h3>
    359 
    360 <p>If you've been developing an application using an Android 1.1 SDK, you need
    361 to make a few changes to your development environment to migrate to the new SDK.
    362 Tools and documentation are provided to assist you. No changes to the source
    363 code of an existing application should be needed, provided that your application
    364 is not using Android internal structures or APIs.</p>
    365 
    366 <p>To ensure that your existing application will work properly on a device
    367 running the latest version of the Android platform, you are strongly encouraged
    368 to migrate the application to the new SDK, compile it using the platform
    369 matching the application's original API Level, and run it against the most
    370 current platform. </p>
    371 
    372 <h3>SDK Add-Ons</h3>
    373 
    374 <p>This version of the SDK introduces support for SDK add-ons, which extend the
    375 Android SDK to give you access to one or more external Android libraries and/or
    376 a customized (but compliant) system image that can run in the emulator. The
    377 purpose of an SDK add-on is to give you a way to develop applications for a
    378 specific actual device (or family of devices) that extends the APIs available to
    379 Android applications through external libraries or system customizations. </p>
    380 
    381 <p>From the perspective of your Android development environment, an SDK add-on
    382 is similar to any of the Android platform targets included in the SDK &mdash; it
    383 includes an external library, a system image, as well as custom emulator skins
    384 and system properties. The add-on differs in that the Android platform it
    385 provides may include customized UI, resources, or behaviors, a different set of
    386 preinstalled applications, or other similar modifications. 
    387 
    388 <p>The SDK includes a single SDK add-on &mdash; the Google APIs add-on. The
    389 Google APIs add-on gives your application access to the com.google.android.maps
    390 external library that is included on many (if not most) Android-powered devices. 
    391 The Google APIs add-on also includes a {@link android.location.Geocoder Geocoder}
    392 backend service implementation. For more information, see the "Maps External 
    393 Library" section below. </p>
    394 
    395 <h3>Android Virtual Devices (AVDs)</h3>
    396 
    397 <p>The SDK now gives you the capability to compile an application against any
    398 one of several system targets, then run it in the emulator on top of any
    399 compatible system image. There are two types of targets:</p>
    400 <ul>
    401 <li>Targets that represent core Android platform versions. </li>
    402 <li>Targets that are SDK add-ons, which typically provide application access to
    403 one or more external libraries and/or a customized (but compliant) system image
    404 that can run in the emulator. 
    405 </ul>
    406 
    407 <p>A new tool called "android" lets you discover what targets and AVDs are
    408 available to use.</p>
    409 
    410 <p>For more information about AVDs, see <a
    411 href="{@docRoot}tools/devices/index.html">Creating and Managing Virtual Devices</a>
    412 
    413 <h3>Other Notes</h3>
    414 
    415 <p><strong>Maps External Library</strong></p>
    416 
    417 <p>In previous versions of the SDK, the com.google.android.maps package was
    418 included in the standard Android library and system image. In the Android 1.5
    419 SDK, that is not the case. The Android 1.5 library and system image do not
    420 include the Maps external library (com.google.android.maps). However, the Maps
    421 external library is available as part of the Google APIs add-on for the Android
    422 SDK, downloadable from this location: </p>
    423 
    424 <p style="margin-left:2em;"><a
    425 href="http://code.google.com/android/add-ons/google-apis">http://code.google.com
    426 /android/add-ons/google-apis</a> </p>
    427 
    428 <p>For your convenience, the Google APIs add-on is included in the SDK. </p>
    429 
    430 <p>For information about how to register for a Maps API Key, see 
    431 <a href="http://code.google.com/android/add-ons/google-apis/mapkey.html">
    432 Obtaining a Maps API Key</a>.</p>
    433 
    434 <p><strong>USB Drivers for Windows</strong></p>
    435 
    436 <p>If you are using Windows and want to develop or test your application on an
    437 Android-powered device (such as the T-Mobile G1), you need an appropriate USB
    438 driver. For your convenience, the Windows version of the Android SDK includes
    439 these USB drivers that you can install, to let you develop on the device:</p>
    440 
    441 <ul>
    442 <li>USB driver for 32-bit XP and Vista</li>
    443 <li>USB driver for 64-bit Vista only</li>
    444 </ul>
    445 
    446 <p>For driver installation or
    447 upgrade instructions, see  <a
    448 href="{@docRoot}sdk/win-usb.html">USB Driver for Windows</a>.</p>
    449 </p>
    450 
    451 <h3>Resolved Issues, Changes</h3>
    452 
    453 <p><strong>Media</strong></p>
    454 <ul>
    455 <li>Updated documentation for {@link android.media.SoundPool
    456 android.media.SoundPool}</li>
    457 <li>{@link android.webkit.WebView} objects no longer automatically save
    458 thumbnails. The {@link android.webkit.WebView#capturePicture() capturePicture()}
    459 method will need to be called manually.</li>
    460 </ul>
    461 
    462 <h3>Known Issues</h3>
    463 
    464 <p><strong>Sensor problems in Emulator</strong></p>
    465 
    466 <ul>
    467 <li>If your application uses the Sensor API and you are running it in the
    468 emulator on the Android 1.5 system image, you may experience problems. Your
    469 application may generate ANR messages or crash when using the sensors. The
    470 problem is being investigated.</li>
    471 </ul>
    472 
    473 <p><strong>Other</strong></p>
    474 
    475 <ul>
    476 <li>We regret to inform developers that Android 1.5 will not include support for
    477 the Zilog Z80 processor architecture.</li>
    478 </ul>
    479 
    480 
    481 <h2 id="1.1_r1">Android 1.1 SDK, Release 1</h2>
    482 
    483 <p>This SDK provides the development tools and Android system image you need to
    484 create applications for Android-powered devices. Applications developed on this
    485 SDK will be compatible with mobile devices running the Android 1.1 platform.
    486 </p>
    487 
    488 <p>This release provides an updated system image (Android 1.1), updated
    489 documentation, and the same set of development tools provided in the Android 1.0
    490 r2 SDK. The updated system image includes bug fixes and some smaller features,
    491 as well as a few minor API changes from the 1.0 version. </p>
    492 
    493 <p>For details about the Android 1.1 system image included in the SDK &mdash;
    494 including bug fixes, features, and API changes &mdash; please read the <a
    495 href="{@docRoot}about/versions/android-1.1.html">Android 1.1 version notes</a>.</p>
    496 
    497 <h3>App Versioning for Android 1.1</h3>
    498 
    499 <p>If you are using this SDK to build an application that is compatible
    500 <em>only</em> with Android-powered devices running the Android 1.1 platform,
    501 please note that you <strong>must</strong> set the the
    502 <code>android:minSdkVersion</code> attribute in the application's manifest to
    503 the API Level of Android 1.1 &mdash; "2".</p>
    504 
    505 <p>Specifically, you specify the <code>android:minSdkVersion</code> attribute in
    506 a <code>&lt;uses-sdk&gt;</code> element as a child of
    507 <code>&lt;manifest&gt;</code> in the manifest file. When set, the attribute
    508 looks like this: </p>
    509 
    510 <pre><code>&lt;manifest&gt;
    511   ...
    512   &lt;uses-sdk android:minSdkVersion="2" /&gt;
    513   ...
    514 &lt;/manifest&gt;</code>
    515 </pre>
    516 
    517 <p>By setting <code>android:minSdkVersion</code> in this way, you ensure that
    518 users will only be able to install your application if their devices are running
    519 the Android 1.1 platform. In turn, this ensures that your application will
    520 function properly on their devices, especially if it uses APIs introduced in
    521 Android 1.1. </p>
    522 
    523 <p>If your application uses APIs introduced in Android 1.1 but does not declare
    524 <code>&lt;uses-sdk android:minSdkVersion="2" /&gt;</code>, then it will run properly on
    525 Android 1.1 devices but <em>not</em> on Android 1.0 devices. </p>
    526 
    527 <p>If your application does not use any new APIs introduced in Android 1.1, you
    528 can indicate Android 1.0 compatibility by removing <code>android:minSdkVersion</code> or
    529 setting the attribute to "1". However, before publishing your application, you
    530 must make sure to compile your application against the Android 1.0 system image
    531 (available in the Android 1.0 SDK), to ensure that it builds and functions
    532 properly for Android 1.0 devices. You should test the application against system
    533 images corresponding to the API Levels that the application is designed to be
    534 compatible with.</p>
    535 
    536 <p>If you are sure your application is not using Android 1.1 APIs and has no
    537 need to use them, you might find it easier to keep working in the Android 1.0
    538 SDK, rather than migrating to the Android 1.1 SDK and having to do additional
    539 testing.</p>
    540 
    541 
    542 <h3>ADT Plugin Compatibility</h3>
    543 
    544 <p>For this version of the SDK &mdash; Android 1.1 SDK, Release 1
    545 &mdash; the compatible version of the Android Development Tools (ADT)
    546 Plugin for Eclipse is <strong>0.8.0</strong>. If you are using a
    547 previous version of ADT, you should update to the latest version for use
    548 with this SDK. For information about how to update your ADT plugin, see
    549 <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p>
    550 
    551 <h3>Installation and Upgrade Notes</h3>
    552 
    553 <p>If you've been developing an application using an Android 1.0 SDK no
    554 changes to your application are needed. You may want to wipe application
    555 user data (emulator option <code>-wipe-data</code>) when running your
    556 application on the Android 1.1 emulator for the first time.</p>
    557 
    558 <h3>Other Notes</h3>
    559 
    560 <p><strong>MapView API Key</strong></p>
    561 
    562 <p>com.google.android.maps.MapView is a class that lets you
    563 easily integrate Google Maps into your application. Before you can
    564 access the maps data, you will need to register with the Google Maps
    565 service and receive a Maps API Key, which you then add to your MapView
    566 for authentication to the server.</p>
    567 
    568 <p>Developers should note that the registration service for MapView is now
    569 active and Google Maps is actively enforcing the Maps API Key requirement. 
    570 For information about how to register for a Maps API Key, see 
    571 <a href="http://code.google.com/android/add-ons/google-apis/mapkey.html">
    572 Obtaining a Maps API Key</a>.</p>
    573 
    574 <p><strong>USB Drivers for Windows</strong></p>
    575 
    576 <p>If you using Windows and want to develop or test your application on an
    577 Android-powered device (such as the T-Mobile G1), you need an appropriate USB
    578 driver. For your convenience, the Windows version of the Android SDK includes
    579 these USB drivers that you can install, to let you develop on the device:</p>
    580 
    581 <ul>
    582 <li>USB driver for 32-bit XP and Vista</li>
    583 <li>USB driver for 64-bit Vista only</li>
    584 </ul>
    585 
    586 <p>The USB driver files are located in the
    587 <code>&lt;SDK&gt;/usb_driver</code> directory. For details and
    588 installation instructions, see <a
    589 href="{@docRoot}tools/device.html#setting-up">Connecting Hardware Devices</a>.</p>
    590 </p>
    591 
    592 <h3>Resolved Issues, Changes</h3>
    593 
    594 <p><strong>Emulator</strong></p>
    595 <ul>
    596 <li>Emulator now saves the user image in &lt;android&gt;/SDK1.1/</code></li>
    597 </ul>
    598 
    599 <h3>Known Issues</h3>
    600 
    601 <p><strong>JUnit and Eclipse/ADT</strong></p>
    602 <ul>
    603 <li>If you are developing in Eclipse/ADT and want to add JUnit test
    604 classes, you can do so. However, you need to set up a custom JUnit configuration
    605 before your tests will run properly. For detailed information about how to set
    606 up the JUnit configuration, see the troubleshooting topic <a
    607 href="{@docRoot}resources/faq/troubleshooting.html#addjunit">Running a Junit test class
    608 in Eclipse</a>.</li>
    609 </ul>
    610 
    611 <p><strong>Other</strong></p>
    612 
    613 <ul>
    614 <li>It is not possible to send MMS messages between emulator instances. </li>
    615 <li>In some cases, you may encounter problems when using the browser on an
    616 emulator started with the command-line option <code>-http-proxy</code>. </li>
    617 <li>On the OSX platform, if you manually remove the ~/.android directory
    618 using <code>rm -rf ~/.android</code>, then try to run 
    619 the emulator, it crashes. This happens because the emulator fails to create 
    620 a new .android directory before attempting to create the child SDK1.0 directory.
    621 To work around this issue, manually create a new .android directory using
    622 <code>mkdir ~/.android</code>, then run the emulator. The emulator 
    623 creates the SDK1.0 directory and starts normally. </li>
    624 <li>We regret to inform developers that Android 1.1 will not include support 
    625 for ARCNet network interfaces.</li>
    626 <li>The final set of Intent patterns honored by Android 1.0 has not yet been
    627 fully documented. Documentation will be provided in future releases.</li>
    628 <li>In ADT Editor, you can add at most ten new resource values at a time,
    629 in a given res/values/*.xml, using the form in the Android Resources pane. 
    630 If you add more than ten, the Android Resources pane will not display the
    631 attributes fields for the additional resource entries. To work around this 
    632 problem, you can close the file in the editor and open it again, or you 
    633 can edit the resource entries in the XML text mode. </li>
    634 <li>The emulator's battery-control commands (<code>power &lt;option&gt</code>)
    635 are not working in this release.</li>
    636 </ul>
    637 
    638 
    639 <h2 id="1.0_r2">Android 1.0 SDK, Release 2</h2>
    640 
    641 <p>This SDK release includes the Android 1.0 platform and application API.
    642 Applications developed on this SDK will be compatible with mobile devices
    643 running the Android 1.0 platform.</p>
    644 
    645 <p>This release includes mainly bug fixes, although some smaller features were
    646 added.</p>
    647 
    648 <h3>ADT Plugin Compatibility</h3>
    649 
    650 <p>For this release of the SDK, the compatible version of the Android
    651 Development Tools (ADT) Plugin for Eclipse is <strong>0.8.0</strong>. If you are
    652 using a previous version of ADT, you should update to the latest version for use
    653 with this SDK. For information about how to update your ADT plugin, see <a
    654 href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p>
    655 
    656 <h3>Other Notes</h3>
    657 
    658 <p><strong>T-Mobile G1 Compatibility</strong></p>
    659 
    660 <p>This version of the SDK has been tested for compatibility with the first 
    661 Android-powered mobile device, the T-Mobile
    662 G1. </p>
    663 
    664 <p><strong>MapView API Key</strong></p>
    665 
    666 <p>MapView is a class that lets you easily integrate Google Maps into your
    667 application. Before you can access the maps data, you will need to register with
    668 the Google Maps service and receive a Maps API Key, which you then add to your
    669 MapView for authentication to the server.</p>
    670 
    671 <p>Developers should note that the registration service for MapView is now
    672 active and Google Maps is actively enforcing the Maps API Key requirement. For
    673 information about how to register for a Maps API Key, see <a
    674 href="http://code.google.com/android/add-ons/google-apis/mapkey.html">http://code.google.com/android/add-ons/google-apis/mapkey.html</a>.
    675 </p>
    676 
    677 <p><strong>USB Driver for Windows</strong></p>
    678 <p>If you using Windows and want to develop or test your application on an
    679 Android-powered device (such as the T-Mobile G1), you need an appropriate USB
    680 driver. For your convenience, the Windows version of the Android SDK includes a
    681 USB driver that you can install, to let you develop on the device. The USB
    682 driver files are located in the <code>&lt;SDK&gt;/usb_driver</code> directory. 
    683 
    684 </p>
    685 
    686 <h3>Resolved Issues, Changes</h3>
    687 <ul>
    688 <li>The android.jar in this SDK release now includes several classes that were
    689 missing from the previous SDK. </li>
    690 <li>The android.R.styleable class and its fields were removed from the public
    691 API, to better ensure forward-compatibility for applications. The constants
    692 declared in android.R.styleable were platform-specific and subject to arbitrary
    693 change across versions, so were not suitable for use by applications. You can
    694 still access the platform's styleable attributes from your resources or code. To
    695 do so, declare a custom resource element using a
    696 <code>&lt;declare-styleable&gt;</code> in your project's res/values/R.attrs
    697 file, then declare the attribute inside. For examples, see 
    698 &lt;sdk&gt;/samples/ApiDemos/res/values/attrs.xml. For more information about
    699 custom resources, see <a
    700 href="{@docRoot}guide/topics/resources/available-resources.html#customresources">Custom
    701 Layout Resources</a>. Note that the android.R.styleable documentation is still
    702 provided in the SDK, but only as a reference of the platform's styleable
    703 attributes for the various elements.</li>
    704 <li>The VM now properly ensures that private classes are not 
    705 available to applications through reflection. If you were using reflection
    706 to access private classes in a previous release, you will now get a run-time 
    707 error. </li>
    708 
    709 <li>The Settings and Email applications are now included in the SDK and
    710 available in the emulator.</li>
    711 <li>We regret to inform developers that SDK 1.0_r2 does not support MFM, RLL, 
    712 or Winchester hard disk drives.</li>
    713 <li>In the emulator, the control key for enabling/disabling trackball mode 
    714 is changed from Control-T to F6. You can also enter trackball mode temporarily
    715 using the Delete key. While the key is pressed, you can send trackball events.</li>
    716 </ul>
    717 
    718 <p>Unless otherwise noted, Known Issues from the previous SDK release also apply
    719 to this release.</p>
    720 
    721 
    722 
    723 
    724 
    725 
    726 <h2 id="1.0_r1">Android 1.0 SDK, Release 1</h2>
    727 
    728 <p>This SDK release is the first to include the Android 1.0 platform and application API. Applications developed on this SDK will be compatible with mobile devices running the Android 1.0 platform, when such devices are available.</p>
    729 
    730 <p>This release includes mainly bug fixes, although some smaller features were added. The Android 1.0 also includes several API changes from the 0.9 version. For those porting from the M5 release, the SDK also includes the legacy changes overview and API Differences Reports. See the current Overview of Changes for more information. </p>
    731 
    732 <h3>ADT Plugin Compatibility</h3>
    733 
    734 <p>For this version of the SDK &mdash; Android 1.0 SDK, Release 1 &mdash; the compatible version of the Android Development Tools (ADT) Plugin for Eclipse is <strong>0.8.0</strong>. If you are using a previous version of ADT, you should update to the latest version for use with this SDK.</p>
    735 
    736 <h3>Installation and Upgrade Notes</h3>
    737 
    738 <p>If you've been developing an application using a previous SDK version and you want the application to run on Android-powered mobile devices, you must port the application to the Android 1.0 SDK. Be sure to wipe application user data (emulator option <code>-wipe-data</code>) when running your application on the Android 1.0 SDK emulator.</p>
    739 
    740 <h3>Other Notes</h3>
    741 
    742 <p><strong>MapView API Key</strong></p>
    743 
    744 <p>MapView is a class that lets you easily integrate Google Maps into your application. Before you can access the maps data, you will need to register with the Google Maps service and receive a Maps API Key, which you then add to your MapView for authentication to the server.</p>
    745 
    746 <p>Currently, the registration service for MapView is not yet active and Google Maps is not yet enforcing the Maps API Key requirement. However, note that the registration service will be activated soon, so that MapViews in any application deployed to a mobile device will require registration and a valid Maps API Key. </p>
    747 
    748 <p>As soon as the registration service becomes available, we will update the page at <a href="http://code.google.com/android/add-ons/google-apis/mapkey.html">http://code.google.com/android/add-ons/google-apis/mapkey.html</a> with details about how and where to register. Please check that page periodically for registration information, if you are using a MapView.</p>
    749 
    750 
    751 <h3>Resolved Issues, Changes</h3>
    752 
    753 <p><strong>Emulator</strong></p>
    754 <ul>
    755 <li>Emulator now saves the user image in &lt;android&gt;/SDK1.0/</code></li>
    756 <li>Fixed EsounD-related freezes on Linux.</li>
    757 <li>Fixed the documentation in -help-audio. '-audio list' doesn't work, one
    758  needs to call -help-audio-out and -help-audio-in to get the list of valid
    759  audio backends.</li>
    760 <li>Fixed scrollwheel Dpad emulation in rotated mode. before that, using the
    761  scroll-wheel would always generated Dpad Up/Down events, even when in
    762  landscape mode.</li>
    763 
    764 <li>Several Obsolete command options were removed.</li>
    765 <li>Setting the network speed through the console or the -netspeed option will
    766  properly modify the connectivity icon on the device.</li>
    767 <li>Setting the GSM voice registration state to 'roaming' in the console will
    768  properly modify the voice icon on the device</li>
    769 </ul>
    770 
    771 <p><strong>SQLite</strong></p>
    772 <ul>
    773 <li>SQLite is now included in the SDK package on all platforms. </li>
    774 </ul>
    775 
    776 <p><strong>Other</strong></p>
    777 
    778 <ul>
    779 <li>It is not possible to send MMS messages between emulator instances. </li>
    780 <li>In some cases, you may encounter problems when using the browser on an
    781 emulator started with the command-line option <code>-http-proxy</code>. </li>
    782 
    783 <li>We regret to inform developers that Android 1.0 will not include support for
    784 dot-matrix printers.</li>
    785 <li>On the OSX platform, if you manually remove the ~/.android directory
    786 using <code>rm -rf ~/.android</code>, then try to run 
    787 the emulator, it crashes. This happens because the emulator fails to create 
    788 a new .android directory before attempting to create the child SDK1.0 directory.
    789 To work around this issue, manually create a new .android directory using
    790 <code>mkdir ~/.android</code>, then run the emulator. The emulator 
    791 creates the SDK1.0 directory and starts normally. </li>
    792 <li>The final set of Intent patterns honored by Android 1.0 has not yet been
    793 fully documented. Documentation will be provided in future releases.</li>
    794 <li>In ADT Editor, you can add at most ten new resource values at a time,
    795 in a given res/values/*.xml, using the form in the Android Resources pane. 
    796 If you add more than ten, the Android Resources pane will not display the
    797 attributes fields for the additional resource entries. To work around this 
    798 problem, you can close the file in the editor and open it again, or you 
    799 can edit the resource entries in the XML text mode. </li>
    800 <li>The emulator's battery-control commands (<code>power &lt;option&gt</code>)
    801 are not working in this release.</li>
    802 
    803 </ul>
    804 
    805