blob: 7461eb0c427a3d00edc31abaa23c37ec2a65e79c [file] [log] [blame]
Dirk Dougherty7b229ef2010-03-26 17:32:26 -07001page.title=Installing the SDK
Dirk Doughertyee58d1b2009-10-16 15:25:15 -07002
3@jd:body
4
Scott Main38dea272010-11-01 13:03:25 -07005
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
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070048<div id="qv-wrapper">
49<div id="qv">
50
51 <h2>In this document</h2>
52 <ol>
Scott Main081127b2010-10-29 15:56:27 -070053 <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>
Scott Maina7b1b8c2012-03-14 17:16:11 -070056 <li><a href="#AddingComponents">4. Adding Platforms and Other Packages</a>
Scott Main38dea272010-11-01 13:03:25 -070057 <ol>
Scott Maina7b1b8c2012-03-14 17:16:11 -070058 <li><a href="#components">Available Packages</a></li>
59 <li><a href="#which">Recommended Packages</a></li>
Scott Main38dea272010-11-01 13:03:25 -070060 </ol></li>
Scott Main0a21f342010-11-08 12:06:26 -080061 <li><a href="#sdkContents">5. Exploring the SDK (Optional)</a></li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070062 <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>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -070068 <li><a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a></li>
Scott Maina7b1b8c2012-03-14 17:16:11 -070069 <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a></li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070070 </ol>
71
72</div>
73</div>
74
Scott Main06cf15e2010-10-28 00:02:31 -070075<p>This page describes how to install the Android SDK
Dirk Doughertya374f512009-11-09 11:41:09 -080076and set up your development environment for the first time.</p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070077
Scott Main06cf15e2010-10-28 00:02:31 -070078<p>If you encounter any problems during installation, see the
Dirk Doughertya250f0c2009-10-22 18:02:45 -070079<a href="#troubleshooting">Troubleshooting</a> section at the bottom of
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070080this page.</p>
81
82<h4>Updating?</h4>
83
Scott Maina7b1b8c2012-03-14 17:16:11 -070084<p>If you already have an Android SDK, use the Android SDK Manager tool to install
Scott Main081127b2010-10-29 15:56:27 -070085updated tools and new Android platforms into your existing environment. For information about how to
Scott Maina7b1b8c2012-03-14 17:16:11 -070086do that, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a>.</p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070087
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070088
Dirk Dougherty7b229ef2010-03-26 17:32:26 -070089<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
Scott Main081127b2010-10-29 15:56:27 -070093Requirements</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>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -070095
96<p>If you will be developing in Eclipse with the Android Development
Scott Main081127b2010-10-29 15:56:27 -070097Tools (ADT) Plugin&mdash;the recommended path if you are new to
98Android&mdash;make sure that you have a suitable version of Eclipse
Robert Ly2a36cf42011-03-09 10:33:20 -080099installed 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>
Scott Main06cf15e2010-10-28 00:02:31 -0700102
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700103<p style="margin-left:2em;"><a href=
Scott Main06cf15e2010-10-28 00:02:31 -0700104"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p>
105
Robert Ly2a36cf42011-03-09 10:33:20 -0800106<p>The "Eclipse Classic" version is recommended. Otherwise, a Java or
Scott Main081127b2010-10-29 15:56:27 -0700107RCP version of Eclipse is recommended.</p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700108
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700109
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700110<h2 id="Installing">Step 2. Downloading the SDK Starter Package</h2>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700111
Scott Main38dea272010-11-01 13:03:25 -0700112<p>The SDK starter package is not a full
Scott Main081127b2010-10-29 15:56:27 -0700113development environment&mdash;it includes only the core SDK Tools, which you can
Scott Maina7b1b8c2012-03-14 17:16:11 -0700114use to download the rest of the SDK packages (such as the latest Android platform).</p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700115
Scott Main0a21f342010-11-08 12:06:26 -0800116<p>If you haven't already, get the latest version of the SDK starter package from the <a
Scott Main081127b2010-10-29 15:56:27 -0700117href="{@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-&lt;machine-platform&gt;</code>.</p>
Scott Main06cf15e2010-10-28 00:02:31 -0700122
Scott Main4fb51ca2010-11-09 14:47:15 -0800123<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&mdash;you will need to
Scott Main06cf15e2010-10-28 00:02:31 -0700128refer to the SDK directory later, when setting up the ADT plugin and when using
Bill Gruber604917b2011-04-04 12:11:49 -0700129the SDK tools from the command line.</p>
Scott Main06cf15e2010-10-28 00:02:31 -0700130
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700131
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700132<h2 id="InstallingADT">Step 3. Installing the ADT Plugin for Eclipse</h2>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700133
134<p>Android offers a custom plugin for the Eclipse IDE, called Android
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700135Development 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
Scott Main081127b2010-10-29 15:56:27 -0700138UI, debug your applications
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700139using 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>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700143
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700144<p>If you'd like to use ADT for developing Android applications, install it now.
Scott Main081127b2010-10-29 15:56:27 -0700145Read <a href="{@docRoot}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>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700148
Scott Main38dea272010-11-01 13:03:25 -0700149<p>If you prefer to work in a different IDE, you do not need to
Bill Gruber604917b2011-04-04 12:11:49 -0700150install Eclipse or ADT. Instead, you can directly use the SDK tools to build and
151debug your application. The <a href="{@docRoot}guide/developing/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>
Scott Main38dea272010-11-01 13:03:25 -0700154
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700155
Dirk Doughertybf15ce62009-10-23 19:17:12 -0700156
Scott Maina7b1b8c2012-03-14 17:16:11 -0700157<h2 id="AddingComponents">Step 4. Adding Platforms and Other Packages</h2>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700158
Scott Maina7b1b8c2012-03-14 17:16:11 -0700159<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
Bill Gruber604917b2011-04-04 12:11:49 -0700161environment.</p>
Dirk Doughertybf15ce62009-10-23 19:17:12 -0700162
Scott Main081127b2010-10-29 15:56:27 -0700163<p>The SDK uses a modular structure that separates the major parts of the SDK&mdash;Android platform
164versions, add-ons, tools, samples, and documentation&mdash;into a set of separately installable
Scott Maina7b1b8c2012-03-14 17:16:11 -0700165packages. 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
Bill Gruber604917b2011-04-04 12:11:49 -0700167download at least one Android platform and the associated platform tools. You can add other
Scott Maina7b1b8c2012-03-14 17:16:11 -0700168packages and platforms as well, which is highly recommended.</p>
Scott Main38dea272010-11-01 13:03:25 -0700169
Scott Main4fb51ca2010-11-09 14:47:15 -0800170<p>If you used the Windows installer, when you complete the installation wizard, it will launch the
Scott Maina7b1b8c2012-03-14 17:16:11 -0700171Android SDK Manager with a default set of platforms and other packages selected
Scott Main4fb51ca2010-11-09 14:47:15 -0800172for you to install. Simply click <strong>Install</strong> to accept the recommended set of
Scott Maina7b1b8c2012-03-14 17:16:11 -0700173packages 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>
Scott Main4fb51ca2010-11-09 14:47:15 -0800176
Scott Maina7b1b8c2012-03-14 17:16:11 -0700177<p>You can launch the Android SDK Manager in one of the following ways:</p>
Scott Main38dea272010-11-01 13:03:25 -0700178<ul>
Scott Maina7b1b8c2012-03-14 17:16:11 -0700179 <li>From within Eclipse, select <strong>Window &gt; Android SDK Manager</strong>.</li>
Joe Malin2e3e3df2011-02-02 14:51:23 -0800180 <li>On Windows, double-click the <code>SDK Manager.exe</code> file at the root of the Android
Scott Main38dea272010-11-01 13:03:25 -0700181SDK directory.</li>
182 <li>On Mac or Linux, open a terminal and navigate to the <code>tools/</code> directory in the
Scott Main4fb51ca2010-11-09 14:47:15 -0800183Android SDK, then execute: <pre>android</pre> </li>
Scott Main38dea272010-11-01 13:03:25 -0700184</ul>
185
Scott Maina7b1b8c2012-03-14 17:16:11 -0700186<p>To download packages, use the graphical UI of the Android SDK
Bill Gruber604917b2011-04-04 12:11:49 -0700187Manager to browse the SDK repository and select new or updated
Scott Maina7b1b8c2012-03-14 17:16:11 -0700188packages (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>
Scott Main38dea272010-11-01 13:03:25 -0700191
192<img src="/images/sdk_manager_packages.png" />
Scott Maina7b1b8c2012-03-14 17:16:11 -0700193<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
Scott Main38dea272010-11-01 13:03:25 -0700195available for you to download into your environment.</p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700196
Scott Main4fb51ca2010-11-09 14:47:15 -0800197
Scott Maina7b1b8c2012-03-14 17:16:11 -0700198<h3 id="components">Available Packages</h3>
Scott Main4fb51ca2010-11-09 14:47:15 -0800199
Scott Maina7b1b8c2012-03-14 17:16:11 -0700200<p>By default, there are two repositories of packages for your SDK: <em>Android
Scott Main4fb51ca2010-11-09 14:47:15 -0800201Repository</em> and <em>Third party Add-ons</em>.</p>
202
Scott Maina7b1b8c2012-03-14 17:16:11 -0700203<p>The <em>Android Repository</em> offers these types of packages:</p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700204
205<ul>
Bill Gruber604917b2011-04-04 12:11:49 -0700206<li><strong>SDK Tools</strong> &mdash; 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>&lt;sdk&gt;/tools/</code> directory of
209your SDK. To learn more about
210them, see <a href="{@docRoot}guide/developing/tools/index.html#tools-sdk">SDK Tools</a> in the
211developer guide.</li>
Scott Main38dea272010-11-01 13:03:25 -0700212
Bill Gruber604917b2011-04-04 12:11:49 -0700213<li><strong>SDK Platform-tools</strong> &mdash; 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>&lt;sdk&gt;/platform-tools/</code> directory. To learn more about them, see <a
217href="{@docRoot}guide/developing/tools/index.html#tools-platform">Platform Tools</a> in the
218developer guide.</li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700219
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700220<li><strong>Android platforms</strong> &mdash; An SDK platform is
Bill Gruber604917b2011-04-04 12:11:49 -0700221available for every production Android platform deployable to Android-powered devices. Each
Scott Maina7b1b8c2012-03-14 17:16:11 -0700222SDK platform package includes a fully compliant Android library, system image, sample code,
Bill Gruber604917b2011-04-04 12:11:49 -0700223and emulator skins. To learn more about a specific platform, see the list of platforms that appears
Scott Maina7b1b8c2012-03-14 17:16:11 -0700224under the section "Downloadable SDK Packages" on the left part of this page.</li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700225
Scott Main4fb51ca2010-11-09 14:47:15 -0800226<li><strong>USB Driver for Windows</strong> (Windows only) &mdash; Contains driver files
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700227that 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
Scott Main06cf15e2010-10-28 00:02:31 -0700230develop on Mac OS X or Linux, you do not need a special driver to debug
Bill Gruber604917b2011-04-04 12:11:49 -0700231your application on an Android-powered device. See <a
232href="{@docRoot}guide/developing/device.html">Using Hardware Devices</a> for more information
233about developing on a real device.</li>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700234
235<li><strong>Samples</strong> &mdash; 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}resources/tutorials/hello-world.html">Hello World</a> and other
240tutorials. --></li>
241
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700242<li><strong>Documentation</strong> &mdash; Contains a local copy of the latest
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700243multiversion documentation for the Android framework API. </li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700244</ul>
245
Scott Maina7b1b8c2012-03-14 17:16:11 -0700246<p>The <em>Third party Add-ons</em> provide packages that allow you to create a development
Scott Main4fb51ca2010-11-09 14:47:15 -0800247environment using a specific Android external library (such as the Google Maps library) or a
Bill Gruber604917b2011-04-04 12:11:49 -0700248customized (but fully compliant) Android system image. You can add additional Add-on repositories by
249clicking <strong>Add Add-on Site</strong>.</p>
Scott Main4fb51ca2010-11-09 14:47:15 -0800250
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700251
Scott Maina7b1b8c2012-03-14 17:16:11 -0700252<h3 id="which">Recommended Packages</h3>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700253
Scott Maina7b1b8c2012-03-14 17:16:11 -0700254<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
Scott Main38dea272010-11-01 13:03:25 -0700256want to set up a basic, recommended, or full development environment:
257</p>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700258
259<table style="width:95%">
260
261<tr>
262<th>Environment</th>
Scott Maina7b1b8c2012-03-14 17:16:11 -0700263<th>SDK&nbsp;Package</th>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700264<th>Comments</th>
265</tr>
266
267<tr>
Scott Main38dea272010-11-01 13:03:25 -0700268<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
Scott Maina7b1b8c2012-03-14 17:16:11 -0700271the 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
Scott Main38dea272010-11-01 13:03:25 -0700273date.</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>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700283</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
Scott Main38dea272010-11-01 13:03:25 -0700293application on the full range of Android platform versions that your application supports.</td>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700294</tr>
295<tr>
Scott Main38dea272010-11-01 13:03:25 -0700296<td colspan="2"
297style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td
298style="border:none"></td>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700299</tr>
300<tr>
Scott Main38dea272010-11-01 13:03:25 -0700301<td rowspan="3">Recommended<br/>(plus Basic)</td>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700302<td>Documentation</td>
Scott Maina7b1b8c2012-03-14 17:16:11 -0700303<td>The Documentation package is useful because it lets you work offline and
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700304also look up API reference information from inside Eclipse.</td>
305</tr>
306
307<tr>
308<td>Samples</td>
Scott Maina7b1b8c2012-03-14 17:16:11 -0700309<td>The Samples packages give you source code that you can use to learn about
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700310Android, load as a project and run, or reuse in your own app. Note that multiple
Scott Maina7b1b8c2012-03-14 17:16:11 -0700311samples packages are available &mdash; one for each Android platform version. When
312you are choosing a samples package to download, select the one whose API Level
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700313matches the API Level of the Android platform that you plan to use.</td>
314</tr>
315<tr>
316<td>Usb Driver</td>
Scott Maina7b1b8c2012-03-14 17:16:11 -0700317<td>The Usb Driver package is needed only if you are developing on Windows and
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700318have 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>
Scott Main38dea272010-11-01 13:03:25 -0700323<td colspan="2"
324style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td
325style="border:none"></td>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700326</tr>
327<tr>
Scott Main38dea272010-11-01 13:03:25 -0700328<td rowspan="3">Full<br/>(plus Recommended)</td>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700329<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
Dirk Doughertybf15ce62009-10-23 19:17:12 -0700340higher versions that you intend the application to run on. You can test your
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700341applications on different platforms by running in an Android Virtual Device
342(AVD) on the Android emulator.</td>
343</tr>
344
345</table>
Dirk Doughertyeeb0b252009-10-22 16:08:32 -0700346
Scott Maina7b1b8c2012-03-14 17:16:11 -0700347<p>Once you've installed at least the basic configuration of SDK packages, you're ready to start
Scott Main38dea272010-11-01 13:03:25 -0700348developing Android apps. The next section describes the contents of the Android SDK to familiarize
Scott Maina7b1b8c2012-03-14 17:16:11 -0700349you with the packages you've just installed.</p>
Dirk Doughertybf15ce62009-10-23 19:17:12 -0700350
Scott Maina7b1b8c2012-03-14 17:16:11 -0700351<p>For more information about using the Android SDK Manager, see the <a
352href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a> document. </p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700353
354
Scott Main0a21f342010-11-08 12:06:26 -0800355<h2 id="sdkContents">Step 5. Exploring the SDK (Optional)</h2>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700356
357<p>Once you've installed the SDK and downloaded the platforms, documentation,
Scott Main0a21f342010-11-08 12:06:26 -0800358and add-ons that you need, we suggest that you open the SDK directory and take a look at what's
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700359inside.</p>
360
Scott Maina7b1b8c2012-03-14 17:16:11 -0700361<p>The table below describes the full SDK directory contents, with packages
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700362installed. </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>
Scott Main38dea272010-11-01 13:03:25 -0700373</tr>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700374<tr>
375<td colspan="3"><code>docs/</code></td>
376<td>A full set of documentation in HTML format, including the Developer's Guide,
Scott Main06cf15e2010-10-28 00:02:31 -0700377API Reference, and other information. To read the documentation, load the
Dirk Doughertyeeb0b252009-10-22 16:08:32 -0700378file <code>offline.html</code> in a web browser.</td>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700379</tr>
380<tr>
Scott Main06cf15e2010-10-28 00:02:31 -0700381<td colspan="3"><code>platform-tools/</code></td>
Bill Gruber604917b2011-04-04 12:11:49 -0700382<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>
Scott Main06cf15e2010-10-28 00:02:31 -0700387</tr>
388<tr>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700389<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>
Bill Gruber604917b2011-04-04 12:11:49 -0700394<td style="width:2em;"></td>
Scott Main01979992010-04-05 17:42:17 -0700395<td colspan="2"><code><em>&lt;platform&gt;</em>/</code></td>
Bill Gruber604917b2011-04-04 12:11:49 -0700396<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>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700400</tr>
401<tr>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700402<td colspan="3"><code>samples/</code></td>
403<td>Sample code and apps that are specific to platform version.</td>
404</tr>
Joe Malin2e3e3df2011-02-02 14:51:23 -0800405<tr>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700406<td colspan="3"><code>tools/</code></td>
Scott Main06cf15e2010-10-28 00:02:31 -0700407<td>Contains the set of development and profiling tools that are platform-independent, such
Scott Maina7b1b8c2012-03-14 17:16:11 -0700408as 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
Bill Gruber604917b2011-04-04 12:11:49 -0700411Manager and are independent of platform releases.</td>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700412</tr>
413<tr>
Dirk Doughertyeeb0b252009-10-22 16:08:32 -0700414<td colspan="3"><code>SDK Readme.txt</code></td>
Scott Main06cf15e2010-10-28 00:02:31 -0700415<td>A file that explains how to perform the initial setup of your SDK,
Scott Maina7b1b8c2012-03-14 17:16:11 -0700416including how to launch the Android SDK Manager tool on all
Bill Gruber604917b2011-04-04 12:11:49 -0700417platforms.</td>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700418</tr>
419<tr>
Scott Main06cf15e2010-10-28 00:02:31 -0700420<td colspan="3"><code>SDK Manager.exe</code></td>
Scott Maina7b1b8c2012-03-14 17:16:11 -0700421<td>Windows SDK only. A shortcut that launches the Android SDK
422Manager tool, which you use to add packages to your SDK.</td>
Dirk Doughertyeeb0b252009-10-22 16:08:32 -0700423</tr>
424<!--<tr>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700425<td colspan="3"><code>documentation.html</code></td>
426<td>A file that loads the entry page for the local Android SDK
427documentation.</td>
Dirk Doughertyeeb0b252009-10-22 16:08:32 -0700428</tr>-->
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700429
430</table>
431
Scott Main4fb51ca2010-11-09 14:47:15 -0800432
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}guide/developing/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
Bill Gruber604917b2011-04-04 12:11:49 -0700459 full path to the <code>tools/</code> and <code>platform-tools/</code> directories to it. If you
Scott Main4fb51ca2010-11-09 14:47:15 -0800460 don't see a line setting the path, you can add one:
461 <pre>export PATH=${PATH}:&lt;sdk&gt;/tools:&lt;sdk&gt;/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
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700473<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
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700477<p><strong>Set up the Hello World application</strong></p>
478<ul>
Scott Main01979992010-04-05 17:42:17 -0700479 <li>If you have just installed the SDK for the first time, go to the <a
480 href="{@docRoot}resources/tutorials/hello-world.html">Hello
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700481 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
Scott Main01979992010-04-05 17:42:17 -0700483 Virtual Device (AVD) on which to run the application.
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700484</li>
485</ul>
486
Scott Main38dea272010-11-01 13:03:25 -0700487<p class="note">Following the Hello World tutorial is an essential
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700488first step in getting started with Android development. </p>
489
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700490<p><strong>Learn about Android</strong></p>
491<ul>
492 <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
Bill Gruber604917b2011-04-04 12:11:49 -0700493 Guide</a> and the types of information it provides.</li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700494 <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/topics/fundamentals.html">Application
Bill Gruber604917b2011-04-04 12:11:49 -0700499 Fundamentals</a>.</li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700500 <li>Take a look at the Android framework API specification in the <a
Bill Gruber604917b2011-04-04 12:11:49 -0700501 href="{@docRoot}reference/packages.html">Reference</a> tab.</li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700502</ul>
503
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700504<p><strong>Explore the development tools</strong></p>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700505<ul>
506 <li>Get an overview of the <a
507 href="{@docRoot}guide/developing/tools/index.html">development
Bill Gruber604917b2011-04-04 12:11:49 -0700508 tools</a> that are available to you.</li>
509 <li>Read the <a href="{@docRoot}guide/developing/index.html">Introduction</a> to Android
510application development.
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700511 </li>
Bill Gruber604917b2011-04-04 12:11:49 -0700512 <li>Read <a href="{@docRoot}guide/developing/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>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700514</ul>
515
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700516<p><strong>Follow the Notepad tutorial</strong></p>
517
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700518<ul>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700519 <li>The <a href="{@docRoot}resources/tutorials/notepad/index.html">
Scott Main06cf15e2010-10-28 00:02:31 -0700520 Notepad Tutorial</a> shows you how to build a full Android application
521 and provides helpful commentary on the Android system and API. The
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700522 Notepad tutorial helps you bring together the important design
Scott Main06cf15e2010-10-28 00:02:31 -0700523 and architectural concepts in a moderately complex application.
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700524 </li>
525</ul>
Scott Main38dea272010-11-01 13:03:25 -0700526<p class="note">Following the Notepad tutorial is an excellent
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700527second 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
Scott Main06cf15e2010-10-28 00:02:31 -0700533version. You can browse the samples in the <a
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700534href="{@docRoot}resources/index.html">Resources</a> tab or download them
Scott Maina7b1b8c2012-03-14 17:16:11 -0700535into your SDK using the Android SDK Manager. Once you've downloaded the
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700536samples, you'll find them in
537<code><em>&lt;sdk&gt;</em>/samples/<em>&lt;platform&gt;/</em></code>. </li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700538</ul>
539
540<p><strong>Visit the Android developer groups</strong></p>
541<ul>
542 <li>Take a look at the <a
Dirk Dougherty22558d02009-12-10 16:25:06 -0800543 href="{@docRoot}resources/community-groups.html">Community</a> pages to see a list of
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700544 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
Dirk Dougherty6b13bc02009-10-30 19:05:53 -0700550<h2 id="troubleshooting">Troubleshooting</h2>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700551
552<h3>Ubuntu Linux Notes</h3>
553
554<ul>
555 <li>If you need help installing and configuring Java on your
Scott Main06cf15e2010-10-28 00:02:31 -0700556 development machine, you might find these resources helpful:
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700557 <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>
Scott Mainef4ca452010-04-12 16:05:49 -0700570 <li>Next, install Java: <pre>apt-get install sun-java6-jdk</pre></li>
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700571 <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>
Scott Main06cf15e2010-10-28 00:02:31 -0700576 <li>Follow the steps given in previous sections to install the SDK
Dirk Doughertyee58d1b2009-10-16 15:25:15 -0700577 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>
Dirk Dougherty7b229ef2010-03-26 17:32:26 -0700590</ul>