This document provides version-specific information about Android SDK releases.
The Android SDK has changed! If you've worked with the Android SDK before, you will notice several important differences:
Note that if you are currently using the Android 1.6 SDK, you do not necessarily need to install the new SDK, since your existing SDK already includes the Android SDK and AVD Manager tool. To develop against Android 2.0.1, for example, you could just download the Android 2.0.1 platform into your existing SDK.
Release notes for Android platforms and other SDK components are now available from the "SDK" tab, under "Downloadable SDK Components."
To get started with the SDK, review the Quick Start summary on the Android SDK download page or read Installing the SDK for detailed installation instructions.
This SDK provides updates to the development tools and Android system that you use to create applications for compliant Android-powered devices.
This SDK release includes several new features for developers. Highlights of the changes include:
android:minSdkVersion
value the application declares in its manifest. For more information, see
Android API LevelsFor details about the Android platforms included in the SDK — including bug fixes, features, and API changes — please read the Android 1.6 version notes.
If you've been developing an application using an Android 1.1 SDK, you need to make a few changes to your development environment to migrate to the new SDK. Tools and documentation are provided to assist you. No changes to the source code of an existing application should be needed, provided that your application is not using Android internal structures or APIs.
To ensure that your existing application will work properly on a device running the latest version of the Android platform, you are strongly encouraged to migrate the application to the new SDK, compile it using the platform matching the application's original API Level, and run it against the most current platform.
An updated version of the ADT Plugin for Eclipse is available with the Android 1.6 SDK. The new version, ADT 0.9.3, provides several new features, including integrated support for the Android SDK and AVD Manager and zipalign tool. In addition, the New Project Wizard now lets you create a test package containing tests for your application. These features are described in the sections below.
If you are developing in Eclipse with ADT and want to get started with the Android 1.6 SDK, you should download and install a compatible version of the ADT Plugin (0.9.3 or higher).
The new version of ADT is downloadable from the usual remote update site or is separately downloadable as a .zip archive. For instructions on how to download the plugin, please see Installing and Updating ADT.
The SDK offers a new tool called Android SDK and AVD Manager that lets you manage your SDK and AVD environments more efficiently.
Using the tool, you can quickly check what Android platforms, add-ons, extras, and documentation packages are available in your SDK environment, what their versions are, and whether updated versions are available. You can then download one or more items from remote repositories and install them directly in your SDK environment. For example, the tool lets you obtain updates to SDK tools incrementally, as they are made available, without having to wait for the next SDK release. You can also download Android platform versions into your environment that were not included in the SDK package.
The tool also lets you quickly create new AVDs, manage their properties, and run a target AVD from a single window.
If you are developing in Eclipse with ADT, you can access the Android SDK and AVD Manager from the Window menu.
If you are developing in another IDE, you can access the Android SDK and
AVD Manager through the android
command-line tool, located in the
<sdk>/tools directory. You can launch the tool with a graphical UI by
using the android
command without specifying any options. You can
also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
You can still use android
commands to create and manage AVDs,
including AVDs with custom hardware configurations.
The Android system offers a performance optimization for installed
application packages whose contained uncompressed files are all aligned on
4-byte boundaries. For these .apks, the system can read the files by mmap'ing
the zip file, rather than by copying all the data out of them. This reduces
the amount of memory used by the application at run time. The SDK includes
a tool called zipalign
that you can run against your .apks, to
align them properly and enable them to benefit from this optimization.
The ADT Plugin and the Ant build tools both provide integrated support for
aligning your application packages. After you build an .apk, the SDK tools can
sign and then run zipalign
against it. The SDK includes the
standalone version of the zipalign
tool, so you can run also run it
manually from the command line if you choose.
zipalign
is integrated into the Export Wizard. When you use the
Wizard to export a signed application package, ADT signs and then automatically
runs zipalign
against the exported package. If you use the Wizard
to export an unsigned application package, then it will not zipalign the
package because zipalign must be performed only after the APK has been signed.
You must manually sign and zipalign the package after export. zipalign
the
application package, provided that you have specified the location of a valid
keystore in the build properties file. If you are compiling in debug mode, the
build tools will sign the package with the debug key and then zipalign
it.zipalign
manually, change to the SDK tools directory
and use the command syntax $ zipalign 4 <infile>
<outfile>
In general, note that you must zipalign
an application only
after it has been signed, as signing will disrupt the package
alignment.
The New Project Wizard available in the ADT 0.9.3 now lets you add a test package containing Instrumentation or other classes of tests while you are creating or importing a new Android application project.
If you are using Windows and want to develop or test your application on an Android-powered device (such as the T-Mobile G1), you need an appropriate USB driver.
The Windows version of the Android 1.6 SDK includes a new, WinUSB-based driver that you can install. The driver is compatible with both 32- and 64-bit versions of Windows XP and Vista. The driver represents an upgrade from the USB driver included in previous Android SDKs, although installing the new driver is not required.
If you installed the USB driver from a previous SDK release and it is working properly, you do not need to upgrade to the new driver. However, we recommend upgrading if you have had any problems with the older driver or simply want to upgrade to the latest version.
For driver installation or upgrade instructions, see USB Driver for Windows.
The Android 1.6 platform included in the SDK provides a new set of emulator skins, including:
Besides these defaults, You can also create an AVD that overrides the default
density for each skin, to create any combination of resolution/density (WVGA
with medium density, for instance). To do so, use the android
tool
command line to create a new AVD that uses a custom hardware configuration. See
Creating an
AVD for more information.
Provides an updated Android 1.5 system image that includes permissions fixes, as described below, and a new application — an IME for Japanese text input. Also provides the same set of developer tools included in the previous SDK, but with bug fixes and several new features.
The latest version of the Android platform, deployable to Android-powered devices, includes fixes to the permissions-checking in certain areas of the framework. Specifically, the Android system now properly checks and enforces several existing permissions where it did not do so in the previous release. Because of these changes in enforcement, you are strongly encouraged to test your application against the new Android 1.5 system image included in this SDK, to ensure that it functions normally.
In particular, if your application uses any of the system areas listed below, you should add the required permissions to the application's manifest and then test the areas of your code that depend on the permission-protected services. Even if you believe your application does not use the permissions-protected services, you should compile and test your application under the latest platform version to ensure that users will not encounter problems when using your application.
The changes to permissions are as follows:
CAMERA
permission check is now
properly enforced. RECORD_AUDIO
permission check is
now properly enforced.For more information, see the issue described in the oCert advisory below:
http://www.ocert.org/advisories/ocert-2009-011.html
android
tool provides a new command that scans SDK add-ons
for their USB Vendor IDs and makes them available to adb (OS X and Linux
versions of the SDK only). The command is android update adb
. On
Windows versions of the SDK, a custom USB driver is included that supports the
"Google" and "HTC" Vendor IDs, which allow adb to recognize G1 and HTC
Magic devices. For other devices, contact the device manufacturer
to obtain a USB driver, especially if you have an SDK add-on that defines
a new USB Vendor ID.This SDK release provides the same developer tools as the Android 1.5 SDK, Release 1, but provides an updated Android 1.5 system image that includes a security patch for the issue described in the oCert advisory below:
http://www.ocert.org/advisories/ocert-2009-006.html
This SDK provides updates to the development tools and Android system that you use to create applications for compliant Android-powered devices.
This SDK release includes many new features for developers. Highlights of the changes include:
For details about the Android platforms included in the SDK — including bug fixes, features, and API changes — please read the Android 1.5 version notes.
If you've been developing an application using an Android 1.1 SDK, you need to make a few changes to your development environment to migrate to the new SDK. Tools and documentation are provided to assist you. No changes to the source code of an existing application should be needed, provided that your application is not using Android internal structures or APIs.
To ensure that your existing application will work properly on a device running the latest version of the Android platform, you are strongly encouraged to migrate the application to the new SDK, compile it using the platform matching the application's original API Level, and run it against the most current platform.
This version of the SDK introduces support for SDK add-ons, which extend the Android SDK to give you access to one or more external Android libraries and/or a customized (but compliant) system image that can run in the emulator. The purpose of an SDK add-on is to give you a way to develop applications for a specific actual device (or family of devices) that extends the APIs available to Android applications through external libraries or system customizations.
From the perspective of your Android development environment, an SDK add-on is similar to any of the Android platform targets included in the SDK — it includes an external library, a system image, as well as custom emulator skins and system properties. The add-on differs in that the Android platform it provides may include customized UI, resources, or behaviors, a different set of preinstalled applications, or other similar modifications.
The SDK includes a single SDK add-on — the Google APIs add-on. The
Google APIs add-on gives your application access to the com.google.android.maps
external library that is included on many (if not most) Android-powered devices.
The Google APIs add-on also includes a Geocoder
backend service implementation. For more information, see the "Maps External
Library" section below.
The SDK now gives you the capability to compile an application against any one of several system targets, then run it in the emulator on top of any compatible system image. There are two types of targets:
A new tool called "android" lets you discover what targets and AVDs are available to use.
For more information about AVDs, see Android Virtual Devices
Maps External Library
In previous versions of the SDK, the com.google.android.maps package was included in the standard Android library and system image. In the Android 1.5 SDK, that is not the case. The Android 1.5 library and system image do not include the Maps external library (com.google.android.maps). However, the Maps external library is available as part of the Google APIs add-on for the Android SDK, downloadable from this location:
http://code.google.com /android/add-ons/google-apis
For your convenience, the Google APIs add-on is included in the SDK.
For information about how to register for a Maps API Key, see Obtaining a Maps API Key.
USB Drivers for Windows
If you are using Windows and want to develop or test your application on an Android-powered device (such as the T-Mobile G1), you need an appropriate USB driver. For your convenience, the Windows version of the Android SDK includes these USB drivers that you can install, to let you develop on the device:
For driver installation or upgrade instructions, see USB Driver for Windows.
Media
android.media.SoundPool
WebView
objects no longer automatically save
thumbnails. The capturePicture()
method will need to be called manually.Sensor problems in Emulator
Other
This SDK provides the development tools and Android system image you need to create applications for Android-powered devices. Applications developed on this SDK will be compatible with mobile devices running the Android 1.1 platform.
This release provides an updated system image (Android 1.1), updated documentation, and the same set of development tools provided in the Android 1.0 r2 SDK. The updated system image includes bug fixes and some smaller features, as well as a few minor API changes from the 1.0 version.
For details about the Android 1.1 system image included in the SDK — including bug fixes, features, and API changes — please read the Android 1.1 version notes.
If you are using this SDK to build an application that is compatible
only with Android-powered devices running the Android 1.1 platform,
please note that you must set the the
android:minSdkVersion
attribute in the application's manifest to
the API Level of Android 1.1 — "2".
Specifically, you specify the android:minSdkVersion
attribute in
a <uses-sdk>
element as a child of
<manifest>
in the manifest file. When set, the attribute
looks like this:
<manifest>
...
<uses-sdk android:minSdkVersion="2" />
...
</manifest>
By setting android:minSdkVersion
in this way, you ensure that
users will only be able to install your application if their devices are running
the Android 1.1 platform. In turn, this ensures that your application will
function properly on their devices, especially if it uses APIs introduced in
Android 1.1.
If your application uses APIs introduced in Android 1.1 but does not declare
<uses-sdk android:minSdkVersion="2" />
, then it will run properly on
Android 1.1 devices but not on Android 1.0 devices.
If your application does not use any new APIs introduced in Android 1.1, you
can indicate Android 1.0 compatibility by removing android:minSdkVersion
or
setting the attribute to "1". However, before publishing your application, you
must make sure to compile your application against the Android 1.0 system image
(available in the Android 1.0 SDK), to ensure that it builds and functions
properly for Android 1.0 devices. You should test the application against system
images corresponding to the API Levels that the application is designed to be
compatible with.
If you are sure your application is not using Android 1.1 APIs and has no need to use them, you might find it easier to keep working in the Android 1.0 SDK, rather than migrating to the Android 1.1 SDK and having to do additional testing.
For this version of the SDK — Android 1.1 SDK, Release 1 — the compatible version of the Android Development Tools (ADT) Plugin for Eclipse is 0.8.0. 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 Installing and Updating ADT.
If you've been developing an application using an Android 1.0 SDK no
changes to your application are needed. You may want to wipe application
user data (emulator option -wipe-data
) when running your
application on the Android 1.1 emulator for the first time.
MapView API Key
com.google.android.maps.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.
Developers should note that the registration service for MapView is now active and Google Maps is actively enforcing the Maps API Key requirement. For information about how to register for a Maps API Key, see Obtaining a Maps API Key.
USB Drivers for Windows
If you using Windows and want to develop or test your application on an Android-powered device (such as the T-Mobile G1), you need an appropriate USB driver. For your convenience, the Windows version of the Android SDK includes these USB drivers that you can install, to let you develop on the device:
The USB driver files are located in the
<SDK>/usb_driver
directory. For details and
installation instructions, see Setting Up a
Device for Development.
Emulator
JUnit and Eclipse/ADT
Other
-http-proxy
. rm -rf ~/.android
, then try to run
the emulator, it crashes. This happens because the emulator fails to create
a new .android directory before attempting to create the child SDK1.0 directory.
To work around this issue, manually create a new .android directory using
mkdir ~/.android
, then run the emulator. The emulator
creates the SDK1.0 directory and starts normally. power <option>
)
are not working in this release.This SDK release includes 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.
This release includes mainly bug fixes, although some smaller features were added.
For this release of the SDK, the compatible version of the Android Development Tools (ADT) Plugin for Eclipse is 0.8.0. 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 Installing and Updating ADT.
T-Mobile G1 Compatability
This version of the SDK has been tested for compatability with the first Android-powered mobile device, the T-Mobile G1.
MapView API Key
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.
Developers should note that the registration service for MapView is now active and Google Maps is actively enforcing the Maps API Key requirement. For information about how to register for a Maps API Key, see http://code.google.com/android/add-ons/google-apis/mapkey.html.
USB Driver for Windows
If you using Windows and want to develop or test your application on an
Android-powered device (such as the T-Mobile G1), you need an appropriate USB
driver. For your convenience, the Windows version of the Android SDK includes a
USB driver that you can install, to let you develop on the device. The USB
driver files are located in the <SDK>/usb_driver
directory.
<declare-styleable>
in your project's res/values/R.attrs
file, then declare the attribute inside. For examples, see
<sdk>/samples/ApiDemos/res/values/attrs.xml. For more information about
custom resources, see Custom
Layout Resources. Note that the android.R.styleable documentation is still
provided in the SDK, but only as a reference of the platform's styleable
attributes for the various elements.Unless otherwise noted, Known Issues from the previous SDK release also apply to this release.
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.
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.
For this version of the SDK — Android 1.0 SDK, Release 1 — the compatible version of the Android Development Tools (ADT) Plugin for Eclipse is 0.8.0. 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 Upgrading the SDK.
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 Upgrading the SDK for detailed instructions on how to make the transition to this release. Be sure to wipe application user data (emulator option -wipe-data
) when running your application on the Android 1.0 SDK emulator.
MapView API Key
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.
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.
As soon as the registration service becomes available, we will update the page at http://code.google.com/android/add-ons/google-apis/mapkey.html with details about how and where to register. Please check that page periodically for registration information, if you are using a MapView.
Emulator
SQLite
Other
-http-proxy
. rm -rf ~/.android
, then try to run
the emulator, it crashes. This happens because the emulator fails to create
a new .android directory before attempting to create the child SDK1.0 directory.
To work around this issue, manually create a new .android directory using
mkdir ~/.android
, then run the emulator. The emulator
creates the SDK1.0 directory and starts normally. power <option>
)
are not working in this release.