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