Tools Help

The Android SDK includes a variety of tools that help you develop mobile applications for the Android platform. The tools are classified into two groups: SDK tools and platform tools. SDK tools are platform independent and are required no matter which Android platform you are developing on. Platform tools are customized to support the features of the latest Android platform.

SDK Tools

The SDK tools are installed with the SDK starter package and are periodically updated. The SDK tools are required if you are developing Android applications. The most important SDK tools include the Android SDK Manager (android sdk), the AVD Manager (android avd) the emulator (emulator), and the Dalvik Debug Monitor Server (ddms). A short summary of some frequently-used SDK tools is provided below.

Virtual Device Tools

Android Virtual Device Manager
The AVD Manager provides a graphical user interface in which you can create and manage Android Virtual Devices (AVDs) that run in the Android Emulator.
Android Emulator (emulator)
A QEMU-based device-emulation tool that you can use to debug and test your applications in an actual Android run-time environment.
mksdcard
Helps you create a disk image that you can use with the emulator, to simulate the presence of an external storage card (such as an SD card).

Development Tools

android
Lets you manage AVDs, projects, and the installed components of the SDK.
Hierarchy Viewer (hierarchyviewer)
Provides a visual representation of the layout's View hierarchy with performance information for each node in the layout, and a magnified view of the display to closely examine the pixels in your layout.
lint
The Android lint tool is a static code analysis tool that checks your Android project source files for potential bugs and optimization improvements.
SDK Manager
Lets you manage SDK packages, such as installed platforms and system images.
sqlite3
Lets you access the SQLite data files created and used by Android applications.

Debugging Tools

adb
Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It also provides access to the device shell for advanced command-line operations.
uiautomator
The uiautomator testing framework lets you test your user interface (UI) efficiently by creating automated functional UI testcases that can be run against your app on one or more devices.
Dalvik Debug Monitor Server (ddms)
Lets you debug Android applications.
Device Monitor
Android Device Monitor is a stand-alone tool that provides a graphical user interface for several Android application debugging and analysis tools.
dmtracedump
Generates graphical call-stack diagrams from trace log files. The tool uses the Graphviz Dot utility to create the graphical output, so you need to install Graphviz before running dmtracedump. For more information on using dmtracedump, see Profiling with Traceview and dmtracedump
hprof-conv
Converts the HPROF file that is generated by the Android SDK tools to a standard format so you can view the file in a profiling tool of your choice.
Monkey
Runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner.
monkeyrunner
Provides an API for writing programs that control an Android device or emulator from outside of Android code.
Systrace
Lets you analyze the execution of your application in the context of system processes, to help diagnose display and performance issues.
traceview
Provides a graphical viewer for execution logs saved by your application.
Systrace
Lets you analyze the execution of your application in the context of system processes, to help diagnose display and performance issues.

Build Tools

JOBB
Allows you to build encrypted and unencrypted APK expansion files in Opaque Binary Blob (OBB) format.
APK expansion files
ProGuard
Shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and methods with semantically obscure names.
zipalign
Optimizes .apk files by ensuring that all uncompressed data starts with a particular alignment relative to the start of the file. This should always be used to align .apk files after they have been signed.

Image Tools

Draw 9-patch
Allows you to easily create a NinePatch graphic using a WYSIWYG editor. It also previews stretched versions of the image, and highlights the area in which content is allowed.
etc1tool
A command line utility that lets you encode PNG images to the ETC1 compression standard and decode ETC1 compressed images back to PNG.
Tracer for OpenGL ES
Allows you to capture OpenGL ES commands and frame by frame images to help you understand how your graphics commands are being executed.

Platform Tools

The platform tools are typically updated every time you install a new SDK platform. Each update of the platform tools is backward compatible with older platforms. Usually, you directly use only one of the platform tools—the Android Debug Bridge (adb). Android Debug Bridge is a versatile tool that lets you manage the state of an emulator instance or Android-powered device. You can also use it to install an Android application (.apk) file on a device.

The other platform tools, such as aidl, aapt, dexdump, and dx, are typically called by the Android build tools or Android Development Tools (ADT), so you rarely need to invoke these tools directly. As a general rule, you should rely on the build tools or the ADT plugin to call them as needed.

Note: The Android SDK provides additional shell tools that can be accessed through adb, such as bmgr and logcat.

bmgr
A shell tool you can use to interact with the Backup Manager on Android devices supporting API Level 8 or greater.
logcat
Provides a mechanism for collecting and viewing system debug output.