page.title=Installing the SDK

@jd:body


<script type="text/javascript">
function toggleDiv(link) {
  var toggleable = $(link).parent();
  if (toggleable.hasClass("closed")) {
    //$(".toggleme", toggleable).slideDown("fast");
    toggleable.removeClass("closed");
    toggleable.addClass("open");
    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot +
"assets/images/triangle-opened.png"));
  } else {
    //$(".toggleme", toggleable).slideUp("fast");
    toggleable.removeClass("open");
    toggleable.addClass("closed");
    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot +
"assets/images/triangle-closed.png"));
  }
  return false;
}
</script>
<style>
.toggleable {
  padding: .25em 1em 0em 1em;
  margin-bottom: 0;
}
.toggleme {
  padding: 1em 1em 0 2em;
  line-height:1em;
}
.toggleable a {
  text-decoration:none;
}
.toggleme a {
  text-decoration:underline;
}
.toggleable.closed .toggleme {
  display:none;
}
#jd-content .toggle-img {
  margin:0;
}
</style>

<div id="qv-wrapper">
<div id="qv">

  <h2>In this document</h2>
  <ol>
    <li><a href="#Preparing">1. Preparing Your Development Computer</a></li>
    <li><a href="#Installing">2. Downloading the SDK Starter Package</a></li>
    <li><a href="#InstallingADT">3. Installing the ADT Plugin for Eclipse</a></li>
    <li><a href="#AddingComponents">4. Adding Platforms and Other Packages</a>
      <ol>
        <li><a href="#components">Available Packages</a></li>
        <li><a href="#which">Recommended Packages</a></li>
      </ol></li>
    <li><a href="#sdkContents">5. Exploring the SDK (Optional)</a></li>
    <li><a href="#NextSteps">Next Steps</a></li>
    <li><a href="#troubleshooting">Troubleshooting</a></li>
  </ol>

<h2>See also</h2>
  <ol>
    <li><a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a></li>
    <li><a href="{@docRoot}sdk/exploring.html">Exploring the SDK</a></li>
  </ol>

</div>
</div>

<p>This page describes how to install the Android SDK
and set up your development environment for the first time.</p>

<p>If you encounter any problems during installation, see the
<a href="#troubleshooting">Troubleshooting</a> section at the bottom of
this page.</p>

<h4>Updating?</h4>

<p>If you already have an Android SDK, use the Android SDK 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/exploring.html">Exploring the SDK</a>.</p>


<h2 id="Preparing">Step 1. Preparing Your Development Computer</h2>

<p>Before getting started with the Android SDK, take a moment to confirm that
your development computer meets the <a href="requirements.html">System
Requirements</a>. In particular, you might need to install the <a
href="http://java.sun.com/javase/downloads/index.jsp">JDK</a>, if you don't have it already. </p>

<p>If you will be developing in Eclipse with the Android Development
Tools (ADT) Plugin&mdash;the recommended path if you are new to
Android&mdash;make sure that you have a suitable version of Eclipse
installed on your computer as described in the
<a href="requirements.html">System Requirements</a> document.
If you need to install Eclipse, you can download it from this location: </p>

<p style="margin-left:2em;"><a href=
"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p>

<p>The "Eclipse Classic" version is recommended. Otherwise, a Java or
RCP version of Eclipse is recommended.</p>


<h2 id="Installing">Step 2. Downloading the SDK Starter Package</h2>

<p>The SDK starter package is not a full
development environment&mdash;it includes only the core SDK Tools, which you can
use to download the rest of the SDK packages (such as the latest Android platform).</p>

<p>If you haven't already, get the latest version of the SDK starter package from the <a
href="{@docRoot}sdk/index.html">SDK download page</a>.</p>

<p>If you downloaded a {@code .zip} or {@code .tgz} package (instead of the SDK installer), unpack
it to a safe location on your machine. By default, the SDK files are unpacked
into a directory named <code>android-sdk-&lt;machine-platform&gt;</code>.</p>

<p>If you downloaded the Windows installer ({@code .exe} file), run it now and it will check
whether the proper Java SE Development Kit (JDK) is installed (installing it, if necessary), then
install the SDK Tools into a default location (which you can modify).</p>

<p>Make a note of the name and location of the SDK directory on your system&mdash;you will need to
refer to the SDK directory later, when setting up the ADT plugin and when using
the SDK tools from the command line.</p>


<h2 id="InstallingADT">Step 3. Installing the ADT Plugin for Eclipse</h2>

<p>Android offers a custom plugin for the Eclipse IDE, called Android
Development Tools (ADT), that is designed to give you a powerful, integrated
environment in which to build Android applications. It extends the capabilites
of Eclipse to let you quickly set up new Android projects, create an application
UI, debug your applications
using the Android SDK tools, and even export signed (or unsigned) APKs in order
to distribute your application. In general, developing in Eclipse with ADT is a
highly recommended approach and is the fastest way to get started with Android.
</p>

