The Android SDK: Top tools for effective Android app development


The Android SDK is full of tools to help developers out with the various tasks they go about during the course of Android app development. Many of these tools are easily accessible through Eclipse, often with their own perspective. Others are only available from the command line. Some tools are suitable for application designers and graphic artists, while others are for down and dirty debugging. The Android SDK includes tools for testers and automation use, as well as tools to protect your application from software pirates at distribution time. Let’s explore some of the most important tools available and discuss how each is used, where to find it and what part of the app development process it is most suited for.

Exploring the tools accessible from within eclipse

Let’s start with Eclipse. If you’re like many Android app developers, you spend most of your time working within Eclipse – designing, developing, debugging and preparing to distribute your Android app packages. Recently, some new tools have been added to the Android Developer Tools (ADT) plug-in for Eclipse; so even if you’ve been using Eclipse, you may find something new here.

The tools that are accessible from within Eclipse are generally focused towards the design, development and debugging of applications, as well as creating the final application packages for distribution. This means that the target audience is primarily the software developers, as opposed to QA personnel.

Android SDK Manager

The Android SDK Manager is a tool everyone should know about. This tool does more than just keep all your other Android development tools and libraries up to date. Here you’ll find SDK updates, tool updates and newly available SDKs, as well as legacy versions, third-party tools, platform device drivers and many other goodies. You’ll want to check the Android SDK Manager often for updates: the tools are often updated on a much more aggressive schedule than the Android SDK itself. You can access the Android SDK Manager from within Eclipse on the menu bar – Window>Android SDK Manager – as well as from the Android Eclipse toolbar.

eclipse jelly bean ice cream sandwich
The Android SDK Manager

Android Virtual Device Manager


Android developers don’t need to get their hands on every single Android device available to consumers – that would be prohibitively expensive. Instead, developers rely upon Android Virtual Devices or AVDs, to help configure the Android emulator to mimic the behaviour of different types of devices. The Android Virtual Device Manager is another core tool that all developers need to master in order to thoroughly debug and test their apps. AVDs are sets of device settings that the Android Emulator uses to simulate specific devices, like phones and tablets. Each AVD instance is configured with a system image, SD card storage and a device information, such as what version of the Android SDK to emulate; hardware settings to emulate, such as screen resolution and the existence of a camera; and navigation options like directional pads, trackballs and touch-screen abilities. The Android Virtual Device Manager has a graphic interface for creating and configuring Android Virtual Devices. Access the Android Virtual Device Manager through Eclipse from the menu bar – Window>AVD Manager – as well as from the Android Eclipse toolbar.

Dalvik Debug Monitor Server (DDMS)

You’ve probably used portions of the Dalvik Debug Monitor Server (DDMS) tool, regardless of whether you use the DDMS perspective in Eclipse or not. DDMS is really a collection of many Android app debugging tools, from Logcat logging output, to screen capturing and file browsing, to app memory monitoring. DDMS also includes features such as the ability to simulate phone calls and test messages and GPS location data with emulator instances. You can access the DDMS tool through Eclipse from the menu bar: Window>Open Perspective>Other…>DDMS.

The Hierarchy View

The Hierarchy Viewer tool allows you to inspect your app’s user interface components while the app is running. User interface debugging is made straightforward since components are displayed hierarchically in tree form and you can drill down to see the details. Performance indicators are displayed for each UI component, allowing developers and designers to visualise the relationships between components and seek and destroy UI inefficiencies. The Hierarchy Viewer is accessible in Eclipse from the menu bar: Window>Open Perspective>Other…> Hierarchy Viewer.

Android Jelly Bean Ice Cream Sandwich Eclipse
The Hierarchy Viewer

Pixel Perfect

The Pixel Perfect tool, which used to be a feature of the Hierarchy Viewer, has been spun off and is now its own standalone tool. Pixel Perfect allows app designers to zoom in on an app’s UI while it is running and see the exact pixels. This tool is useful for aligning user interface controls, checking icon positions and identifying issues with any platform scaling that may be taking place. It’s especially useful for helping bring the UI or graphic designer’s planned user interface with the developer’s actual one closer to parity. The Pixel Perfect tool is accessible in Eclipse from the menu bar: Window>Open Perspective>Other…>Pixel Perfect.

Android Jelly Bean Ice Cream Sandwich Eclipse SDK
Pixel Perfect

Tracer for OpenGL ES

The Tracer for OpenGL ES tool has two main functions. First, it can capture OpenGL ES calls while an app is running (Android 4.1+). Second, it can be used to analyse the captured file so you can see what OpenGL ES calls are taking place. This is useful for debugging OpenGL ES applications. The Tracer tool is accessible in Eclipse from the menu bar: Window>Open Perspective> Other…>Tracer for OpenGL ES.

Android Lint

Android Lint is integrated into Eclipse in various ways to help developers create quality Android applications. As the Lint name implies, the tool is a code correctness checker that performs platform-level checks on your Java code, XML resource files like layouts, and other sanity checks on your app. From quick-fix helpers to listing errors and warnings to help enforce various best practices for app development, Android Lint will help you write better, more correct apps. The Android Lint tool can also be accessed directly within Eclipse from the Window>Run Android Lint menu.

Tool found outside of Eclipse

Eclipse and the ADT plug-in aggregate many of the core Android tools into a useful, convenient development environment. However, there are other tools that can’t be used directly through Eclipse. In fact, our first external-to-Eclipse tool, the Android Debug Monitor, helps find those.

Android Debug Monitor

