The Android SDK ships with dozens of tools. These 10 are the most important for Android developers to know.
10 Must-Have Android Tools for Developers
The Android SDK comes with a robust set of tools to help developers design, develop, test, and publish quality Android applications. In this article, we discuss 10 of the most common tools you should know about and learn to use.
About the Authors
Shane Conder and Lauren Darcey—Contributing Editors, Mobile Development—have coauthored two books on Android development: an in-depth programming book entitled Android Wireless Application Development (ISBN-13: 978-0-321-62709-4) and Sams Teach Yourself Android Application Development in 24 Hours (ISBN-13: 978-0-321-67335-0). When not writing, they spend their time developing mobile software at their company and providing consulting services.
Android Tool #1: Eclipse w/ADT
Although Eclipse is not the only Java development environment that can be used to develop Android applications, it is by far the most popular. This is partially due to its cost (free!) but mostly due the strong integration of the Android tools with Eclipse. This integration is achieved with the Android Development Tools (ADT) plug-in for Eclipse, which can be downloaded from the Android website.
Android Tool #2: The SDK and AVD Manager
This tool serves a number of important functions. It manages the different versions of the Android SDKs (build targets) that you can develop for, as well as third-party add-ons, tools, devices drivers, and documentation. Its second function is to manage the Android Virtual Device configurations (AVDs) you use to configure emulator instances.
Android Tool #3: Android Debug Bridge
The Android Debug Bridge (adb) connects other tools with the emulator and devices. Besides being critical for the other tools (most especially the Eclipse ADT plug-in) to function, you can use it yourself from the command line to upload and download files, install and uninstall packages, and access many other features via the shell on the device or emulator.
Android Tool #4: Dalvik Debug Monitor Server
The Dalvik Debug Monitor Server (DDMS), whether it’s accessed through the standalone application or the Eclipse perspective with the same name, provides handy features for inspecting, debugging, and interacting with emulator and device instances. You can use DDMS to inspect running processes and threads, explore the file system, gather heap and other memory information, attach debuggers, and even take screenshots. For emulators, you can also simulate mock location data, send SMS messages, and initiate incoming phone calls.
Android Tool #5: The Android Emulator and Real Devices
Once you have begun to develop an app, it’s important to test it on the appropriate device targets. The emulator can be used in conjunction with AVDs to simulate device targets. That said, testing on real physical devices is essential for complete test coverage. The emulator, while powerful, cannot emulate the idiosyncrasies of individual devices. Therefore, a solid test plan must incorporate both emulators and real devices. After all, your users won’t be running your app on an emulator, will they?
Android Tool #6: LogCat
LogCat is the name of the Android logging system. LogCat data is accessible from within Eclipse, as well as through adb, and provides helpful diagnostic information about events on the system. As a developer, you can enable your applications to log debugging and diagnostic information to LogCat as well. Logging from within an application is about as easy as a printf() statement.
Android Tool #7: The Hierarchy Viewer
The Hierarchy Viewer, whether it’s access through the standalone application or the relatively new Eclipse perspective, is used to see how your layouts and screens resolve at runtime. It provides a graphical representation of the layout and view hierarchy of your application and can be used to diagnose layout problems.
Android Tool #8: Draw 9-Patch
When it comes to graphics design, the Draw 9-patch tool comes in handy. This tool allows you to convert traditional PNG graphic files into stretchable graphics that are more flexible and efficient for mobile development use. The tool simplifies the creation of NinePatch files in an environment that instantly displays the results.
Android Tool #9: The Monkey Test Tools
p>The Monkey Test Tools, including the Monkey exerciser tool and the monkeyrunner tool, are a pair of applications that can be used to automate application testing. The Monkey exerciser randomly sends events to your application for stress testing purposes. The monkeyrunner tool is a scripting library that can be used for automated testing and checking of the results via screenshots using Python scripts.
Android Tool #10: ProGuard
ProGuard, which is now part of the typical Android build process, provides developers with a straightforward way to increase protection of their intellectual property after publication. The ProGuard tool can be configured to obfuscate the resulting binaries to make them difficult to reverse engineer. The ProGuard tool can also be used to optimize the size of the resulting binary, reducing the overall package size and speeding delivery to your users.
The Android SDK ships with numerous other tools. Many of which are used for special development cases. However, the tools listed above will be used with just about every project, regardless of the type of app being developed. For more information on these and other tools available, check out the Android Tools section of the Android website. Also, new tools and improved tools are released on a fairly regular basis, so make sure you keep all of the packages updated with the AVD and SDK Manager.
Finally, above and beyond the Android tools we’ve discussed, your best resource is the Android Developer website. Complete with up-to-date SDK downloads, source documentation, tutorials, technical articles, and the Android blog with the latest news, this website provides critical knowledge and support for Android developers.
What is your most useful Android development tool?