<img src="{@docRoot}assets/images/android_wrench.png" alt="" align="right">
-<p>The Android SDK includes a variety of custom tools that help you develop mobile
-applications on the Android platform. The most important of these are the Android
-Emulator and the Android Development Tools plugin for Eclipse, but the SDK also
-includes a variety of other tools for debugging, packaging, and installing your
-applications on the emulator. </p>
-
- <dl>
- <dt><a href="adb.html">Android Debug Bridge</a></dt>
- <dd>A versatile tool lets you manage the state of an emulator instance
- or Android-powered device.</dd>
-
- <dt><a href="android.html">android</a></dt>
- <dd>Lets you manage AVDs, projects, and the installed components of the SDK.
- </dd>
-
- <dt><a href="bmgr.html">bmgr</a></dt>
-
- <dd>Lets you interact with the Backup Manager on Android devices
- supporting API Level 8 or greater. It provides commands to invoke backup and restore operations
- so that you don't need to repeatedly wipe data or take similar intrusive steps in order to test
- your application's backup agent. These commands are accessed via the adb shell.
- </dd>
-
+<p>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.</p>
+
+<h2 id="tools-sdk">SDK Tools</h2>
+<p>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 and AVD Manager (<code>android</code>), the emulator
+(<code>emulator</code>), and the Dalvik Debug Monitor Server
+(<code>ddms</code>). A short summary of some frequently-used SDK tools is provided below.</p>
+
+<dl>
+ <dt><a href="android.html">android</a></dt>
+ <dd>Lets you manage AVDs, projects, and the installed components of the SDK.</dd>
+ <dt><a href="{@docRoot}guide/developing/debugging/ddms.html">Dalvik Debug Monitor
+Server (ddms)</a></dt>
+ <dd>Lets you debug Android applications.</dd>
<dt><a href="dmtracedump.html">dmtracedump</a></dt>
-
- <dd>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 <code>dmtracedump</code>. For more information on using <code>dmtracedump</code>, see
- <a href="{@docRoot}guide/developing/debugging/debugging-tracing.html#dmtracedump">Profiling with
- Traceview and dmtracedump</a>
- </dd>
-
- <dt><a href="draw9patch.html">Draw 9-patch</a></dt>
- <dd>Allows you to easily create a {@link android.graphics.NinePatch} graphic using a WYSIWYG editor.
- It also previews stretched versions of the image, and highlights the area in which content is allowed.
- </dd>
-
- <dt><a href="emulator.html">Android Emulator</a></dt>
- <dd>A QEMU-based device-emulation tool that you can use to design,
- debug, and test your applications in an actual Android run-time environment. </dd>
-
+ <dd>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 <code>dmtracedump</code>. For more information on using <code>dmtracedump</code>, see <a
+href="{@docRoot}guide/developing/debugging/debugging-tracing.html#dmtracedump">Profiling
+with Traceview and dmtracedump</a></dd>
+ <dt><a href="draw9patch.html">Draw 9-patch</a></dt>
+ <dd>Allows you to easily create a {@link android.graphics.NinePatch} graphic using a
+WYSIWYG editor. It also previews stretched versions of the image, and highlights the area in which
+content is allowed.</dd>
+ <dt><a href="emulator.html">Android Emulator (emulator)</a></dt>
+ <dd>A QEMU-based device-emulation tool that you can use to design, debug, and test
+your applications in an actual Android run-time environment.</dd>
+ <dt><a href="hierarchy-viewer.html">Hierarchy Viewer (hierarchyviewer)</a></dt>
+ <dd>Lets you debug and optimize an Android application's user interface.</dd>
<dt><a href="hprof-conv.html">hprof-conv</a></dt>
-
- <dd>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.</dd>
-
+ <dd>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.</dd>
<dt><a href="layoutopt.html">layoutopt</a></dt>
- <dd>Lets you quickly analyze your application's layouts in order to
- optimize them for efficiency.
- </dd>
-
- <dt><a href="mksdcard.html">logcat</a></dt>
- <dd>Lets you read system log messages that are output on an Android device or emulator.</dd>
-
+ <dd>Lets you quickly analyze your application's layouts in order to optimize them for
+efficiency.</dd>
<dt><a href="mksdcard.html">mksdcard</a></dt>
- <dd>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).</dd>
-
+ <dd>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).</dd>
<dt><a href="monkey.html">Monkey</a></dt>
- <dd>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.</dd>
-
+ <dd>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.</dd>
<dt><a href="monkeyrunner_concepts.html">monkeyrunner</a></dt>
- <dd>Provides an API for writing programs that control an Android device
- or emulator from outside of Android code.</dd>
-
+ <dd>Provides an API for writing programs that control an Android device or emulator from
+outside of Android code.</dd>
<dt><a href="proguard.html">ProGuard</a></dt>
- <dd>Shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes,
- fields, and methods with semantically obscure names.</dd>
-
+ <dd>Shrinks, optimizes, and obfuscates your code by removing unused code and renaming
+classes, fields, and methods with semantically obscure names.</dd>
<dt><a href="sqlite3.html">sqlite3</a></dt>
- <dd>Lets you access the SQLite data files created and used by Android applications.</dd>
-
+ <dd>Lets you access the SQLite data files created and used by Android applications.</dd>
+ <dt><a href="traceview.html">traceview</a></dt>
+ <dd>Provides a graphical viewer for execution logs saved by your application.</dd>
<dt><a href="zipalign.html">zipalign</a></dt>
- <dd>Optimizes <code>.apk</code> 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.</dd>
-</dl>
-
+ <dd>Optimizes <code>.apk</code> 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.</dd>
+ </dl>
+
+<h2 id="tools-platform">Platform Tools</h2>
+
+<p>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 <a href="adb.html">Android Debug Bridge (<code>adb</code>)</a>.
+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.</p>
+
+<p>The other platform tools, such as <a href="{@docRoot}guide/developing/tools/aidl.html">aidl</a>,
+<code>aapt</code>, <code>dexdump</code>, and <code>dx</code>, 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.</p>
+
+<p class="note"><strong>Note:</strong> The Android SDK provides additional shell tools that can
+be accessed through <code>adb</code>, such as <a href="bmgr.html">bmgr</a> and
+<a href="logcat.html">logcat</a>.</p>
\ No newline at end of file
<h3 id="downloading">Downloading the ADT Plugin</h3>
<p>Use the Update Manager feature of your Eclipse installation to install the latest
-revision of ADT on your development computer.<p>
+revision of ADT on your development computer.<>
<p>Assuming that you have a compatible version of the Eclipse IDE installed, as
described in <a href="#preparing">Preparing for Installation</a>, above, follow
<li>In the Add Repository dialog that appears, enter "ADT Plugin" for the <em>Name</em> and the
following URL for the <em>Location</em>:
<pre>https://dl-ssl.google.com/android/eclipse/</pre>
- <p>Note: If you have trouble acquiring the plugin, try using "http" in the Location URL,
- instead of "https" (https is preferred for security reasons).</p>
- <p>Click <strong>OK</strong>.</p></li>
- <li>In the Available Software dialog, select
-the checkbox next to Developer Tools and click <strong>Next</strong>.</li>
+ </li>
+ <li>Click <strong>OK</strong>
+ <p>Note: If you have trouble acquiring the plugin, try using "http" in the Location URL,
+instead of "https" (https is preferred for security reasons).</p></li>
+ <li>In the Available Software dialog, select the checkbox next to Developer Tools and click
+<strong>Next</strong>.</li>
<li>In the next window, you'll see a list of the tools to be downloaded. Click
<strong>Next</strong>. </li>
- <li>Read and accept the license agreements, then click <strong>Finish</strong>.</li>
+ <li>Read and accept the license agreements, then click <strong>Finish</strong>.
+ <p>Note: If you get a security warning saying that the authenticity or validity of
+the software can't be established, click <strong>OK</strong>.</p></li>
<li>When the installation completes, restart Eclipse. </li>
</ol>
<h3 id="configuring">Configuring the ADT Plugin</h3>
-<p>Once you've successfully downloaded ADT as described above, the next step
+<p>After you've successfully downloaded the ADT as described above, the next step
is to modify your ADT preferences in Eclipse to point to the Android SDK directory:</p>
<ol>
<li>Select <strong>Window</strong> > <strong>Preferences...</strong> to open the Preferences
panel (Mac OS X: <strong>Eclipse</strong> > <strong>Preferences</strong>).</li>
- <li>Select <strong>Android</strong> from the left panel. </li>
+ <li>Select <strong>Android</strong> from the left panel.</li>
+ <p>You may see a dialog asking whether you want to send usage statistics to Google. If so,
+make your choice and click <strong>Proceed</strong>. You cannot continue with this procedure until
+you click <strong>Proceed</strong>.</p>
<li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and
locate your downloaded SDK directory. </li>
<li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
<h4>Updating?</h4>
-<p>If you already have an Android SDK, use the <em>Android SDK and AVD Manager</em> tool to install
+<p>If you already have an Android SDK, use the Android SDK and AVD Manager tool to install
updated tools and new Android platforms into your existing environment. For information about how to
-do that, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></p>
+do that, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>.</p>
<h2 id="Preparing">Step 1. Preparing Your Development Computer</h2>
<p>Make a note of the name and location of the SDK directory on your system—you will need to
refer to the SDK directory later, when setting up the ADT plugin and when using
-the SDK tools from command line.</p>
+the SDK tools from the command line.</p>
<h2 id="InstallingADT">Step 3. Installing the ADT Plugin for Eclipse</h2>
last step in setting up your Android SDK.</p>
<p>If you prefer to work in a different IDE, you do not need to
-install Eclipse or ADT, instead, you can directly use the SDK tools to build and
-debug your application. The <a href="{@docRoot}guide/developing/index.html">Overview</a>
-section of the developer guide outlines the major steps that you need to complete
-when developing in Eclipse or other IDEs.</p>
+install Eclipse or ADT. Instead, you can directly use the SDK tools to build and
+debug your application. The <a href="{@docRoot}guide/developing/index.html">Introduction</a>
+to Android application development outlines the major steps that you need to complete when
+developing in Eclipse or other IDEs.</p>
<h2 id="AddingComponents">Step 4. Adding Platforms and Other Components</h2>
-<p>The last step in setting up your SDK is using the <em>Android SDK and AVD Manager</em> (a
-tool included in the SDK starter package) to download
-essential SDK components into your development environment.</p>
+<p>The last step in setting up your SDK is using the Android SDK and AVD Manager (a
+tool included in the SDK starter package) to download essential SDK components into your development
+environment.</p>
<p>The SDK uses a modular structure that separates the major parts of the SDK—Android platform
versions, add-ons, tools, samples, and documentation—into a set of separately installable
components. The SDK starter package, which you've already downloaded, includes only a single
-component: the latest version of the SDK Tools. To develop an Android
-application, you also need to download at least one Android platform and the SDK Platform-tools
-(tools that the latest platform depend upon). However, downloading
-additional components is highly recommended.</p>
+component: the latest version of the SDK Tools. To develop an Android application, you also need to
+download at least one Android platform and the associated platform tools. You can add other
+components and platforms as well, which is highly recommended.</p>
<p>If you used the Windows installer, when you complete the installation wizard, it will launch the
Android SDK and AVD Manager with a default set of platforms and other components selected
</ul>
<p>To download components, use the graphical UI of the Android SDK and AVD
-Manager, shown in Figure 1, to browse the SDK repository and select new or updated
-components. The Android SDK and AVD Manager will install the selected components in
-your SDK environment. For information about which components you should download, see the following
-section about <a href="#which">Recommended Components</a>.</p>
+Manager to browse the SDK repository and select new or updated
+components (see figure 1). The Android SDK and AVD Manager installs the selected components in
+your SDK environment. For information about which components you should download, see <a
+href="#which">Recommended Components</a>.</p>
<img src="/images/sdk_manager_packages.png" />
<p class="img-caption"><strong>Figure 1.</strong> The Android SDK and AVD Manager's
<p>The <em>Android Repository</em> offers these types of components:</p>
<ul>
-<li><strong>SDK Tools</strong> (pre-installed in the Android SDK starter
-package) — Contains tools for debugging
-and testing your application and other utility tools. You can access these
-in the <code><sdk>/tools/</code> directory of your SDK and read more about them in the <a
-href="{@docRoot}guide/developing/tools/index.html">Tools</a> section of the developer guide. </li>
-
-<li><strong>SDK Platform-tools</strong> — Contains tools that are required to develop and
-debug your application, but which are developed alongside the Android platform in order to support
-the latest features. These tools are typically updated only when a new platform becomes
-available. You can access these
-in the <code><sdk>/platform-tools/</code> directory. Read more about them in
-the <a href="{@docRoot}guide/developing/tools/index.html">Tools</a> section of the developer guide.
-</li>
+<li><strong>SDK Tools</strong> — Contains tools for debugging and testing your application
+and other utility tools. These tools are installed with the Android SDK starter package and receive
+periodic updates. You can access these tools in the <code><sdk>/tools/</code> directory of
+your SDK. To learn more about
+them, see <a href="{@docRoot}guide/developing/tools/index.html#tools-sdk">SDK Tools</a> in the
+developer guide.</li>
+
+<li><strong>SDK Platform-tools</strong> — Contains platform-dependent tools for developing
+and debugging your application. These tools support the latest features of the Android platform and
+are typically updated only when a new platform becomes available. You can access these tools in the
+<code><sdk>/platform-tools/</code> directory. To learn more about them, see <a
+href="{@docRoot}guide/developing/tools/index.html#tools-platform">Platform Tools</a> in the
+developer guide.</li>
<li><strong>Android platforms</strong> — An SDK platform is
-available for every production Android platform deployable to Android-powered
-devices. Each platform component includes a fully compliant Android library and
-system image, sample code, emulator skins, and any version specific tools. For
-detailed information about each platform, see the overview documents available
-under the section "Downloadable SDK Components," at left. </li>
+available for every production Android platform deployable to Android-powered devices. Each
+SDK platform component includes a fully compliant Android library, system image, sample code,
+and emulator skins. To learn more about a specific platform, see the list of platforms that appears
+under the section "Downloadable SDK Components" on the left part of this page.</li>
<li><strong>USB Driver for Windows</strong> (Windows only) — Contains driver files
that you can install on your Windows computer, so that you can run and debug
your applications on an actual device. You <em>do not</em> need the USB driver unless
you plan to debug your application on an actual Android-powered device. If you
develop on Mac OS X or Linux, you do not need a special driver to debug
-your application on an Android-powered device. (See <a
-href="{@docRoot}guide/developing/device.html">Developing on a Device</a> for more information
-about developing on a real device.)</li>
+your application on an Android-powered device. See <a
+href="{@docRoot}guide/developing/device.html">Using Hardware Devices</a> for more information
+about developing on a real device.</li>
<li><strong>Samples</strong> — Contains the sample code and apps available
for each Android development platform. If you are just getting started with
<p>The <em>Third party Add-ons</em> provide components that allow you to create a development
environment using a specific Android external library (such as the Google Maps library) or a
-customized (but fully compliant) Android system image. You can add additional Add-on repositories,
-by clicking <strong>Add Add-on Site</strong>.</p>
+customized (but fully compliant) Android system image. You can add additional Add-on repositories by
+clicking <strong>Add Add-on Site</strong>.</p>
<h3 id="which">Recommended Components</h3>
</tr>
<tr>
<td colspan="3"><code>platform-tools/</code></td>
-<td>Contains development tools that may be updated with each platform release (from the <em>Android
-SDK Platform-tools</em> component). Tools in here include {@code adb}, {@code dexdump}, and others
-others that you don't typically use directly. These tools are separate from the generic development
-tools in the {@code tools/} directory, because these tools may be updated in order to support new
-features in the latest Android platform, whereas the other tools have no dependencies on the
-platform version.</td>
+<td>Contains platform-dependent development tools that may be updated with each platform release.
+The platform tools include the Android Debug Bridge ({@code adb}) as well as other tools that you
+don't typically use directly. These tools are separate from the development tools in the {@code
+tools/} directory because these tools may be updated in order to support new
+features in the latest Android platform.</td>
</tr>
<tr>
<td colspan="3"><code>platforms/</code></td>
applications against, each in a separate directory. </td>
</tr>
<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td colspan="2"><code><em><platform></em>/</code></td>
-<td>Platform version directory, for example "android-1.6". All platform version
-directories contain a similar set of files and subdirectory structure.</td>
-</tr>
-
-<tr>
-<td style="width:2em;border-bottom-color:white;"> </td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>data/</code></td>
-<td>Storage area for default fonts and resource definitions.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>images/</code></td>
-<td>Storage area for default disk images, including the Android system image,
-the default userdata image, the default ramdisk image, and more. The images
-are used in emulator sessions.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>skins/</code></td>
-<td>A set of emulator skins available for the platform version. Each skin is
-designed for a specific screen resolution.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>templates/</code></td>
-<td>Storage area for file templates used by the SDK development tools.</td>
-</tr>
-<tr>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td style="width:2em;border-bottom-color:white;"></td>
-<td><code>tools/</code></td>
-<td>This directory is used only by SDK Tools r7 and below for development tools that are specific to
-this platform version—it's not used by SDK Tools r8 and above.</td>
-</tr>
-<tr>
-<td style="width:2em;"></td>
<td style="width:2em;"></td>
-<td><code>android.jar</code></td>
-<td>The Android library used when compiling applications against this platform
-version.</td>
+<td colspan="2"><code><em><platform></em>/</code></td>
+<td>Platform version directory, for example "android-11". All platform version directories contain
+a similar set of files and subdirectory structure. Each platform directory also includes the
+Android library (<code>android.jar</code>) that is used to compile applications against the
+platform version.</td>
</tr>
<tr>
<td colspan="3"><code>samples/</code></td>
<tr>
<td colspan="3"><code>tools/</code></td>
<td>Contains the set of development and profiling tools that are platform-independent, such
-as the emulator, the AVD and SDK Manager, ddms, hierarchyviewer and more. The tools in
-this directory may be updated at any time (from the <em>Android SDK Tools</em> component),
-independent of platform releases, whereas the tools in {@code platform-tools/} may be updated based
-on the latest platform release.</td>
+as the emulator, the Android SDK and AVD Manager, <code>ddms</code>, <code>hierarchyviewer</code>
+and more. The tools in this directory may be updated at any time using the Android SDK and AVD
+Manager and are independent of platform releases.</td>
</tr>
<tr>
<td colspan="3"><code>SDK Readme.txt</code></td>
<td>A file that explains how to perform the initial setup of your SDK,
including how to launch the Android SDK and AVD Manager tool on all
-platforms</td>
+platforms.</td>
</tr>
<tr>
<td colspan="3"><code>SDK Manager.exe</code></td>
<td>Windows SDK only. A shortcut that launches the Android SDK and AVD
-Manager tool, which you use to add components to your SDK. </td>
+Manager tool, which you use to add components to your SDK.</td>
</tr>
<!--<tr>
<td colspan="3"><code>documentation.html</code></td>
<li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
for a line that sets the PATH environment variable and add the
- full path to the <code>tools/</code> and <code>platform-tools</code> directories to it. If you
+ full path to the <code>tools/</code> and <code>platform-tools/</code> directories to it. If you
don't see a line setting the path, you can add one:
<pre>export PATH=${PATH}:<sdk>/tools:<sdk>/platform-tools</pre>
</li>
<p><strong>Learn about Android</strong></p>
<ul>
<li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
- Guide</a> and the types of information it provides</li>
+ Guide</a> and the types of information it provides.</li>
<li>Read an introduction to Android as a platform in <a
href="{@docRoot}guide/basics/what-is-android.html">What is
Android?</a></li>
<li>Learn about the Android framework and how applications run on it in
<a href="{@docRoot}guide/topics/fundamentals.html">Application
- Fundamentals</a></li>
+ Fundamentals</a>.</li>
<li>Take a look at the Android framework API specification in the <a
- href="{@docRoot}reference/packages.html">Reference</a> tab</li>
+ href="{@docRoot}reference/packages.html">Reference</a> tab.</li>
</ul>
<p><strong>Explore the development tools</strong></p>
<ul>
<li>Get an overview of the <a
href="{@docRoot}guide/developing/tools/index.html">development
- tools</a> that are available to you</li>
- <li>Read the <a
- href="{@docRoot}guide/developing/index.html">Overview</a>
- for how to develop an Android application.
+ tools</a> that are available to you.</li>
+ <li>Read the <a href="{@docRoot}guide/developing/index.html">Introduction</a> to Android
+application development.
</li>
- <li>Read <a href="{@docRoot}guide/developing/device.html">Developing on a Device</a> to set up an
-Android-powered device to run and test your application.</li>
+ <li>Read <a href="{@docRoot}guide/developing/device.html">Using Hardware Devices</a> to learn
+how to set up an Android-powered device so you can run and test your application.</li>
</ul>
<p><strong>Follow the Notepad tutorial</strong></p>