<p>If you'd like to use ADT for developing Android applications, install it now.
Read <a href="{@docRoot}tools/sdk/eclipse-adt.html#installing">Installing the ADT Plugin</a> for
step-by-step installation instructions, then return here to continue the
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}tools/workflow/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 Packages</h2>

<p>The last step in setting up your SDK is using the Android SDK Manager (a
tool included in the SDK starter package) to download essential SDK packages into your development
environment.</p>

<p>The SDK uses a modular structure that separates the major parts of the SDK&mdash;Android platform
versions, add-ons, tools, samples, and documentation&mdash;into a set of separately installable
packages. The SDK starter package, which you've already downloaded, includes only a single
package: 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
packages 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 Manager with a default set of platforms and other packages selected
for you to install. Simply click <strong>Install</strong> to accept the recommended set of
packages and install them. You can then skip to <a href="#sdkContents">Step 5</a>, but we
recommend you first read the section about the <a href="#components">Available Packages</a> to
better understand the packages available from the Android SDK Manager.</p>

<p>You can launch the Android SDK Manager in one of the following ways:</p>
<ul>
  <li>From within Eclipse, select <strong>Window &gt; Android SDK Manager</strong>.</li>
  <li>On Windows, double-click the <code>SDK Manager.exe</code> file at the root of the Android
SDK directory.</li>
  <li>On Mac or Linux, open a terminal and navigate to the <code>tools/</code> directory in the
Android SDK, then execute: <pre>android</pre> </li>
</ul>

<p>To download packages, use the graphical UI of the Android SDK
Manager to browse the SDK repository and select new or updated
packages (see figure 1). The Android SDK Manager installs the selected packages in
your SDK environment. For information about which packages you should download, see <a
href="#which">Recommended Packages</a>.</p>

<img src="/images/sdk_manager_packages.png" />
<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager's
<strong>Available Packages</strong> panel, which shows the SDK packages that are
available for you to download into your environment.</p>


<h3 id="components">Available Packages</h3>

<p>By default, there are two repositories of packages for your SDK: <em>Android
Repository</em> and <em>Third party Add-ons</em>.</p>

<p>The <em>Android Repository</em> offers these types of packages:</p>

<ul>
<li><strong>SDK Tools</strong> &mdash; 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>&lt;sdk&gt;/tools/</code> directory of
your SDK. To learn more about
them, see <a href="{@docRoot}tools/index.html#tools-sdk">SDK Tools</a> in the
developer guide.</li>

<li><strong>SDK Platform-tools</strong> &mdash; 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>&lt;sdk&gt;/platform-tools/</code> directory. To learn more about them, see <a
href="{@docRoot}tools/index.html#tools-platform">Platform Tools</a> in the
developer guide.</li>

<li><strong>Android platforms</strong> &mdash; An SDK platform is
available for every production Android platform deployable to Android-powered devices. Each
SDK platform package 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 Packages" on the left part of this page.</li>

<li><strong>USB Driver for Windows</strong> (Windows only) &mdash; 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}tools/device.html">Using Hardware Devices</a> for more information
about developing on a real device.</li>

<li><strong>Samples</strong> &mdash; Contains the sample code and apps available
for each Android development platform. If you are just getting started with
Android development, make sure to download the samples to your SDK. <!--The download
includes not only a set of very useful sample apps, but also the source for <a
href="{@docRoot}training/basics/firstapp/index.html">Building Your First App</a> and other
tutorials. --></li>

<li><strong>Documentation</strong> &mdash; Contains a local copy of the latest
multiversion documentation for the Android framework API. </li>
</ul>

<p>The <em>Third party Add-ons</em> provide packages 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>


<h3 id="which">Recommended Packages</h3>

<p>The SDK repository contains a range of packages that you can download.
Use the table below to determine which packages you need, based on whether you
want to set up a basic, recommended, or full development environment:
</p>

<table style="width:95%">

<tr>
<th>Environment</th>
<th>SDK&nbsp;Package</th>
<th>Comments</th>
</tr>

<tr>
<td rowspan="3" style="font-size:.9em;background-color:#FFE;">Basic</td>
<td style="font-size:.9em;background-color:#FFE;">SDK Tools</td>
<td style="font-size:.9em;background-color:#FFE;">If you've just installed
the SDK starter package, then you already have the latest version of this package. The
SDK Tools package is required to develop an Android application. Make sure you keep this up to
date.</td>
</tr>

