The Android SDK includes several tools and utilities to help you create, test, and debug your projects. A detailed examination of each developer tool is outside the scope of this book, but it’s worth briefly reviewing what’s available.
The Android Virtual Device and SDK Managers — Used to create and manage AVDs and to download SDK packages, respectively. The AVD hosts an Emulator running a particular build of Android, letting you specify the supported SDK version, screen resolution, amount of SD card storage available, and available hardware capabilities (such as touchscreens and GPS).
The Android Emulator — An implementation of the Android VM designed to run within an AVD on your development computer. Use the Emulator to test and debug your Android applications
Dalvik Debug Monitoring Service (DDMS) — Use the DDMS to monitor and control the Emulators on which you’re debugging your applications.
Android Debug Bridge (ADB) — A client-server application that provides a link to virtual and physical devices. It lets you copy fi les, install compiled application packages (.apk), and run shell commands.
Logcat — A utility used to view and filter the output of the Android logging system.
Android Asset Packaging Tool (AAPT) — Constructs the distributable Android package fi les (.apk)
The following additional tools are also available:
- SQLite3 — A database tool that you can use to access the SQLite database fi les created and used by Android.
- Traceview and dmtracedump — Graphical analysis tools for viewing the trace logs from your Android application
- Hprof-conv — A tool that converts HPROF profiling output fi les into a standard format to view in your preferred profiling tool
- MkSDCard — Creates an SD card disk image that can be used by the Emulator to simulate an external storage card.
- Dx — Converts Java .class bytecode into Android .dex bytecode.
- Hierarchy Viewer — Provides both a visual representation of a layout’s View hierarchy to debug and optimize your UI, and a magnified display to get your layouts pixel-perfect.
- Lint — A tool that analyzes your application and its resources to suggest improvements and optimizations
- Draw9patch: A handy utility to simplify the creation of NinePatch graphics using a WYSIWYG editor
- Monkey and Monkey Runner: Monkey runs within the VM, generating pseudo-random user and system events. Monkey Runner provides an API for writing programs to control the VM from outside your application.
- ProGuard — A tool to shrink and obfuscate your code by replacing class, variable, and method names with semantically meaningless alternatives. This is useful to make your code more diffi cult to reverse engineer