page.title=Android SDK
page.tags="download"
page.template=sdk
header.hide=1
page.metaDescription=Download the official Android SDK to develop apps for Android-powered devices.


sdk.linux32_bundle_download=adt-bundle-linux-x86-20130522.zip
sdk.linux32_bundle_bytes=439988972
sdk.linux32_bundle_checksum=1fdd8d7537ab9217d61d32ab912f0243

sdk.linux64_bundle_download=adt-bundle-linux-x86_64-20130522.zip
sdk.linux64_bundle_bytes=440275051
sdk.linux64_bundle_checksum=e38751ff372a8d6208fcef5659133e98

sdk.mac64_bundle_download=adt-bundle-mac-x86_64-20130522.zip
sdk.mac64_bundle_bytes=409047751
sdk.mac64_bundle_checksum=3f4d05206d66e402e87b27a6b3dcf0f9

sdk.win32_bundle_download=adt-bundle-windows-x86-20130522.zip
sdk.win32_bundle_bytes=446736316
sdk.win32_bundle_checksum=53345fa4121fa58cc048f66c3af3bae9

sdk.win64_bundle_download=adt-bundle-windows-x86_64-20130522.zip
sdk.win64_bundle_bytes=446864400
sdk.win64_bundle_checksum=b28817f62e7f54e3c683841b61b65564



sdk.linux_download=android-sdk_r22.0.1-linux.tgz
sdk.linux_bytes=105617062
sdk.linux_checksum=56ed27d456b4f0e0d3090b24f9b06757

sdk.mac_download=android-sdk_r22.0.1-macosx.zip
sdk.mac_bytes=77206237
sdk.mac_checksum=5c20497d7f7b9d28ee30e57cbf769c8c

sdk.win_download=android-sdk_r22.0.1-windows.zip
sdk.win_bytes=113483496
sdk.win_checksum=cb7f7703450afa5914fb4b8b8332a9f3

sdk.win_installer=installer_r22.0.1-windows.exe
sdk.win_installer_bytes=93479015
sdk.win_installer_checksum=81621d3b164f81f91e066011b325f88f





@jd:body

<style type="text/css">
  .offline {display:none;}
</style>




<div style="position:relative;height:660px;">


<div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
<div class="col-13" style="margin:0;">&nbsp;</div><!-- provides top margin for content -->

<h1 id="tos-header" style="margin-top:0">Get the Android SDK</h1>



<p class="sdk-terms-intro">Before installing the Android SDK, you must agree to the following terms and conditions.</p>

<div class="sdk-terms" onfocus="this.blur()">
<h2 class="norule">Terms and Conditions</h2>
This is the Android Software Development Kit License Agreement

<h3>1. Introduction</h3>
1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.

1.2 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.

1.3 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.


<h3>2. Accepting this License Agreement</h3>
2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the SDK if you do not accept this License Agreement.

2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.

2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK.

2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.


<h3>3. SDK License from Google</h3>
3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable and non-exclusive license to use the SDK solely to develop applications to run on the Android platform.

3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.

3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement.  Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.

3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.

3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.

3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.

3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.

3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.


<h3>4. Use of the SDK by You</h3>
4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.

4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).

4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.

4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.

4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.

4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.


<h3>5. Your Developer Credentials</h3>
5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.


<h3>6. Privacy and Information</h3>
6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.

6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy.


<h3>7. Third Party Applications</h3>
7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.

7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.

7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.


<h3>8. Using Android APIs</h3>
8.1 Google Data APIs

8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.

8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.


<h3>9. Terminating this License Agreement</h3>
9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.

9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.