<tr>
<td style="font-size:.9em;background-color:#FFE;">SDK Platform-tools</td>
<td style="font-size:.9em;background-color:#FFE;">This includes more tools that are required
for application development. These tools are platform-dependent and typically update only when
a new SDK platform is made available, in order to support new features in the platform. These
tools are always backward compatible with older platforms, but you must be sure that you have
the latest version of these tools when you install a new SDK platform.</td>
</tr>

<tr>
<td style="font-size:.9em;background-color:#FFE;">SDK platform</td>
<td style="font-size:.9em;background-color:#FFE;">You need to download <strong
style="color:red">at least one platform</strong> into your environment, so that
you will be able to compile your application and set up an Android Virtual
Device (AVD) to run it on (in the emulator). To start with, just download the
latest version of the platform. Later, if you plan to publish your application,
you will want to download other platforms as well, so that you can test your
application on the full range of Android platform versions that your application supports.</td>
</tr>
<tr>
<td colspan="2"
style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td
style="border:none"></td>
</tr>
<tr>
<td rowspan="3">Recommended<br/>(plus Basic)</td>
<td>Documentation</td>
<td>The Documentation package is useful because it lets you work offline and
also look up API reference information from inside Eclipse.</td>
</tr>

<tr>
<td>Samples</td>
<td>The Samples packages give you source code that you can use to learn about
Android, load as a project and run, or reuse in your own app. Note that multiple
samples packages are available &mdash; one for each Android platform version. When
you are choosing a samples package to download, select the one whose API Level
matches the API Level of the Android platform that you plan to use.</td>
</tr>
<tr>
<td>Usb Driver</td>
<td>The Usb Driver package is needed only if you are developing on Windows and
have an Android-powered device on which you want to install your application for
debugging and testing. For Mac OS X and Linux platforms, no
special driver is needed.</td>
</tr>
<tr>
<td colspan="2"
style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td
style="border:none"></td>
</tr>
<tr>
<td rowspan="3">Full<br/>(plus Recommended)</td>
<td>Google APIs</td>
<td>The Google APIs add-on gives your application access to the Maps external
library, which makes it easy to display and manipulate Maps data in your
application. </td>
</tr>
<tr>
<td>Additional SDK Platforms</td>
<td>If you plan to publish your application, you will want to download
additional platforms corresponding to the Android platform versions on which you
want the application to run. The recommended approach is to compile your
application against the lowest version you want to support, but test it against
higher versions that you intend the application to run on. You can test your
applications on different platforms by running in an Android Virtual Device
(AVD) on the Android emulator.</td>
</tr>

</table>

<p>Once you've installed at least the basic configuration of SDK packages, you're ready to start
developing Android apps. The next section describes the contents of the Android SDK to familiarize
you with the packages you've just installed.</p>

<p>For more information about using the Android SDK Manager, see the <a
href="{@docRoot}sdk/exploring.html">Exploring the SDK</a> document. </p>


<h2 id="sdkContents">Step 5. Exploring the SDK (Optional)</h2>

<p>Once you've installed the SDK and downloaded the platforms, documentation,
and add-ons that you need, we suggest that you open the SDK directory and take a look at what's
inside.</p>

<p>The table below describes the full SDK directory contents, with packages
installed. </p>

<table>
<tr>
<th colspan="3">Name</th><th>Description</th>
</tr>
<tr>
<td colspan="3"><code>add-ons/</code></td>
<td>Contains add-ons to the Android SDK development
environment, which let you develop against external libraries that are available on some
devices. </td>
</tr>
<tr>
<td colspan="3"><code>docs/</code></td>
<td>A full set of documentation in HTML format, including the Developer's Guide,
API Reference, and other information. To read the documentation, load the
file <code>offline.html</code> in a web browser.</td>
</tr>
<tr>
<td colspan="3"><code>platform-tools/</code></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>
<td>Contains a set of Android platform versions that you can develop
applications against, each in a separate directory.  </td>
</tr>
<tr>
<td style="width:2em;"></td>
<td colspan="2"><code><em>&lt;platform&gt;</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>
<td>Sample code and apps that are specific to platform version.</td>
</tr>
<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 Android SDK Manager, the 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
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 Manager tool on all
platforms.</td>
</tr>
<tr>
<td colspan="3"><code>SDK Manager.exe</code></td>
<td>Windows SDK only. A shortcut that launches the Android SDK
Manager tool, which you use to add packages to your SDK.</td>
</tr>
<!--<tr>
<td colspan="3"><code>documentation.html</code></td>
<td>A file that loads the entry page for the local Android SDK
documentation.</td>
</tr>-->

</table>


<p>Optionally, you might want to add the location of the SDK's <code>tools/</code> and
<code>platform-tools</code> to your <code>PATH</code> environment variable, to provide easy
access to the tools.</p>


<div class="toggleable closed">
  <a href="#" onclick="return toggleDiv(this)">
        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
