SDK Tools is a downloadable component for the Android SDK. It includes the complete set of development and debugging tools for the Android SDK.
If you are new to the Android SDK, the SDK starter package installs the
latest revision of the SDK Tools in the <sdk>/tools
directory.
If you are already using the SDK and you want to update to the latest version of the SDK Tools, use the Android SDK Manager to get the update, rather than downloading a new SDK starter package. For more information about how to update, see Exploring the SDK.
Revisions
The sections below provide notes about successive releases of the SDK Tools, as denoted by revision number. To determine what revision of the SDK Tools you are using, refer to the "Installed Packages" listing in the Android SDK Manager.
For a summary of all known issues in SDK Tools, see http://tools.android.com/knownissues.
- Dependencies:
-
- Android SDK Platform-tools revision 12 or later.
- If you are developing in Eclipse with ADT, note that the SDK Tools r20 is designed for use with ADT 20.0.0 and later. If you haven't already, we highly recommend updating your ADT Plugin to 20.0.0.
- If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- General notes:
-
- Added new Device Monitor application, grouping Android debugging tools into a single application, including ddms, traceview, hierarchyviewer and Tracer for GLES. (more info)
- Added new System Trace new tool for tracing Android system activity. This tool allow you to capture a slice of system activity, plus additional information tagged from the Settings > Developer Options > Monitoring: Enable traces or with specific calls added to your application code.
- Build System
- Added automatic merging of library project manifest files into the including
project's manifest. Enable this feature with the
manifestmerger.enabled
property. - Added automatic ProGuard support for the
aapt -G
flag. This change causes the build system to generate a temporary ProGuard keep-rules file containing classes that are referenced from XML files (such as custom views) and pass this to ProGuard at shrink-time. This can make the resulting APK much smaller when using just a small portion of a large library project (such as the Android Support library), since the catch-all rules to keep all custom views from the default ProGuard configuration file have also been removed. - Added two ProGuard configuration files for use in projects:
proguard-android-optimize.txt
which enables optimizations andproguard-android.txt
which disables them.
- Added automatic merging of library project manifest files into the including
project's manifest. Enable this feature with the
- SDK Manager
- Improved caching to reduce downloading of repository definitions.
- Added Tools > Manage Add-on Sites option to allow deactivation of third-party sites for improved performance (e.g., if one or more sites are temporarily slow to load.)
- Added settings for the SDK Manager download cache (SDK Manager > Tools > Options).
- Bug fixes:
-
- Build
- Fixed problem where test projects did not have access to the full classpath of tested projects, including Library Projects and third-party jars.
- Fixed deployment logic so that applications with embedded tests can now be deployed and tested like test applications, including code coverage information.
- Fixed Ant support for testing projects with libraries.
- Build
Note: This update of SDK Tools is only available through the Android SDK Manager. Use this tool to download and install this update.
- Dependencies:
-
- Android SDK Platform-tools revision 9 or later.
- If you are developing in Eclipse with ADT, note that the SDK Tools r19 is designed for use with ADT 18.0.0 and later. If you haven't already, we highly recommend updating your ADT Plugin to 18.0.0.
- If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- Bug fixes:
-
- Fixed an issue that prevented some developers from running the emulator with GPU acceleration.
Important: To download the new Android 4.0 system components from the Android SDK Manager, you must first update the SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, the Android 4.0 system components will not be available for download.
- Dependencies:
-
- Android SDK Platform-tools revision 9 or later.
- If you are developing in Eclipse with ADT, note that the SDK Tools r18 is designed for use with ADT 18.0.0 and later. If you haven't already, we highly recommend updating your ADT Plugin to 18.0.0.
- If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- General notes:
-
- Updated the SdkController app to encapsulate both sensor and multitouch emulation functionality.
- Bug fixes:
-
- Fixed Ant issues where some jar libraries in the
libs/
folder are not picked up in some cases.
- Fixed Ant issues where some jar libraries in the
Important: To download the new Android 4.0 system components from the Android SDK Manager, you must first update the SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, the Android 4.0 system components will not be available for download.
- Dependencies:
-
- Android SDK Platform-tools revision 9 or later.
- If you are developing in Eclipse with ADT, note that the SDK Tools r17 is designed for use with ADT 17.0.0 and later. If you haven't already, we highly recommend updating your ADT Plugin to 17.0.0.
- If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- General notes:
-
- Emulator
- Added support for hardware accelerated graphics rendering. This feature requires an API Level 15, Revision 3 or later system image. (more info)
- Added support for running Android x86 system images in virtualization mode on
Windows and Mac OS X.
(more info)
Note: Use the Android SDK Manager to download and install x86 system images. Android x86 system images are not available for all API levels.
- Added experimental support for multi-touch input by enabing the emulator to receive touch input from a USB-tethered physical Android device. (more info)
- Added viewing of live detailed network usage of an app in DDMS. (more info)
- ProGuard
- Updated the bundled ProGuard tool to version 4.7. In addition to many new features,
this update fixes the
Conversion to Dalvik format failed with error 1
error some users have experienced. - Updated the default
proguard.cfg
file with better default flags for Android. - Split the ProGuard configuration file has been in half, with project specific flags kept in project and the generic Android flags distributed (and updated) with the tools themselves.
- Updated the bundled ProGuard tool to version 4.7. In addition to many new features,
this update fixes the
- Build
- Added a feature that allows you to run some code only in debug mode. Builds now
generate a class called
BuildConfig
containing aDEBUG
constant that is automatically set according to your build type. You can check the (BuildConfig.DEBUG
) constant in your code to run debug-only functions. - Fixed issue when a project and its libraries include the same jar file in their libs folder. (more info)
- Added support for custom views with custom attributes in libraries. Layouts using
custom attributes must use the namespace URI
http://schemas.android.com/apk/res-auto
instead of the URI that includes the app package name. This URI is replaced with the app specific one at build time.
- Added a feature that allows you to run some code only in debug mode. Builds now
generate a class called
- Lint
- Updated Lint to check Android application code. Lint rules which previously performed pattern based searches in the application code (such as the unused resource check) have been rewritten to use the more accurate Java-style parse trees.
- Added support for checking library projects. This change means that rules such as the unused resource check properly handle resources declared in a library project and referenced in a downstream project.
- Added ability to suppress Lint warnings in Java code with the new
@SuppressLint
annotation, and in XML files with the new tools: namespace and ignore attribute. (more info) - New Lint checks:
- Added check for Android API calls that require a version of Android higher than
the minimum supported version. You can use the new
@TargetApi
annotation to suppress warnings when the code is wrapped in a system version condition. (more info) - Added over 20 new Lint rules, including checks for performance, XML layouts, manifest and file handling.
- Added check for Android API calls that require a version of Android higher than
the minimum supported version. You can use the new
- Emulator
Important: To download the new Android 4.0 system components from the Android SDK Manager, you must first update the SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, the Android 4.0 system components will not be available for download.
- Dependencies:
-
- Android SDK Platform-tools revision 9 or later.
- If you are developing in Eclipse with ADT, note that the SDK Tools r16 is designed for use with ADT 16.0.0 and later. If you haven't already, we highly recommend updating your ADT Plugin to 16.0.0.
- If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- General notes:
- Bug fixes:
-
- Snapshots now work for Android 4.0 system images.
- Fixed several small issues for the build file. (Issue 21023, Issue 21267, Issue 21465, Issue 21525).
Important: To download the new Android 4.0 system components from the Android SDK Manager, you must first update the SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, the Android 4.0 system components will not be available for download.
- Dependencies:
-
- Android SDK Platform-tools revision 9 or later.
- If you are developing in Eclipse with ADT, note that the SDK Tools r15 is designed for use with ADT 15.0.0 and later. If you haven't already, we highly recommend updating your ADT Plugin to 15.0.0.
- If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- Bug fixes:
-
- Fixed emulator crash on Linux due to improper webcam detection (Issue 20952).
- Fixed emulator issue when using the
-wipe-data
argument. - Fixed build issue when using Renderscript in projects that target API levels 11-13 (Issue 21006).
- Fixed issue when creating an AVD using the GoogleTV addon (Issue 20963).
- Fixed
ant test
(Issue 20979). - Fixed
android update project
(Issue 20535). - Fixed scrolling issue in the new Logcat panel of DDMS.
- Fixed issue with MonkeyRunner (Issue 20964).
- Fixed issues in the SDK Manager (Issue 20939, Issue 20607).
Important: To download the new Android 4.0 system components from the Android SDK Manager, you must first update the SDK tools to revision 14 and restart the Android SDK Manager. If you do not, the Android 4.0 system components will not be available for download.
- Dependencies:
-
- Android SDK Platform-tools revision 8 or later.
- If you are developing in Eclipse with ADT, note that the SDK Tools r14 is designed for use with ADT 14.0.0 and later. If you haven't already, we highly recommend updating your ADT Plugin to 14.0.0.
- If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- General notes:
-
- Added webcam support to Android 4.0 or later platforms to emulate rear-facing cameras when one webcam is present, and to emulate both rear-facing and front-facing cameras when two webcams are present. Webcam support is for Windows and Linux only. Mac support will come in a later release.
- Changed
default.properties
toproject.properties
andbuild.properties
toant.properties
. Any existing projects that you build with Ant must be updated with theandroid update project
command. - Changed Ant
build.xml
file to support improvements to the build system and added and modified Ant commands to support these changes. For a list of Ant commands, see the Ant Command Reference. - Changed how library projects are built.
- Improved incremental builds, so that resource compilation runs less frequently. Builds no
longer run when you edit strings or layouts (unless you add a new
id
) and no longer run once for each library project. - Introduced a "PNG crunch cache" that only runs on modified PNG files, instead of crunching all existing PNG files, all the time.
- Revamped the SDK Manager UI (more info).
For a complete overview of the build system changes and what you need to do to support them, see the Android Tools Project site.
- Dependencies:
-
If you are developing in Eclipse with ADT, note that the SDK Tools r13 is designed for use with ADT 12.0.0 and later. If you haven't already, we highly recommend updating your ADT Plugin to 12.0.0.
If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- General notes:
-
- Fix compilation issue in Ant (
dex
step) when paths have spaces. - Fix issue in emulator installation when paths have spaces.
- Fix issue when AVD paths have spaces.
- Fix rendering issue when using emulator scaling (see more).
- Fix compilation issue in Ant (
- Dependencies:
-
If you are developing in Eclipse with ADT, note that the SDK Tools r12 is designed for use with ADT 12.0.0 and later. If you haven't already, we highly recommend updating your ADT Plugin to 12.0.0.
If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- General notes:
-
- The AVD manager and emulator can now use system images compiled for ARM v7 and x86 CPUs.
- Dependencies:
-
If you are developing in Eclipse with ADT, note that the SDK Tools r11 is designed for use with ADT 10.0.1 and later. If you haven't already, we highly recommend updating your ADT Plugin to 10.0.1.
If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- General notes:
-
- Miscellaneous emulator changes to support Android 3.1.
- Dependencies:
-
If you are developing in Eclipse with ADT, note that the SDK Tools r10 is designed for use with ADT 10.0.0 and later. After installing SDK Tools r10, we highly recommend updating your ADT Plugin to 10.0.0.
If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- General notes:
-
- The tools now automatically generate Java Programming Language source files (in the
gen
directory) and bytecode (in theres/raw
directory) from your native.rs
files
- The tools now automatically generate Java Programming Language source files (in the
- Dependencies:
-
If you are developing in Eclipse with ADT, note that the SDK Tools r9 is designed for use with ADT 9.0.0 and later. After installing SDK Tools r9, we highly recommend updating your ADT Plugin to 9.0.0.
If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
- Upgrading to SDK Tools r9:
-
If you are upgrading to SDK Tools r9 from SDK Tools r7 or earlier, the default installed location for the
adb
tool has changed from<SDK>/tools/adb
to<SDK>/platform-tools/adb
. This means that you should add the new location to your PATH and modify any custom build scripts to reference the new location. Copying theadb
executable from the new location to the old is not recommended, since subsequent updates to the SDK Tools will delete the file. - General notes:
-
- The default ProGuard configuration,
proguard.cfg
, now ignores the following classes:- classes that extend
Preference
- classes that extend
BackupAgentHelper
- classes that extend
- Ant lib rules now allow you to override
java.encoding
,java.source
, andjava.target
properties. - The default encoding for the
javac
Ant task is now UTF-8. - The LogCat view in DDMS now properly displays UTF-8 characters.
- The SDK Manager is more reliable on Windows. For details on the improvements, see the Android Tools Project Site.
- Early look at the new snapshot feature: To improve startup time for the emulator, you can enable snapshots for the system state. The emulator will then restore to the state when it last closed almost instantly. Note: The snapshot feature is still under active development and might not always perform as expected.
- Fixed the missing JAR file error that prevented
draw9patch
from running. - Fixed the Windows launch scripts
hierarchyviewer
andddms
to support the new location ofadb
. - Known issues with emulator performance: Because the Android emulator must simulate the ARM instruction set architecture on your computer, emulator performance is slow. We're working hard to resolve the performance issues and it will improve in future releases.
- The default ProGuard configuration,
- Dependencies:
-
If you are developing in Eclipse with ADT, note that SDK Tools r8 is designed for use with ADT 8.0.0 and later. After installing SDK Tools r8, we highly recommend updating your ADT Plugin to 8.0.0.
If you are developing outside Eclipse, you must have Apache Ant 1.8 or later.
Also note that SDK Tools r8 requires a new SDK component called Platform-tools. The new Platform-tools component lets all SDK platforms (Android 2.1, Android 2.2, and so on) use the same (latest) version of build tools such as
adb
,aapt
,aidl
, anddx
. To download the Platform-tools component, use the Android SDK Manager, as described in Exploring the SDK - Upgrading from SDK Tools r7:
-
If you are upgrading to SDK Tools r8 from an earlier version, note that the the default installed location for the
adb
tool has changed from<SDK>/tools/adb
to<SDK>/platform-tools/adb
. This means that you should add the new location to your PATH and modify any custom build scripts to reference the new location. Copying theadb
executable from the new location to the old is not recommended, since subsequent updates to the SDK Tools will delete the file. - General notes:
-
- All SDK platforms now support Library Projects.
- Support for a true debug build. Developers no longer need to add the
android:debuggable
attribute to the<application>
tag in the manifest — the build tools add the attribute automatically. In Eclipse/ADT, all incremental builds are assumed to be debug builds, so the tools insertandroid:debuggable="true"
. When exporting a signed release build, the tools do not add the attribute. In Ant, aant debug
command automatically inserts theandroid:debuggable="true"
attribute, whileant release
does not. Ifandroid:debuggable="true"
is manually set, thenant release
will actually do a debug build, rather than a release build. - Automatic ProGuard support in release builds. Developers generate a ProGuard
configuration file using the
android
tool — the build tools then automatically run ProGuard against the project sources during the build. For more information, see the ProGuard documentation. - New overridable Ant javac properties:
java.encoding
,java.source
, andjava.target
(default values are "ascii", "1.5", and "1.5", respectively). - New UI for the HierarchyViewer tool.
- Dependencies:
-
If you are developing in Eclipse with ADT, note that SDK Tools r7 is designed for use with ADT 0.9.8 and later. After installing SDK Tools r7, we highly recommend updating your ADT Plugin to 0.9.8.
- General notes:
-
- Added support for library projects that depend on other library projects.
- Adds support for aidl files in library projects.
- Adds support for extension targets in Ant build to perform tasks between the
normal tasks:
-pre-build
,-pre-compile
, and-post-compile
. - Adds support for "headless" SDK update. See
android -h update sdk
for more information. - Fixes location control in DDMS to work in any locale not using '.' as a decimal point.
- Dependencies:
-
If you are developing in Eclipse with ADT, note that SDK Tools r6 is designed for use with ADT 0.9.7 and later. After installing SDK Tools r6, we highly recommend updating your ADT Plugin to 0.9.7.
- Library projects:
-
The SDK Tools now support the use of library projects during development, a capability that lets you store shared Android application code and resources in a separate development project. You can then reference the library project from other Android projects and, at build time, the tools compile the shared code and resources as part of the dependent applications. More information about this feature is available in the Creating and Managing Projects document.
If you are developing in Eclipse, ADT provides the equivalent library project support.
- Dependencies:
- If you are developing in Eclipse with ADT, note that SDK Tools r5 is designed for use with ADT 0.9.6 and later. After installing SDK Tools r5, we highly recommend updating your ADT Plugin to 0.9.6.
- For Mac OS platforms, OS X 10.4.x (Tiger) is no longer officially supported.
- SDK and AVD Manager:
-
- Fixes SSL download for the standalone version of the SDK Updater.
- Fixes issue with 64-bit JVM on Windows.
- Adds support for platform samples components.
- Improves support for dependency between components.
- AVDs now sorted by API level.
- The AVD creation dialog now enforces a minimum SD card size of 9MB.
- Prevents deletion of running AVDs.
- Settings are now automatically saved, no need to click "Apply".
- Emulator:
-
- Emulator now requires SD card to be 9MB or more.
- Layoutopt:
-
- Fixes
layoutopt.bat
to execute correctly on Windows.
- Fixes
- Dependencies:
SDK Tools r4 is compatible with ADT 0.9.5 and later, but not compatible with earlier versions. If you are developing in Eclipse with ADT, you must update your ADT plugin to version 0.9.5 or higher if you install SDK Tools r4 in your SDK.
- General notes:
-
- Launcher script now forces GDK_NATIVE_WINDOW=true (linux only), to fix a compatibility issue between GTK and SWT.
- Android SDK and AVD Manager:
-
- AVD Launch dialog now shows scale value.
- Fixes potential NPE in SDK Manager on AVD launch, for older AVD with no skin name specified.
- Fixes XML validation issue in on older Java versions.
- No longer forces the use of Java 1.5 on Mac OS X.
- Emulator:
-
- No longer limits the size of the system partition.
- Ant build tools:
-
- .apk packaging now properly ignores vi swap files as well as hidden files.
- Dependencies:
SDK Tools r3 is compatible with ADT 0.9.4 and later, but not compatible with earlier versions. If you are developing in Eclipse with ADT, you must update your ADT plugin to version 0.9.4 or higher if you install SDK Tools r3 in your SDK.
- Android tool:
-
- Adds new
android create test-project
andandroid update test-project
commands to allow for greater flexibility in the location of the main and test projects.
- Adds new
- DDMS:
-
- Adds a button to dump HPROF file for running applications (app must be able to write to the sdcard).
- Button to start/stop profiling of a running application (app must be able to write to the sdcard). Upon stop, Traceview will automatically be launched to display the trace.
- Fixed DDMS, Traceview, and the AVD Mananger/SDK Updater to run on Mac OS X 10.6.
- Fixed screenshot support for devices running 32-bit framebuffer.
- Android SDK and AVD Manager:
-
- Provides a new UI that lets you set options for controlling the emulator skin, screen size/density, and scale factor used when launching an AVD.
- Provides improved AVD creation UI, which lets you customize the hardware properties of your AVDs.
- Now enforces dependencies between platforms and tools components, and between SDK add-ons and platforms.
- Layoutopt, a new tool for optimizing layouts:
The SDK Tools r3 package includes
layoutopt
, a new command-line tool that helps you optimize your layout hierarchies. When run against your layout files, the tool analyzes their hierarchies and notifies you of inefficiencies and other potential issues. The tool also provides simple solutions for the issues it finds. For usage, see layoutopt.