9.3 Google may at any time, terminate this License Agreement with you if:
(A) you have breached any provision of this License Agreement; or
(B) Google is required to do so by law; or
(C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or
(D) Google decides to no longer provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.

9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.


<h3>10. DISCLAIMER OF WARRANTIES</h3>
10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.

10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.

10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.


<h3>11. LIMITATION OF LIABILITY</h3>
11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.


<h3>12. Indemnification</h3>
12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.


<h3>13. Changes to the License Agreement</h3>
13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.


<h3>14. General Legal Terms</h3>
14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.

14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.

14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.

14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.

14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.

14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.

14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.


<em>November 13, 2012</em>
</div>




<div id="next-steps" style="display:none;position:absolute;width:inherit">
  <p>Now that you've downloaded the Android SDK, you don't need to return here
  for SDK updates. The SDK tools allow you to
  install additional packages and future updates from the SDK Manager.</p>
  <p>For instructions about setting up your Android SDK for the first time,
  read <a id="next-link" href="{@docRoot}sdk/installing/bundle.html">Setting
  Up the ADT Bundle</a>.</p>

</div><!-- end next-steps -->



<div id="sdk-terms-form">
<p>
<input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
<label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
</p>
<p id="bitpicker" style="display:none">
  <input id="32" onclick="onAgreeChecked()" type="radio" name="bit" value="32">
    <label for="32">32-bit</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input id="64" onclick="onAgreeChecked()" type="radio" name="bit" value="64">
    <label for="64">64-bit</label>
</p>
<p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
</div>



</div><!-- end TOS -->



<div class="wrap" id="landing">

<div class="col-13">&nbsp;</div><!-- provides top margin for content -->

<div class="col-6" style="margin-left:0">

<h1 style="margin-top:0">Get the Android SDK</h1>


<p>The Android SDK provides you the API libraries and developer tools necessary to build, test,
  and debug apps for Android.</p>

<p>If you're a new Android developer, we recommend you download the ADT Bundle
to quickly start developing apps. It includes the essential
Android SDK components and a version of the Eclipse IDE with built-in
<b>ADT (Android Developer Tools)</b> to
streamline your Android app development.</p>

<p>With a single download, the ADT Bundle
includes everything you need to begin developing apps:</p>
<ul>
<li>Eclipse + ADT plugin</li>
<li>Android SDK Tools</li>
<li>Android Platform-tools</li>
<li>The latest Android platform</li>
<li>The latest Android system image for the emulator</li>
</ul>


<!-- this appears when viewing the offline docs -->
<p class="offline">
To get the ADT Bundle or stand-alone SDK Tools, please visit the web site at <a
href="http://developer.android.com/sdk/index.html">developer.android.com/sdk/</a>
</p>

</div><!-- end col-6 (left column) -->



<div class="col-7" style="margin-right:0;">
  <img src="{@docRoot}images/sdk-cube.png" alt="" height=264 />

<!-- this appears when viewing the online docs -->
<div class="online">

<a class="big button subtitle" id="download-bundle-button"
href="" style="display:none;width:265px;margin:0 auto;display:block" ></a>




<p id="not-supported">Choose the SDK package for your OS from the table below.</p>

</div>
<!-- end online -->

</div><!-- end col-7 -->






<!-- alternative SDK options -->
<div class="col-13" style="margin:0;">


<!-- this appears only when viewing the online docs -->
<div class="online caution">
<h3 style="margin:0 0 10px 0;font-size:14px">Android Studio Early Access Preview</h3>

<p>A new Android development environment called Android Studio,
based on IntelliJ IDEA, is now available as an <strong>early access preview</strong>.
For more information, see
<a href="{@docRoot}sdk/installing/studio.html">Getting Started with Android Studio</a>.</p>

</div>

<p>If you prefer to use an existing version of Eclipse or another IDE,
you can instead take a more customized approach to installing
the Android SDK. See the following instructions:</p>


<h4 id="ExistingIDE"><a href='' class="expandable"
  onclick="toggleExpandable(this,'.myide');hideExpandable('.pax,.reqs');return false;"
  >USE AN EXISTING IDE</a></h4>

<div class="col-13 myide" style="margin:0 0 15px;display:none;">

<p>If you already have an IDE you want to use for Android app development,
setting up a new SDK requires that you download the SDK Tools, then
select additional Android SDK packages to install (such as the Android platform
and system image). If you'll be using an existing version of Eclipse, then you can add
the ADT plugin to it.</p>
  <p>
<a class="button subtitle" id="download-tools-button" href="" style="display:none" ></a>
  </p>


</div>





<h4 id="Requirements"><a href='' class="expandable"
  onclick="toggleExpandable(this,'.reqs');hideExpandable('.pax,.myide');return false;"
  >SYSTEM REQUIREMENTS</a></h4>

<div class="col-6 reqs" style="margin:0 0 15px;display:none;">
<h5>Operating Systems</h5>
<ul>
  <li>Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)</li>
  <li>Mac OS X 10.5.8 or later (x86 only)</li>
  <li>Linux (tested on Ubuntu Linux, Lucid Lynx)
    <ul>
      <li>GNU C Library (glibc) 2.7 or later is required.</li>
      <li>On Ubuntu Linux, version 8.04 or later is required.</li>
      <li>64-bit distributions must be capable of running 32-bit applications.</li>
    </ul>
  </li>
</ul>
</div>

<div class="col-6 reqs" style="margin:0 0 15px 20px;display:none;">
<h5>Eclipse IDE</h5>
    <ul>
      <li><a href="http://eclipse.org/mobile/">Eclipse</a> 3.6.2 (Helios) or greater
<p class="note"><strong>Note:</strong> Eclipse 3.5 (Galileo) is no longer
supported with the latest version of ADT.</p></li>
      <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included
in most Eclipse IDE packages) </li>
      <li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK 6</a>
        (JRE alone is not sufficient)</li>
      <li><a href="{@docRoot}tools/sdk/eclipse-adt.html">Android Development Tools plugin</a>
(recommended)</li>
      <li><strong>Not</strong> compatible with GNU Compiler for Java (gcj)</li>
    </ul>


<h5>Other development environments</h5>
    <ul>
      <li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK 6</a>
        (JRE alone is not sufficient)</li>
      <li><a href="http://ant.apache.org/">Apache Ant</a> 1.8 or later</li>
      <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
    </ul>

<p class="note"><strong>Note:</strong> Some Linux distributions may include JDK 1.4 or Gnu Compiler
for Java, both of which are <em>not</em> supported for Android development. </p>
</div><!-- end col-7 reqs -->