width="9px" />
        How to update your PATH</a>
  <div class="toggleme">

<p>Adding both <code>tools/</code> and <code>platform-tools/</code> to your PATH lets you run
command line <a href="{@docRoot}tools/index.html">tools</a> without needing to
supply the full path to the tool directories. Depending on your operating system, you can
include these directories in your PATH in the following way:</p>

<ul>

  <li>On Windows, right-click on My Computer, and select Properties.
  Under the Advanced tab, hit the Environment Variables button, and in the
  dialog that comes up, double-click on Path (under System Variables). Add the full path to the
  <code>tools/</code> and <code>platform-tools/</code> directories to the path. </li>

  <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
  don't see a line setting the path, you can add one:
  <pre>export PATH=${PATH}:&lt;sdk&gt;/tools:&lt;sdk&gt;/platform-tools</pre>
  </li>

  <li>On a Mac OS X, look in your home directory for <code>.bash_profile</code> and
  proceed as for Linux. You can create the <code>.bash_profile</code> if
  you don't already have one. </li>
</ul>

</div><!-- end toggleme -->
</div><!-- end toggleable -->


<h2 id="NextSteps">Next Steps</h2>
<p>Once you have completed installation, you are ready to
begin developing applications. Here are a few ways you can get started: </p>

<p><strong>Set up the Hello World application</strong></p>
<ul>
  <li>If you have just installed the SDK for the first time, go to the <a
  href="{@docRoot}training/basics/firstapp/index.html">Hello
  World tutorial</a>. The tutorial takes you step-by-step through the process
  of setting up your first Android project, including setting up an Android
  Virtual Device (AVD) on which to run the application.
</li>
</ul>

<p class="note">Following the Hello World tutorial is an essential
first step in getting started with Android development. </p>

<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>
  <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/components/fundamentals.html">Application
  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>
</ul>

<p><strong>Explore the development tools</strong></p>
<ul>
  <li>Get an overview of the <a
  href="{@docRoot}tools/index.html">development
  tools</a> that are available to you.</li>
  <li>Read the <a href="{@docRoot}tools/workflow/index.html">Introduction</a> to Android
application development.
  </li>
  <li>Read <a href="{@docRoot}tools/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>

<ul>
  <li>The <a href="{@docRoot}training/notepad/index.html">
  Notepad Tutorial</a> shows you how to build a full Android application
  and provides  helpful commentary on the Android system and API. The
  Notepad tutorial helps you bring together the important design
  and architectural concepts in a moderately complex application.
  </li>
</ul>
<p class="note">Following the Notepad tutorial is an excellent
second step in getting started with Android development. </p>

<p><strong>Explore some code</strong></p>

<ul>
  <li>The Android SDK includes sample code and applications for each platform
version. You can browse the samples in the <a
href="{@docRoot}resources/index.html">Resources</a> tab or download them
into your SDK using the Android SDK Manager. Once you've downloaded the
samples, you'll find them in
<code><em>&lt;sdk&gt;</em>/samples/<em>&lt;platform&gt;/</em></code>. </li>
</ul>

<p><strong>Visit the Android developer groups</strong></p>
<ul>
  <li>Take a look at the <a
  href="{@docRoot}resources/community-groups.html">Community</a> pages to see a list of
  Android developers groups. In particular, you might want to look at the
  <a href="http://groups.google.com/group/android-developers">Android
  Developers</a> group to get a sense for what the Android developer
  community is like.</li>
</ul>

<h2 id="troubleshooting">Troubleshooting</h2>

<h3>Ubuntu Linux Notes</h3>

<ul>
  <li>If you need help installing and configuring Java on your
    development machine, you might find these resources helpful:
    <ul>
      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
      <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
    </ul>
  </li>
  <li>Here are the steps to install Java and Eclipse, prior to installing
  the Android SDK and ADT Plugin.
    <ol>
      <li>If you are running a 64-bit distribution on your development
      machine, you need to install the <code>ia32-libs</code> package using
      <code>apt-get:</code>:
      <pre>apt-get install ia32-libs</pre>
      </li>
      <li>Next, install Java: <pre>apt-get install sun-java6-jdk</pre></li>
      <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
      version for download, so we recommend that you download Eclipse from
      eclipse.org (<a
      href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
      downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
      <li>Follow the steps given in previous sections to install the SDK
      and the ADT plugin. </li>
    </ol>
  </li>
</ul>

<h3>Other Linux Notes</h3>

<ul>
  <li>If JDK is already installed on your development computer, please
  take a moment to make sure that it meets the version requirements listed
  in the <a href="requirements.html">System Requirements</a>.
  In particular, note that some Linux distributions may include JDK 1.4 or Gnu
  Compiler for Java, both of which are not supported for Android development.</li>
</ul>