The Android Debug Monitor (also sometimes called the Android Device Monitor) is a standalone tool that consolidates many other Android tools under a single executable. In fact, it looks like it’s a remixed Eclipse, but without Eclipse. This tool is most useful if you are not developing using the Eclipse development environment; it is also useful for white box testers who want to be able to thoroughly test apps without having a full development environment installation. With it, you can easily access DDMS, Hierarchy Viewer, Pixel Perfect, Tracer for OpenGL ES and numerous other tools. The Android Debug Monitor can be launched from the tools directory with the command monitor.

Eclipe Jelly Bean Nexus Ice Cream Sandwich
The Android Debug Monitor

Android Debug Bridge

The Android Debug Bridge (ADB) tool is used by many of the Android tools ‘under the hood’. It facilitates communication between your development system and any connected emulators or devices. Through it, you can communicate with emulator instances and devices connected via USB. You can transfer files; install, update and remove applications; back up and restore a device; launch into a shell; and much more. Through the shell, various other tools are available, from SQLite to the Monkey tool (discussed below). The ADB tool can be launched from the platform-tools directory with the adb command; you can then connect to a specific instance of an emulator or device and issue adb commands to it.

Draw 9-patch

Draw 9-patch is a tool used to create scalable graphics files for use as image resources within Android apps. You can use this tool to take PNG resource files and create 9-patch smart scalable bitmap graphics. They’re used all over with Android for such things as borders, frames and buttons that need to vary in size, depending on the screen dimensions. The Draw 9-patch tool can be launched from the tools directory with the command ‘draw9patch’.

Android Jelly Bean Ice Cream Sandwich Nexus Eclipse SDK
The Draw 9-patch tool


The Monkeyrunner tool provides testers and developers with a means for scripting an Android device or the emulator in order to create repeatable test scenarios. The tool can connect to multiple devices at once, run additional tool commands (such as from ADB) during tests, and effectively perform user- level testing. Unlike JUnit (the Java unit testing APIs available within the Android SDK), the Monkeyrunner tool is not for unit testing but rather for functional testing and can include control over more than one application. Monkeyrunner programs are written in Python. The Monkeyrunner program is found within the tools directory, but requires that you write a script for it first.


Although it’s a bit confusing, the Monkey tool is not related to the Monkeyrunner tool. Instead, the Monkey tool performs stress testing in the form of random input to your apps. The strings of commands sent to (or at) the app are reproducible, in the event that a problem is found during testing, since each string of commands is generated from a known seed. The Monkey tool is actually run through the ADB command-line, which is found in the SDK platform-tools directory. You can run ‘adb shell monkey’ to see a list of command-line options for the Monkey tool.


Finally, there’s a tool that developers, especially those who don’t use Eclipse for app development, should know about. It’s simply named ‘android’. The Android tool is used as a jumping off point for a lot of the tool features we’ve already discussed, but from outside of Eclipse. You can use it to launch standalone versions of the SDK Manager and AVD Manager. You can create AVDs from the command line. You even create new Android projects using this tool. It can be launched from the tools directory with the command ‘android’.


The number of tools that come with the Android SDK can be daunting to someone just getting started with Android development. Many of the tools aren’t even aimed at developers; some are really for UI designers while others are for build engineers and quality assurance personnel. Perhaps you’ve learned about a new tool or two you didn’t know about, or maybe this has given you an idea of how your development team might improve their app development process and, in turn, the apps themselves, in new ways. Be sure to check and update your tools within Eclipse and the Android SDK Manager often, as new tools are created all the time.

Other Tools


This is by no means a complete list of the tools
available to Android developers. There are many others,
some of which are highly specialised. For example, there are tools
for deep debugging and performance tuning, as well as those for creating optimised OpenGL textures. There are also third-party tools available, many of which are found through the Android SDK Manager.

Some of the tools we have not had a chance to cover in more detail include:

A Backup Management tool called bmgr, which is used to test an application’s ability to leverage the Android backup system. This tool is available on the command line from within the adb interface.

A graphical profiling tool, called Traceview (and, optionally, dmtracedump), which allows you to visualise the results of the trace files that are generated by making appropriate calls in your code. You can also use the hprof-conf tool to convert HPROF profiling files into a standard file format compatible with other profiling tools.

The ETC1 tool converts PNG files into etc1 format for use on devices that support this type of compressed texture format within OpenGL. This tool will be helpful for developers of any application that leverages OpenGL textures as it can be used to reduce the memory requirements of textures, thereby improving graphics performance.

The Debug logging app, Logcat, is readily available from within Eclipse, but it’s also available from the command line via the adb shell interface. Simply run ‘adb logcat’ from the command line for details.

When it comes to app packaging and distribution, ProGuard can be used to obfuscate app Java code during compilation. The New Android Project wizard within Eclipse creates ProGuard configuration files when the project is created, and you can configure the ProGuard features to help make your app more difficult to reverse-engineer.

The Zipalign tool can be run after an application package (APK) is signed. This tool aligns data within the package for optimum performance and memory usage.

Fastboot, found in the platform-tools directory, is used to flash ROMs and perform other lower-level device functions. It’s used extensively within the custom ROM community and should be handled with care. Used incorrectly, it can render devices useless.

There are other command-line tools. You can also peruse the repository through the Android SDK Manager. Many device manufacturers provide downloads and SDKs for various devices. Google provides many of its developer SDKs, such as one for Google Analytics and another for AdMob, through the SDK Manager. The Status field of the SDK Manager view will indicate whether or not a package is compatible with your platform.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s