1 page.title=Installing the SDK
6 <script type="text/javascript">
7 function toggleDiv(link) {
8 var toggleable = $(link).parent();
9 if (toggleable.hasClass("closed")) {
10 //$(".toggleme", toggleable).slideDown("fast");
11 toggleable.removeClass("closed");
12 toggleable.addClass("open");
13 $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot +
14 "assets/images/triangle-opened.png"));
16 //$(".toggleme", toggleable).slideUp("fast");
17 toggleable.removeClass("open");
18 toggleable.addClass("closed");
19 $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot +
20 "assets/images/triangle-closed.png"));
27 padding: .25em 1em 0em 1em;
31 padding: 1em 1em 0 2em;
38 text-decoration:underline;
40 .toggleable.closed .toggleme {
43 #jd-content .toggle-img {
51 <h2>In this document</h2>
53 <li><a href="#Preparing">1. Preparing Your Development Computer</a></li>
54 <li><a href="#Installing">2. Downloading the SDK Starter Package</a></li>
55 <li><a href="#InstallingADT">3. Installing the ADT Plugin for Eclipse</a></li>
56 <li><a href="#AddingComponents">4. Adding Platforms and Other Components</a>
58 <li><a href="#components">Available Components</a></li>
59 <li><a href="#which">Recommended Components</a></li>
61 <li><a href="#sdkContents">5. Exploring the SDK (Optional)</a></li>
62 <li><a href="#NextSteps">Next Steps</a></li>
63 <li><a href="#troubleshooting">Troubleshooting</a></li>
68 <li><a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a></li>
69 <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li>
75 <p>This page describes how to install the Android SDK
76 and set up your development environment for the first time.</p>
78 <p>If you encounter any problems during installation, see the
79 <a href="#troubleshooting">Troubleshooting</a> section at the bottom of
84 <p>If you already have an Android SDK, use the <em>Android SDK and AVD Manager</em> tool to install
85 updated tools and new Android platforms into your existing environment. For information about how to
86 do that, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></p>
89 <h2 id="Preparing">Step 1. Preparing Your Development Computer</h2>
91 <p>Before getting started with the Android SDK, take a moment to confirm that
92 your development computer meets the <a href="requirements.html">System
93 Requirements</a>. In particular, you might need to install the <a
94 href="http://java.sun.com/javase/downloads/index.jsp">JDK</a>, if you don't have it already. </p>
96 <p>If you will be developing in Eclipse with the Android Development
97 Tools (ADT) Plugin—the recommended path if you are new to
98 Android—make sure that you have a suitable version of Eclipse
99 installed on your computer (3.4 or newer is recommended). If you need
100 to install Eclipse, you can download it from this location: </p>
102 <p style="margin-left:2em;"><a href=
103 "http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p>
105 <p>For Eclipse 3.5 or newer, the "Eclipse Classic" version is recommended. Otherwise, a Java or
106 RCP version of Eclipse is recommended.</p>
109 <h2 id="Installing">Step 2. Downloading the SDK Starter Package</h2>
111 <p>The SDK starter package is not a full
112 development environment—it includes only the core SDK Tools, which you can
113 use to download the rest of the SDK components (such as the latest Android platform).</p>
115 <p>If you haven't already, get the latest version of the SDK starter package from the <a
116 href="{@docRoot}sdk/index.html">SDK download page</a>.</p>
118 <p>If you downloaded a {@code .zip} or {@code .tgz} package (instead of the SDK installer), unpack
119 it to a safe location on your machine. By default, the SDK files are unpacked
120 into a directory named <code>android-sdk-<machine-platform></code>.</p>
122 <p>If you downloaded the Windows installer ({@code .exe} file), run it now and it will check
123 whether the proper Java SE Development Kit (JDK) is installed (installing it, if necessary), then
124 install the SDK Tools into a default location (which you can modify).</p>
126 <p>Make a note of the name and location of the SDK directory on your system—you will need to
127 refer to the SDK directory later, when setting up the ADT plugin and when using
128 the SDK tools from command line.</p>
131 <h2 id="InstallingADT">Step 3. Installing the ADT Plugin for Eclipse</h2>
133 <p>Android offers a custom plugin for the Eclipse IDE, called Android
134 Development Tools (ADT), that is designed to give you a powerful, integrated
135 environment in which to build Android applications. It extends the capabilites
136 of Eclipse to let you quickly set up new Android projects, create an application
137 UI, debug your applications
138 using the Android SDK tools, and even export signed (or unsigned) APKs in order
139 to distribute your application. In general, developing in Eclipse with ADT is a
140 highly recommended approach and is the fastest way to get started with Android.
143 <p>If you'd like to use ADT for developing Android applications, install it now.
144 Read <a href="{@docRoot}sdk/eclipse-adt.html#installing">Installing the ADT Plugin</a> for
145 step-by-step installation instructions, then return here to continue the
146 last step in setting up your Android SDK.</p>
148 <p>If you prefer to work in a different IDE, you do not need to
149 install Eclipse or ADT, instead, you can directly use the SDK tools to build and
150 debug your application. The developer guide has more information about <a
151 href="{@docRoot}guide/developing/other-ide.html">Developing in Other IDEs</a>.</p>
155 <h2 id="AddingComponents">Step 4. Adding Platforms and Other Components</h2>
157 <p>The last step in setting up your SDK is using the <em>Android SDK and AVD Manager</em> (a
158 tool included in the SDK starter package) to download
159 essential SDK components into your development environment.</p>
161 <p>The SDK uses a modular structure that separates the major parts of the SDK—Android platform
162 versions, add-ons, tools, samples, and documentation—into a set of separately installable
163 components. The SDK starter package, which you've already downloaded, includes only a single
164 component: the latest version of the SDK Tools. To develop an Android
165 application, you also need to download at least one Android platform and the SDK Platform-tools
166 (tools that the latest platform depend upon). However, downloading
167 additional components is highly recommended.</p>
169 <p>If you used the Windows installer, when you complete the installation wizard, it will launch the
170 Android SDK and AVD Manager with a default set of platforms and other components selected
171 for you to install. Simply click <strong>Install</strong> to accept the recommended set of
172 components and install them. You can then skip to <a href="#sdkContents">Step 5</a>, but we
173 recommend you first read the section about the <a href="#components">Available Components</a> to
174 better understand the components available from the Android SDK and AVD Manager.</p>
176 <p>You can launch the Android SDK and AVD Manager in one of the following ways:</p>
178 <li>From within Eclipse, select <strong>Window > Android SDK and AVD Manager</strong>.</li>
179 <li>On Windows, double-click the <code>SDK Manager.ext</code> file at the root of the Android
181 <li>On Mac or Linux, open a terminal and navigate to the <code>tools/</code> directory in the
182 Android SDK, then execute: <pre>android</pre> </li>
185 <p>To download components, use the graphical UI of the Android SDK and AVD
186 Manager, shown in Figure 1, to browse the SDK repository and select new or updated
187 components. The Android SDK and AVD Manager will install the selected components in
188 your SDK environment. For information about which components you should download, see the following
189 section about <a href="#which">Recommended Components</a>.</p>
191 <img src="/images/sdk_manager_packages.png" />
192 <p class="img-caption"><strong>Figure 1.</strong> The Android SDK and AVD Manager's
193 <strong>Available Packages</strong> panel, which shows the SDK components that are
194 available for you to download into your environment.</p>
197 <h3 id="components">Available Components</h3>
199 <p>By default, there are two repositories of components for your SDK: <em>Android
200 Repository</em> and <em>Third party Add-ons</em>.</p>
202 <p>The <em>Android Repository</em> offers these types of components:</p>
205 <li><strong>SDK Tools</strong> (pre-installed in the Android SDK starter
206 package) — Contains tools for debugging
207 and testing your application and other utility tools. You can access these
208 in the <code><sdk>/tools/</code> directory of your SDK and read more about them in the <a
209 href="{@docRoot}guide/developing/tools/index.html">Tools</a> section of the developer guide. </li>
211 <li><strong>SDK Platform-tools</strong> — Contains tools that are required to develop and
212 debug your application, but which are developed alongside the Android platform in order to support
213 the latest features. These tools are typically updated only when a new platform becomes
214 available. You can access these
215 in the <code><sdk>/platform-tools/</code> directory. Read more about them in
216 the <a href="{@docRoot}guide/developing/tools/index.html">Tools</a> section of the developer guide.
219 <li><strong>Android platforms</strong> — An SDK platform is
220 available for every production Android platform deployable to Android-powered
221 devices. Each platform component includes a fully compliant Android library and
222 system image, sample code, emulator skins, and any version specific tools. For
223 detailed information about each platform, see the overview documents available
224 under the section "Downloadable SDK Components," at left. </li>
226 <li><strong>USB Driver for Windows</strong> (Windows only) — Contains driver files
227 that you can install on your Windows computer, so that you can run and debug
228 your applications on an actual device. You <em>do not</em> need the USB driver unless
229 you plan to debug your application on an actual Android-powered device. If you
230 develop on Mac OS X or Linux, you do not need a special driver to debug
231 your application on an Android-powered device. (See <a
232 href="{@docRoot}guide/developing/device.html">Developing on a Device</a> for more information
233 about developing on a real device.)</li>
235 <li><strong>Samples</strong> — Contains the sample code and apps available
236 for each Android development platform. If you are just getting started with
237 Android development, make sure to download the samples to your SDK. <!--The download
238 includes not only a set of very useful sample apps, but also the source for <a
239 href="{@docRoot}resources/tutorials/hello-world.html">Hello World</a> and other
242 <li><strong>Documentation</strong> — Contains a local copy of the latest
243 multiversion documentation for the Android framework API. </li>
246 <p>The <em>Third party Add-ons</em> provide components that allow you to create a development
247 environment using a specific Android external library (such as the Google Maps library) or a
248 customized (but fully compliant) Android system image. You can add additional Add-on repositories,
249 by clicking <strong>Add Add-on Site</strong>.</p>
252 <h3 id="which">Recommended Components</h3>
254 <p>The SDK repository contains a range of components that you can download.
255 Use the table below to determine which components you need, based on whether you
256 want to set up a basic, recommended, or full development environment:
259 <table style="width:95%">
263 <th>SDK Component</th>
268 <td rowspan="3" style="font-size:.9em;background-color:#FFE;">Basic</td>
269 <td style="font-size:.9em;background-color:#FFE;">SDK Tools</td>
270 <td style="font-size:.9em;background-color:#FFE;">If you've just installed
271 the SDK starter package, then you already have the latest version of this component. The
272 SDK Tools component is required to develop an Android application. Make sure you keep this up to
277 <td style="font-size:.9em;background-color:#FFE;">SDK Platform-tools</td>
278 <td style="font-size:.9em;background-color:#FFE;">This includes more tools that are required
279 for application development. These tools are platform-dependent and typically update only when
280 a new SDK platform is made available, in order to support new features in the platform. These
281 tools are always backward compatible with older platforms, but you must be sure that you have
282 the latest version of these tools when you install a new SDK platform.</td>
286 <td style="font-size:.9em;background-color:#FFE;">SDK platform</td>
287 <td style="font-size:.9em;background-color:#FFE;">You need to download <strong
288 style="color:red">at least one platform</strong> into your environment, so that
289 you will be able to compile your application and set up an Android Virtual
290 Device (AVD) to run it on (in the emulator). To start with, just download the
291 latest version of the platform. Later, if you plan to publish your application,
292 you will want to download other platforms as well, so that you can test your
293 application on the full range of Android platform versions that your application supports.</td>
297 style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td
298 style="border:none"></td>
301 <td rowspan="3">Recommended<br/>(plus Basic)</td>
302 <td>Documentation</td>
303 <td>The Documentation component is useful because it lets you work offline and
304 also look up API reference information from inside Eclipse.</td>
309 <td>The Samples components give you source code that you can use to learn about
310 Android, load as a project and run, or reuse in your own app. Note that multiple
311 samples components are available — one for each Android platform version. When
312 you are choosing a samples component to download, select the one whose API Level
313 matches the API Level of the Android platform that you plan to use.</td>
317 <td>The Usb Driver component is needed only if you are developing on Windows and
318 have an Android-powered device on which you want to install your application for
319 debugging and testing. For Mac OS X and Linux platforms, no
320 special driver is needed.</td>
324 style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td
325 style="border:none"></td>
328 <td rowspan="3">Full<br/>(plus Recommended)</td>
330 <td>The Google APIs add-on gives your application access to the Maps external
331 library, which makes it easy to display and manipulate Maps data in your
335 <td>Additional SDK Platforms</td>
336 <td>If you plan to publish your application, you will want to download
337 additional platforms corresponding to the Android platform versions on which you
338 want the application to run. The recommended approach is to compile your
339 application against the lowest version you want to support, but test it against
340 higher versions that you intend the application to run on. You can test your
341 applications on different platforms by running in an Android Virtual Device
342 (AVD) on the Android emulator.</td>
347 <p>Once you've installed at least the basic configuration of SDK components, you're ready to start
348 developing Android apps. The next section describes the contents of the Android SDK to familiarize
349 you with the components you've just installed.</p>
351 <p>For more information about using the Android SDK and AVD Manager, see the <a
352 href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a> document. </p>
355 <h2 id="sdkContents">Step 5. Exploring the SDK (Optional)</h2>
357 <p>Once you've installed the SDK and downloaded the platforms, documentation,
358 and add-ons that you need, we suggest that you open the SDK directory and take a look at what's
361 <p>The table below describes the full SDK directory contents, with components
366 <th colspan="3">Name</th><th>Description</th>
369 <td colspan="3"><code>add-ons/</code></td>
370 <td>Contains add-ons to the Android SDK development
371 environment, which let you develop against external libraries that are available on some
375 <td colspan="3"><code>docs/</code></td>
376 <td>A full set of documentation in HTML format, including the Developer's Guide,
377 API Reference, and other information. To read the documentation, load the
378 file <code>offline.html</code> in a web browser.</td>
381 <td colspan="3"><code>platform-tools/</code></td>
382 <td>Contains development tools that may be updated with each platform release (from the <em>Android
383 SDK Platform-tools</em> component). Tools in here include {@code adb}, {@code dexdump}, and others
384 others that you don't typically use directly. These tools are separate from the generic development
385 tools in the {@code tools/} directory, because these tools may be updated in order to support new
386 features in the latest Android platform, whereas the other tools have no dependencies on the
387 platform version.</td>
390 <td colspan="3"><code>platforms/</code></td>
391 <td>Contains a set of Android platform versions that you can develop
392 applications against, each in a separate directory. </td>
395 <td style="width:2em;border-bottom-color:white;"></td>
396 <td colspan="2"><code><em><platform></em>/</code></td>
397 <td>Platform version directory, for example "android-1.6". All platform version
398 directories contain a similar set of files and subdirectory structure.</td>
402 <td style="width:2em;border-bottom-color:white;"> </td>
403 <td style="width:2em;border-bottom-color:white;"></td>
404 <td><code>data/</code></td>
405 <td>Storage area for default fonts and resource definitions.</td>
408 <td style="width:2em;border-bottom-color:white;"></td>
409 <td style="width:2em;border-bottom-color:white;"></td>
410 <td><code>images/</code></td>
411 <td>Storage area for default disk images, including the Android system image,
412 the default userdata image, the default ramdisk image, and more. The images
413 are used in emulator sessions.</td>
416 <td style="width:2em;border-bottom-color:white;"></td>
417 <td style="width:2em;border-bottom-color:white;"></td>
418 <td><code>skins/</code></td>
419 <td>A set of emulator skins available for the platform version. Each skin is
420 designed for a specific screen resolution.</td>
423 <td style="width:2em;border-bottom-color:white;"></td>
424 <td style="width:2em;border-bottom-color:white;"></td>
425 <td><code>templates/</code></td>
426 <td>Storage area for file templates used by the SDK development tools.</td>
429 <td style="width:2em;border-bottom-color:white;"></td>
430 <td style="width:2em;border-bottom-color:white;"></td>
431 <td><code>tools/</code></td>
432 <td>This directory is used only by SDK Tools r7 and below for development tools that are specific to
433 this platform version—it's not used by SDK Tools r8 and above.</td>
436 <td style="width:2em;"></td>
437 <td style="width:2em;"></td>
438 <td><code>android.jar</code></td>
439 <td>The Android library used when compiling applications against this platform
443 <td colspan="3"><code>samples/</code></td>
444 <td>Sample code and apps that are specific to platform version.</td>
446 <td colspan="3"><code>tools/</code></td>
447 <td>Contains the set of development and profiling tools that are platform-independent, such
448 as the emulator, the AVD and SDK Manager, ddms, hierarchyviewer and more. The tools in
449 this directory may be updated at any time (from the <em>Android SDK Tools</em> component),
450 independent of platform releases, whereas the tools in {@code platform-tools/} may be updated based
451 on the latest platform release.</td>
454 <td colspan="3"><code>SDK Readme.txt</code></td>
455 <td>A file that explains how to perform the initial setup of your SDK,
456 including how to launch the Android SDK and AVD Manager tool on all
460 <td colspan="3"><code>SDK Manager.exe</code></td>
461 <td>Windows SDK only. A shortcut that launches the Android SDK and AVD
462 Manager tool, which you use to add components to your SDK. </td>
465 <td colspan="3"><code>documentation.html</code></td>
466 <td>A file that loads the entry page for the local Android SDK
473 <p>Optionally, you might want to add the location of the SDK's <code>tools/</code> and
474 <code>platform-tools</code> to your <code>PATH</code> environment variable, to provide easy
475 access to the tools.</p>
478 <div class="toggleable closed">
479 <a href="#" onclick="return toggleDiv(this)">
480 <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
482 How to update your PATH</a>
483 <div class="toggleme">
485 <p>Adding both <code>tools/</code> and <code>platform-tools/</code> to your PATH lets you run
486 command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without needing to
487 supply the full path to the tool directories. Depending on your operating system, you can
488 include these directories in your PATH in the following way:</p>
492 <li>On Windows, right-click on My Computer, and select Properties.
493 Under the Advanced tab, hit the Environment Variables button, and in the
494 dialog that comes up, double-click on Path (under System Variables). Add the full path to the
495 <code>tools/</code> and <code>platform-tools/</code> directories to the path. </li>
497 <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
498 for a line that sets the PATH environment variable and add the
499 full path to the <code>tools/</code> and <code>platform-tools</code> directories to it. If you
500 don't see a line setting the path, you can add one:
501 <pre>export PATH=${PATH}:<sdk>/tools:<sdk>/platform-tools</pre>
504 <li>On a Mac OS X, look in your home directory for <code>.bash_profile</code> and
505 proceed as for Linux. You can create the <code>.bash_profile</code> if
506 you don't already have one. </li>
509 </div><!-- end toggleme -->
510 </div><!-- end toggleable -->
513 <h2 id="NextSteps">Next Steps</h2>
514 <p>Once you have completed installation, you are ready to
515 begin developing applications. Here are a few ways you can get started: </p>
517 <p><strong>Set up the Hello World application</strong></p>
519 <li>If you have just installed the SDK for the first time, go to the <a
520 href="{@docRoot}resources/tutorials/hello-world.html">Hello
521 World tutorial</a>. The tutorial takes you step-by-step through the process
522 of setting up your first Android project, including setting up an Android
523 Virtual Device (AVD) on which to run the application.
527 <p class="note">Following the Hello World tutorial is an essential
528 first step in getting started with Android development. </p>
530 <p><strong>Learn about Android</strong></p>
532 <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
533 Guide</a> and the types of information it provides</li>
534 <li>Read an introduction to Android as a platform in <a
535 href="{@docRoot}guide/basics/what-is-android.html">What is
537 <li>Learn about the Android framework and how applications run on it in
538 <a href="{@docRoot}guide/topics/fundamentals.html">Application
539 Fundamentals</a></li>
540 <li>Take a look at the Android framework API specification in the <a
541 href="{@docRoot}reference/packages.html">Reference</a> tab</li>
544 <p><strong>Explore the development tools</strong></p>
546 <li>Get an overview of the <a
547 href="{@docRoot}guide/developing/tools/index.html">development
548 tools</a> that are available to you</li>
549 <li>Read how to develop <a
550 href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
551 <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
553 <li>Read <a href="{@docRoot}guide/developing/device.html">Developing on a Device</a> to set up an
554 Android-powered device to run and test your application.</li>
557 <p><strong>Follow the Notepad tutorial</strong></p>
560 <li>The <a href="{@docRoot}resources/tutorials/notepad/index.html">
561 Notepad Tutorial</a> shows you how to build a full Android application
562 and provides helpful commentary on the Android system and API. The
563 Notepad tutorial helps you bring together the important design
564 and architectural concepts in a moderately complex application.
567 <p class="note">Following the Notepad tutorial is an excellent
568 second step in getting started with Android development. </p>
570 <p><strong>Explore some code</strong></p>
573 <li>The Android SDK includes sample code and applications for each platform
574 version. You can browse the samples in the <a
575 href="{@docRoot}resources/index.html">Resources</a> tab or download them
576 into your SDK using the Android SDK and AVD Manager. Once you've downloaded the
577 samples, you'll find them in
578 <code><em><sdk></em>/samples/<em><platform>/</em></code>. </li>
581 <p><strong>Visit the Android developer groups</strong></p>
583 <li>Take a look at the <a
584 href="{@docRoot}resources/community-groups.html">Community</a> pages to see a list of
585 Android developers groups. In particular, you might want to look at the
586 <a href="http://groups.google.com/group/android-developers">Android
587 Developers</a> group to get a sense for what the Android developer
588 community is like.</li>
591 <h2 id="troubleshooting">Troubleshooting</h2>
593 <h3>Ubuntu Linux Notes</h3>
596 <li>If you need help installing and configuring Java on your
597 development machine, you might find these resources helpful:
599 <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
600 <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
603 <li>Here are the steps to install Java and Eclipse, prior to installing
604 the Android SDK and ADT Plugin.
606 <li>If you are running a 64-bit distribution on your development
607 machine, you need to install the <code>ia32-libs</code> package using
608 <code>apt-get:</code>:
609 <pre>apt-get install ia32-libs</pre>
611 <li>Next, install Java: <pre>apt-get install sun-java6-jdk</pre></li>
612 <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
613 version for download, so we recommend that you download Eclipse from
615 href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
616 downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
617 <li>Follow the steps given in previous sections to install the SDK
618 and the ADT plugin. </li>
623 <h3>Other Linux Notes</h3>
626 <li>If JDK is already installed on your development computer, please
627 take a moment to make sure that it meets the version requirements listed
628 in the <a href="requirements.html">System Requirements</a>.
629 In particular, note that some Linux distributions may include JDK 1.4 or Gnu
630 Compiler for Java, both of which are not supported for Android development.</li>