1page.title=Installing the SDK 2 3@jd:body 4 5 6<script type="text/javascript"> 7function 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")); 15 } else { 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")); 21 } 22 return false; 23} 24</script> 25<style> 26.toggleable { 27 padding: .25em 1em 0em 1em; 28 margin-bottom: 0; 29} 30.toggleme { 31 padding: 1em 1em 0 2em; 32 line-height:1em; 33} 34.toggleable a { 35 text-decoration:none; 36} 37.toggleme a { 38 text-decoration:underline; 39} 40.toggleable.closed .toggleme { 41 display:none; 42} 43#jd-content .toggle-img { 44 margin:0; 45} 46</style> 47 48<div id="qv-wrapper"> 49<div id="qv"> 50 51 <h2>In this document</h2> 52 <ol> 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 Packages</a> 57 <ol> 58 <li><a href="#components">Available Packages</a></li> 59 <li><a href="#which">Recommended Packages</a></li> 60 </ol></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> 64 </ol> 65 66<h2>See also</h2> 67 <ol> 68 <li><a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a></li> 69 <li><a href="{@docRoot}sdk/exploring.html">Exploring the SDK</a></li> 70 </ol> 71 72</div> 73</div> 74 75<p>This page describes how to install the Android SDK 76and set up your development environment for the first time.</p> 77 78<p>If you encounter any problems during installation, see the 79<a href="#troubleshooting">Troubleshooting</a> section at the bottom of 80this page.</p> 81 82<h4>Updating?</h4> 83 84<p>If you already have an Android SDK, use the Android SDK Manager tool to install 85updated tools and new Android platforms into your existing environment. For information about how to 86do that, see <a href="{@docRoot}sdk/exploring.html">Exploring the SDK</a>.</p> 87 88 89<h2 id="Preparing">Step 1. Preparing Your Development Computer</h2> 90 91<p>Before getting started with the Android SDK, take a moment to confirm that 92your development computer meets the <a href="requirements.html">System 93Requirements</a>. In particular, you might need to install the <a 94href="http://java.sun.com/javase/downloads/index.jsp">JDK</a>, if you don't have it already. </p> 95 96<p>If you will be developing in Eclipse with the Android Development 97Tools (ADT) Plugin—the recommended path if you are new to 98Android—make sure that you have a suitable version of Eclipse 99installed on your computer as described in the 100<a href="requirements.html">System Requirements</a> document. 101If you need to install Eclipse, you can download it from this location: </p> 102 103<p style="margin-left:2em;"><a href= 104"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p> 105 106<p>The "Eclipse Classic" version is recommended. Otherwise, a Java or 107RCP version of Eclipse is recommended.</p> 108 109 110<h2 id="Installing">Step 2. Downloading the SDK Starter Package</h2> 111 112<p>The SDK starter package is not a full 113development environment—it includes only the core SDK Tools, which you can 114use to download the rest of the SDK packages (such as the latest Android platform).</p> 115 116<p>If you haven't already, get the latest version of the SDK starter package from the <a 117href="{@docRoot}sdk/index.html">SDK download page</a>.</p> 118 119<p>If you downloaded a {@code .zip} or {@code .tgz} package (instead of the SDK installer), unpack 120it to a safe location on your machine. By default, the SDK files are unpacked 121into a directory named <code>android-sdk-<machine-platform></code>.</p> 122 123<p>If you downloaded the Windows installer ({@code .exe} file), run it now and it will check 124whether the proper Java SE Development Kit (JDK) is installed (installing it, if necessary), then 125install the SDK Tools into a default location (which you can modify).</p> 126 127<p>Make a note of the name and location of the SDK directory on your system—you will need to 128refer to the SDK directory later, when setting up the ADT plugin and when using 129the SDK tools from the command line.</p> 130 131 132<h2 id="InstallingADT">Step 3. Installing the ADT Plugin for Eclipse</h2> 133 134<p>Android offers a custom plugin for the Eclipse IDE, called Android 135Development Tools (ADT), that is designed to give you a powerful, integrated 136environment in which to build Android applications. It extends the capabilites 137of Eclipse to let you quickly set up new Android projects, create an application 138UI, debug your applications 139using the Android SDK tools, and even export signed (or unsigned) APKs in order 140to distribute your application. In general, developing in Eclipse with ADT is a 141highly recommended approach and is the fastest way to get started with Android. 142</p> 143 144<p>If you'd like to use ADT for developing Android applications, install it now. 145Read <a href="{@docRoot}tools/sdk/eclipse-adt.html#installing">Installing the ADT Plugin</a> for 146step-by-step installation instructions, then return here to continue the 147last step in setting up your Android SDK.</p> 148 149<p>If you prefer to work in a different IDE, you do not need to 150install Eclipse or ADT. Instead, you can directly use the SDK tools to build and 151debug your application. The <a href="{@docRoot}tools/workflow/index.html">Introduction</a> 152to Android application development outlines the major steps that you need to complete when 153developing in Eclipse or other IDEs.</p> 154 155 156 157<h2 id="AddingComponents">Step 4. Adding Platforms and Other Packages</h2> 158 159<p>The last step in setting up your SDK is using the Android SDK Manager (a 160tool included in the SDK starter package) to download essential SDK packages into your development 161environment.</p> 162 163<p>The SDK uses a modular structure that separates the major parts of the SDK—Android platform 164versions, add-ons, tools, samples, and documentation—into a set of separately installable 165packages. The SDK starter package, which you've already downloaded, includes only a single 166package: the latest version of the SDK Tools. To develop an Android application, you also need to 167download at least one Android platform and the associated platform tools. You can add other 168packages and platforms as well, which is highly recommended.</p> 169 170<p>If you used the Windows installer, when you complete the installation wizard, it will launch the 171Android SDK Manager with a default set of platforms and other packages selected 172for you to install. Simply click <strong>Install</strong> to accept the recommended set of 173packages and install them. You can then skip to <a href="#sdkContents">Step 5</a>, but we 174recommend you first read the section about the <a href="#components">Available Packages</a> to 175better understand the packages available from the Android SDK Manager.</p> 176 177<p>You can launch the Android SDK Manager in one of the following ways:</p> 178<ul> 179 <li>From within Eclipse, select <strong>Window > Android SDK Manager</strong>.</li> 180 <li>On Windows, double-click the <code>SDK Manager.exe</code> file at the root of the Android 181SDK directory.</li> 182 <li>On Mac or Linux, open a terminal and navigate to the <code>tools/</code> directory in the 183Android SDK, then execute: <pre>android</pre> </li> 184</ul> 185 186<p>To download packages, use the graphical UI of the Android SDK 187Manager to browse the SDK repository and select new or updated 188packages (see figure 1). The Android SDK Manager installs the selected packages in 189your SDK environment. For information about which packages you should download, see <a 190href="#which">Recommended Packages</a>.</p> 191 192<img src="/images/sdk_manager_packages.png" /> 193<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager's 194<strong>Available Packages</strong> panel, which shows the SDK packages that are 195available for you to download into your environment.</p> 196 197 198<h3 id="components">Available Packages</h3> 199 200<p>By default, there are two repositories of packages for your SDK: <em>Android 201Repository</em> and <em>Third party Add-ons</em>.</p> 202 203<p>The <em>Android Repository</em> offers these types of packages:</p> 204 205<ul> 206<li><strong>SDK Tools</strong> — Contains tools for debugging and testing your application 207and other utility tools. These tools are installed with the Android SDK starter package and receive 208periodic updates. You can access these tools in the <code><sdk>/tools/</code> directory of 209your SDK. To learn more about 210them, see <a href="{@docRoot}tools/index.html#tools-sdk">SDK Tools</a> in the 211developer guide.</li> 212 213<li><strong>SDK Platform-tools</strong> — Contains platform-dependent tools for developing 214and debugging your application. These tools support the latest features of the Android platform and 215are typically updated only when a new platform becomes available. You can access these tools in the 216<code><sdk>/platform-tools/</code> directory. To learn more about them, see <a 217href="{@docRoot}tools/index.html#tools-platform">Platform Tools</a> in the 218developer guide.</li> 219 220<li><strong>Android platforms</strong> — An SDK platform is 221available for every production Android platform deployable to Android-powered devices. Each 222SDK platform package includes a fully compliant Android library, system image, sample code, 223and emulator skins. To learn more about a specific platform, see the list of platforms that appears 224under the section "Downloadable SDK Packages" on the left part of this page.</li> 225 226<li><strong>USB Driver for Windows</strong> (Windows only) — Contains driver files 227that you can install on your Windows computer, so that you can run and debug 228your applications on an actual device. You <em>do not</em> need the USB driver unless 229you plan to debug your application on an actual Android-powered device. If you 230develop on Mac OS X or Linux, you do not need a special driver to debug 231your application on an Android-powered device. See <a 232href="{@docRoot}tools/device.html">Using Hardware Devices</a> for more information 233about developing on a real device.</li> 234 235<li><strong>Samples</strong> — Contains the sample code and apps available 236for each Android development platform. If you are just getting started with 237Android development, make sure to download the samples to your SDK. <!--The download 238includes not only a set of very useful sample apps, but also the source for <a 239href="{@docRoot}training/basics/firstapp/index.html">Building Your First App</a> and other 240tutorials. --></li> 241 242<li><strong>Documentation</strong> — Contains a local copy of the latest 243multiversion documentation for the Android framework API. </li> 244</ul> 245 246<p>The <em>Third party Add-ons</em> provide packages that allow you to create a development 247environment using a specific Android external library (such as the Google Maps library) or a 248customized (but fully compliant) Android system image. You can add additional Add-on repositories by 249clicking <strong>Add Add-on Site</strong>.</p> 250 251 252<h3 id="which">Recommended Packages</h3> 253 254<p>The SDK repository contains a range of packages that you can download. 255Use the table below to determine which packages you need, based on whether you 256want to set up a basic, recommended, or full development environment: 257</p> 258 259<table style="width:95%"> 260 261<tr> 262<th>Environment</th> 263<th>SDK Package</th> 264<th>Comments</th> 265</tr> 266 267<tr> 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 271the SDK starter package, then you already have the latest version of this package. The 272SDK Tools package is required to develop an Android application. Make sure you keep this up to 273date.</td> 274</tr> 275 276<tr> 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 279for application development. These tools are platform-dependent and typically update only when 280a new SDK platform is made available, in order to support new features in the platform. These 281tools are always backward compatible with older platforms, but you must be sure that you have 282the latest version of these tools when you install a new SDK platform.</td> 283</tr> 284 285<tr> 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 288style="color:red">at least one platform</strong> into your environment, so that 289you will be able to compile your application and set up an Android Virtual 290Device (AVD) to run it on (in the emulator). To start with, just download the 291latest version of the platform. Later, if you plan to publish your application, 292you will want to download other platforms as well, so that you can test your 293application on the full range of Android platform versions that your application supports.</td> 294</tr> 295<tr> 296<td colspan="2" 297style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td 298style="border:none"></td> 299</tr> 300<tr> 301<td rowspan="3">Recommended<br/>(plus Basic)</td> 302<td>Documentation</td> 303<td>The Documentation package is useful because it lets you work offline and 304also look up API reference information from inside Eclipse.</td> 305</tr> 306 307<tr> 308<td>Samples</td> 309<td>The Samples packages give you source code that you can use to learn about 310Android, load as a project and run, or reuse in your own app. Note that multiple 311samples packages are available — one for each Android platform version. When 312you are choosing a samples package to download, select the one whose API Level 313matches the API Level of the Android platform that you plan to use.</td> 314</tr> 315<tr> 316<td>Usb Driver</td> 317<td>The Usb Driver package is needed only if you are developing on Windows and 318have an Android-powered device on which you want to install your application for 319debugging and testing. For Mac OS X and Linux platforms, no 320special driver is needed.</td> 321</tr> 322<tr> 323<td colspan="2" 324style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td 325style="border:none"></td> 326</tr> 327<tr> 328<td rowspan="3">Full<br/>(plus Recommended)</td> 329<td>Google APIs</td> 330<td>The Google APIs add-on gives your application access to the Maps external 331library, which makes it easy to display and manipulate Maps data in your 332application. </td> 333</tr> 334<tr> 335<td>Additional SDK Platforms</td> 336<td>If you plan to publish your application, you will want to download 337additional platforms corresponding to the Android platform versions on which you 338want the application to run. The recommended approach is to compile your 339application against the lowest version you want to support, but test it against 340higher versions that you intend the application to run on. You can test your 341applications on different platforms by running in an Android Virtual Device 342(AVD) on the Android emulator.</td> 343</tr> 344 345</table> 346 347<p>Once you've installed at least the basic configuration of SDK packages, you're ready to start 348developing Android apps. The next section describes the contents of the Android SDK to familiarize 349you with the packages you've just installed.</p> 350 351<p>For more information about using the Android SDK Manager, see the <a 352href="{@docRoot}sdk/exploring.html">Exploring the SDK</a> document. </p> 353 354 355<h2 id="sdkContents">Step 5. Exploring the SDK (Optional)</h2> 356 357<p>Once you've installed the SDK and downloaded the platforms, documentation, 358and add-ons that you need, we suggest that you open the SDK directory and take a look at what's 359inside.</p> 360 361<p>The table below describes the full SDK directory contents, with packages 362installed. </p> 363 364<table> 365<tr> 366<th colspan="3">Name</th><th>Description</th> 367</tr> 368<tr> 369<td colspan="3"><code>add-ons/</code></td> 370<td>Contains add-ons to the Android SDK development 371environment, which let you develop against external libraries that are available on some 372devices. </td> 373</tr> 374<tr> 375<td colspan="3"><code>docs/</code></td> 376<td>A full set of documentation in HTML format, including the Developer's Guide, 377API Reference, and other information. To read the documentation, load the 378file <code>index.html</code> in a web browser.</td> 379</tr> 380<tr> 381<td colspan="3"><code>platform-tools/</code></td> 382<td>Contains platform-dependent development tools that may be updated with each platform release. 383The platform tools include the Android Debug Bridge ({@code adb}) as well as other tools that you 384don't typically use directly. These tools are separate from the development tools in the {@code 385tools/} directory because these tools may be updated in order to support new 386features in the latest Android platform.</td> 387</tr> 388<tr> 389<td colspan="3"><code>platforms/</code></td> 390<td>Contains a set of Android platform versions that you can develop 391applications against, each in a separate directory. </td> 392</tr> 393<tr> 394<td style="width:2em;"></td> 395<td colspan="2"><code><em><platform></em>/</code></td> 396<td>Platform version directory, for example "android-11". All platform version directories contain 397a similar set of files and subdirectory structure. Each platform directory also includes the 398Android library (<code>android.jar</code>) that is used to compile applications against the 399platform version.</td> 400</tr> 401<tr> 402<td colspan="3"><code>samples/</code></td> 403<td>Sample code and apps that are specific to platform version.</td> 404</tr> 405<tr> 406<td colspan="3"><code>tools/</code></td> 407<td>Contains the set of development and profiling tools that are platform-independent, such 408as the emulator, the Android SDK Manager, the AVD Manager, <code>ddms</code>, 409<code>hierarchyviewer</code> 410and more. The tools in this directory may be updated at any time using the Android SDK 411Manager and are independent of platform releases.</td> 412</tr> 413<tr> 414<td colspan="3"><code>SDK Readme.txt</code></td> 415<td>A file that explains how to perform the initial setup of your SDK, 416including how to launch the Android SDK Manager tool on all 417platforms.</td> 418</tr> 419<tr> 420<td colspan="3"><code>SDK Manager.exe</code></td> 421<td>Windows SDK only. A shortcut that launches the Android SDK 422Manager tool, which you use to add packages to your SDK.</td> 423</tr> 424<!--<tr> 425<td colspan="3"><code>documentation.html</code></td> 426<td>A file that loads the entry page for the local Android SDK 427documentation.</td> 428</tr>--> 429 430</table> 431 432 433<p>Optionally, you might want to add the location of the SDK's <code>tools/</code> and 434<code>platform-tools</code> to your <code>PATH</code> environment variable, to provide easy 435access to the tools.</p> 436 437 438<div class="toggleable closed"> 439 <a href="#" onclick="return toggleDiv(this)"> 440 <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" 441width="9px" /> 442 How to update your PATH</a> 443 <div class="toggleme"> 444 445<p>Adding both <code>tools/</code> and <code>platform-tools/</code> to your PATH lets you run 446command line <a href="{@docRoot}tools/index.html">tools</a> without needing to 447supply the full path to the tool directories. Depending on your operating system, you can 448include these directories in your PATH in the following way:</p> 449 450<ul> 451 452 <li>On Windows, right-click on My Computer, and select Properties. 453 Under the Advanced tab, hit the Environment Variables button, and in the 454 dialog that comes up, double-click on Path (under System Variables). Add the full path to the 455 <code>tools/</code> and <code>platform-tools/</code> directories to the path. </li> 456 457 <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look 458 for a line that sets the PATH environment variable and add the 459 full path to the <code>tools/</code> and <code>platform-tools/</code> directories to it. If you 460 don't see a line setting the path, you can add one: 461 <pre>export PATH=${PATH}:<sdk>/tools:<sdk>/platform-tools</pre> 462 </li> 463 464 <li>On a Mac OS X, look in your home directory for <code>.bash_profile</code> and 465 proceed as for Linux. You can create the <code>.bash_profile</code> if 466 you don't already have one. </li> 467</ul> 468 469</div><!-- end toggleme --> 470</div><!-- end toggleable --> 471 472 473<h2 id="NextSteps">Next Steps</h2> 474<p>Once you have completed installation, you are ready to 475begin developing applications. Here are a few ways you can get started: </p> 476 477<p><strong>Set up the Hello World application</strong></p> 478<ul> 479 <li>If you have just installed the SDK for the first time, go to the <a 480 href="{@docRoot}training/basics/firstapp/index.html">Hello 481 World tutorial</a>. The tutorial takes you step-by-step through the process 482 of setting up your first Android project, including setting up an Android 483 Virtual Device (AVD) on which to run the application. 484</li> 485</ul> 486 487<p class="note">Following the Hello World tutorial is an essential 488first step in getting started with Android development. </p> 489 490<p><strong>Learn about Android</strong></p> 491<ul> 492 <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev 493 Guide</a> and the types of information it provides.</li> 494 <li>Read an introduction to Android as a platform in <a 495 href="{@docRoot}guide/basics/what-is-android.html">What is 496 Android?</a></li> 497 <li>Learn about the Android framework and how applications run on it in 498 <a href="{@docRoot}guide/components/fundamentals.html">Application 499 Fundamentals</a>.</li> 500 <li>Take a look at the Android framework API specification in the <a 501 href="{@docRoot}reference/packages.html">Reference</a> tab.</li> 502</ul> 503 504<p><strong>Explore the development tools</strong></p> 505<ul> 506 <li>Get an overview of the <a 507 href="{@docRoot}tools/index.html">development 508 tools</a> that are available to you.</li> 509 <li>Read the <a href="{@docRoot}tools/workflow/index.html">Introduction</a> to Android 510application development. 511 </li> 512 <li>Read <a href="{@docRoot}tools/device.html">Using Hardware Devices</a> to learn 513how to set up an Android-powered device so you can run and test your application.</li> 514</ul> 515 516<p><strong>Follow the Notepad tutorial</strong></p> 517 518<ul> 519 <li>The <a href="{@docRoot}training/notepad/index.html"> 520 Notepad Tutorial</a> shows you how to build a full Android application 521 and provides helpful commentary on the Android system and API. The 522 Notepad tutorial helps you bring together the important design 523 and architectural concepts in a moderately complex application. 524 </li> 525</ul> 526<p class="note">Following the Notepad tutorial is an excellent 527second step in getting started with Android development. </p> 528 529<p><strong>Explore some code</strong></p> 530 531<ul> 532 <li>The Android SDK includes sample code and applications for each platform 533version. You can browse the samples in the <a 534href="{@docRoot}resources/index.html">Resources</a> tab or download them 535into your SDK using the Android SDK Manager. Once you've downloaded the 536samples, you'll find them in 537<code><em><sdk></em>/samples/<em><platform>/</em></code>. </li> 538</ul> 539 540<p><strong>Visit the Android developer groups</strong></p> 541<ul> 542 <li>Take a look at the <a 543 href="{@docRoot}resources/community-groups.html">Community</a> pages to see a list of 544 Android developers groups. In particular, you might want to look at the 545 <a href="http://groups.google.com/group/android-developers">Android 546 Developers</a> group to get a sense for what the Android developer 547 community is like.</li> 548</ul> 549 550<h2 id="troubleshooting">Troubleshooting</h2> 551 552<h3>Ubuntu Linux Notes</h3> 553 554<ul> 555 <li>If you need help installing and configuring Java on your 556 development machine, you might find these resources helpful: 557 <ul> 558 <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li> 559 <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li> 560 </ul> 561 </li> 562 <li>Here are the steps to install Java and Eclipse, prior to installing 563 the Android SDK and ADT Plugin. 564 <ol> 565 <li>If you are running a 64-bit distribution on your development 566 machine, you need to install the <code>ia32-libs</code> package using 567 <code>apt-get:</code>: 568 <pre>apt-get install ia32-libs</pre> 569 </li> 570 <li>Next, install Java: <pre>apt-get install sun-java6-jdk</pre></li> 571 <li>The Ubuntu package manager does not currently offer an Eclipse 3.3 572 version for download, so we recommend that you download Eclipse from 573 eclipse.org (<a 574 href="http://www.eclipse.org/downloads/">http://www.eclipse.org/ 575 downloads/</a>). A Java or RCP version of Eclipse is recommended.</li> 576 <li>Follow the steps given in previous sections to install the SDK 577 and the ADT plugin. </li> 578 </ol> 579 </li> 580</ul> 581 582<h3>Other Linux Notes</h3> 583 584<ul> 585 <li>If JDK is already installed on your development computer, please 586 take a moment to make sure that it meets the version requirements listed 587 in the <a href="requirements.html">System Requirements</a>. 588 In particular, note that some Linux distributions may include JDK 1.4 or Gnu 589 Compiler for Java, both of which are not supported for Android development.</li> 590</ul> 591