page.title=Download Android Studio and SDK Tools
page.tags=sdk, android studio
page.template=sdk
section.landing=true
header.hide=1
nonavpage=true
fullpage=true
page.image=images/cards/android-studio_2x.png
page.metaDescription=Download the official Android IDE and developer tools to build apps for Android phones, tablets, wearables, TVs, and more.

@jd:body

<style>
.download-bundle-button {line-height:18px;}
.download-bundle-button .small {font-size: 12px; opacity: 0.7;}
</style>

 <section class="dac-expand dac-hero dac-light">
  <div class="wrap">
    <div class="cols dac-hero-content">
      <div class="col-1of2 col-push-1of2 dac-hero-figure">
        <img class="dac-hero-image" src="/images/develop/hero_image_studio5_2x.png" srcset="/images/develop/hero_image_studio5.png 1x, /images/develop/hero_image_studio5_2x.png 2x">
      </div>
      <div class="col-1of2 col-pull-1of2" style="margin-bottom:40px">
<h1 class="dac-hero-title">Android Studio<br>
<span style="font-size: 65%;">The Official IDE for Android</span></h1>

<p class="dac-hero-description">Android Studio provides the fastest tools for
building apps on every type of Android device.</p>

<p class="dac-hero-description">World-class code editing, debugging,
performance tooling, a flexible build system, and an instant build/deploy
system all allow you to focus on building unique and high quality apps.</p>

<p style="margin-top:24px">
  <a class="landing-button green download-bundle-button"
    data-modal-toggle="studio_tos">Download Android Studio 2.0<br>
  <span class="small"></span></a>
</p>

<p style="margin:24px 0 0">
  <a class="dac-hero-cta" href="{@docRoot}tools/studio/index.html">
  <span class="dac-sprite dac-auto-chevron"></span>
  Read the docs</a>
  <a class="dac-hero-cta" href="{@docRoot}tools/revisions/studio.html">
  <span class="dac-sprite dac-auto-chevron"></span>
  See the release notes</a>
</p>
      </div>
    </div>
  </div>
</section>




<!-- start studio download modal -->
<div data-modal="studio_tos" class="dac-modal" id="langform">
  <div class="dac-modal-container">
    <div class="dac-modal-window">
      <header class="dac-modal-header">
        <div class="dac-modal-header-actions">
          <button class="dac-modal-header-close" data-modal-toggle></button>
        </div>
        <section class="dac-swap-section dac-active dac-down">
          <h2 class="norule dac-modal-header-title" id="tos-header">Download Android Studio</h2>
        </section>
      </header>
      <section class="dac-swap-section dac-active dac-left">
          <section class="dac-modal-content">
            <fieldset class="dac-form-fieldset">
              <div class="cols">
                <div class="col-2of2 tos-leftCol">
                  <p class="sdk-terms-intro">Before downloading,
                  you must agree to the following terms
                  and conditions.</p>
                </div>

<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 the 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 the License Agreement. The 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 A "compatible implementation" means any Android device that (i) complies with the Android Compatibility Definition document, which can be found at the Android compatibility website (http://source.android.com/compatibility) and which may be updated from time to time; and (ii) successfully passes the Android Compatibility Test Suite (CTS).

1.4 "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 the License Agreement. You may not use the SDK if you do not accept the License Agreement.

2.2 By clicking to accept, you hereby agree to the terms of the 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 the 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 the 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 the License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable, non-exclusive, and non-sublicensable license to use the SDK solely to develop applications for compatible implementations of Android.

3.2 You may not use this SDK to develop applications for other platforms (including non-compatible implementations of Android) or to develop another SDK. You are of course free to develop applications for other platforms, including non-compatible implementations of Android, provided that this SDK is not used for that purpose.

3.3 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.4 You may not use the SDK for any purpose not expressly permitted by the 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.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 the 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 the 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 the 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) the 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 the 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, the 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 The License Agreement will continue to apply until terminated by either you or Google as set out below.

9.2 If you want to terminate the 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 the License Agreement with you if:
(A) you have breached any provision of the 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 the 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 the 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 the 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 The 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 the 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 the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the 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 the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the 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 the 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 the 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 the License Agreement without the prior written approval of the other party.

14.7 The License Agreement, and your relationship with Google under the 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 the 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 20, 2015</em>
</div><!-- close sdk-terms -->



<div id="next-steps" style="display:none;position:absolute;width:inherit">
  <p>You're just a few steps away from building apps for Android!</p>
  <p>In a moment, you'll be redirected to
  <a id="next-link" href="{@docRoot}sdk/installing/index.html">Installing the Android SDK</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><a href="" class="dac-button dac-raised dac-primary disabled ndk" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
</div><!-- end sdk-terms-form -->


</div><!-- end cols -->

            </fieldset>
          </section>
      </section>
    </div><!-- end dac-modal-window -->
  </div><!-- end dac-modal-container -->
</div><!-- end #langform, .dac-modal -->
<!-- end studio_tos modal -->

<div id="useOldTemplates" class="actions-bar dac-expand dac-invert">
  <div class="wrap dac-offset-parent">
    <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#features">
      <i class="dac-sprite dac-arrow-down-gray"></i>
    </a>
    <div class="actions">
      <div><a href="#features">
        <span class="dac-sprite dac-auto-chevron-large"></span>
        Features
      </a></div>
      <div><a href="#latest">
        <span class="dac-sprite dac-auto-chevron-large"></span>
        Latest
      </a></div>
      <div><a href="#resources">
        <span class="dac-sprite dac-auto-chevron-large"></span>
        Resources
      </a></div>
      <div><a href="#videos">
        <span class="dac-sprite dac-auto-chevron-large"></span>
        Videos
      </a></div>
      <div><a href="#downloads">
        <span class="dac-sprite dac-auto-chevron-large"></span>
        Download Options
      </a></div>
    </div><!-- end .actions -->
  </div><!-- end .wrap -->
</div>


<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
  <div class="wrap dac-offset-parent">
    <a class="dac-fab dac-scroll-button" data-scroll-button href="#features">
      <i class="dac-sprite dac-arrow-down-gray"></i>
    </a>
    <ul class="dac-actions">
      <li class="dac-action">
        <a class="dac-action-link" href="#features">
          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
          Features
        </a>
      </li>
      <li class="dac-action">
        <a class="dac-action-link" href="#latest">
          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
          Latest
        </a>
      </li>
      <li class="dac-action">
        <a class="dac-action-link" href="#resources">
          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
          Resources
        </a>
      </li>
      <li class="dac-action">
        <a class="dac-action-link" href="#videos">
          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
          Videos
        </a>
      </li>
      <li class="dac-action">
        <a class="dac-action-link" href="#downloads">
          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
          Download Options
        </a>
      </li>
    </ul>
  </div><!-- end .wrap -->
</div><!-- end new templates -->



<section id="features" class="dac-section dac-small">
<div class="dac-toggle">

<div class="wrap feature">
  <div class="cols dac-hero-content">
    <div class="col-1of2 col-push-1of2 dac-hero-figure">
      <img src="/images/tools/studio/studio-feature-instant-run_2x.png">
    </div>
    <div class="col-1of2 col-pull-1of2">
      <div class="dac-hero-tag"></div>
      <h1 class="dac-hero-title">Instant Run</h1>
<p class="dac-hero-description">Push code and resource
changes to your app running on a device or emulator and see the
changes instantly come to life.</p>
<p class="dac-hero-description">Instant Run dramatically speeds up your edit,
build, and run cycles, keeping you "in the flow."</p>
      <a class="dac-hero-cta"
        href="/tools/building/building-studio.html#instant-run">
        <span class="dac-sprite dac-auto-chevron"></span>
        Learn more</a>
    </div>
  </div>
</div>

<div class="wrap feature">
  <div class="cols dac-hero-content">
    <div class="col-1of2 dac-hero-figure">
      <img src="/images/tools/codeeditor-low.gif" >
    </div>
    <div class="col-1of2">
      <div class="dac-hero-tag"></div>
      <h1 class="dac-hero-title">Intelligent code editor</h1>
<p class="dac-hero-description">Write better code, work faster, and be more productive with an intelligent code editor that helps you each step of the way.</p>
<p class="dac-hero-description">Android Studio is built on IntelliJ and is capable of advanced code completion, refactoring, and code analysis.</p>
    </div>
  </div>
</div>

<div class="wrap feature">
  <div class="cols dac-hero-content">
    <div class="col-1of2 col-push-1of2 dac-hero-figure">
      <img src="/images/tools/studio/studio-feature-emulator_2x.jpg">
    </div>
    <div class="col-1of2 col-pull-1of2">
      <div class="dac-hero-tag"></div>
      <h1 class="dac-hero-title">Fast and feature-rich emulator</h1>
<p class="dac-hero-description">Install and run your apps faster than with a physical device and test your app on virtually any Android device configuration: Android phones, Android tablets, Android Wear, and Android TV devices.</p>
<p class="dac-hero-description">The new Android Emulator 2.0 is faster than ever and allows you to dynamically resize the emulator and access a suite of sensor controls.</p>
      <a class="dac-hero-cta"
        href="/tools/devices/emulator.html">
        <span class="dac-sprite dac-auto-chevron"></span>
        Learn more</a>
    </div>
  </div>
</div>

<div class="wrap feature">
  <div class="cols dac-hero-content">
    <div class="col-1of2 dac-hero-figure">
      <img src="/images/tools/studio/studio-feature-gradle_2x.png">
    </div>
    <div class="col-1of2">
      <div class="dac-hero-tag"></div>
      <h1 class="dac-hero-title">Robust and flexible build system</h1>
<p class="dac-hero-description">Easily configure your project to include code libraries and generate multiple build variants from a single project.</p>
<p class="dac-hero-description">With Gradle, Android Studio offers high-performance build automation, robust dependency management, and customizable build configurations.</p>
      <a class="dac-hero-cta"
        href="/tools/building/plugin-for-gradle.html">
        <span class="dac-sprite dac-auto-chevron"></span>
        Learn more</a>
    </div>
  </div>
</div>

<div class="dac-toggle-content clearfix">

<div class="wrap feature">
  <div class="cols dac-hero-content">
    <div class="col-1of2 col-push-1of2 dac-hero-figure">
      <img src="/images/tools/studio/studio-feature-devices_2x.png">
    </div>
    <div class="col-1of2 col-pull-1of2">
      <div class="dac-hero-tag"></div>
      <h1 class="dac-hero-title">Develop for all&nbsp;<wbr>Android&nbsp;devices</h1>
<p class="dac-hero-description">Target multiple form factors with a single
project to easily share code among your different versions of your app.</p>
<p class="dac-hero-description">Android Studio provides a unified environment
to develop apps for Android phones, tablets, Android Wear, Android TV, and
Android Auto.</p>

      <a class="dac-hero-cta"
        href="/tools/building/configuring-gradle.html#workBuildVariants">
        <span class="dac-sprite dac-auto-chevron"></span>
        Learn more</a>
    </div>
  </div>
</div>

<div class="wrap feature">
  <div class="cols dac-hero-content">
    <div class="col-1of2 dac-hero-figure">
      <img src="/images/tools/studio/studio-feature-github_2x.png">
    </div>
    <div class="col-1of2">
      <div class="dac-hero-tag"></div>
      <h1 class="dac-hero-title">Code templates and GitHub integration</h1>
      <p class="dac-hero-description">Start projects with code templates for patterns such as navigation drawer and view pagers, or import Google code samples from GitHub.</p>
      <p class="dac-hero-description">Android Studio's project wizards make it easier than ever to add code in a new project.</p>
    </div>
  </div>
</div>

</div><!-- end dac-toggle-content -->

<div class="dac-section-links dac-text-center feature-more">
  <div class="dac-section-link" data-toggle="section">
    <span class="dac-toggle-expand">More
      <i class="dac-sprite dac-auto-unfold-more"></i>
    </span>
    <span class="dac-toggle-collapse">Less
      <i class="dac-sprite dac-auto-unfold-less"></i>
    </span>
  </div>
</div>

</div>
</section><!-- end features -->



<section id="latest" class="dac-section dac-light dac-small"><div class="wrap">
  <h1 class="dac-section-title">Latest News</h1>
  <div class="resource-widget resource-flow-layout col-16"
       data-query="collection:tools/landing/latest"
       data-cardSizes="6x6"
       data-items-per-page="3"
       data-initial-results="3"
       data-maxResults="3"></div>
  </div>
</section>

<section id="resources" class="dac-section dac-small"><div class="wrap">
  <h1 class="dac-section-title">Resources</h1>
  <div class="resource-widget resource-flow-layout col-16"
       data-query="collection:tools/landing/resources"
       data-cardSizes="6x6"
       data-initial-results="3"
       data-items-per-page="3"
       data-maxResults="3"></div>
  </div>
</section>

<section class="dac-section dac-light dac-small dac-gray" id="videos"><div class="wrap">
  <h1 class="dac-section-title">Videos</h1>
  <div class="resource-widget resource-flow-layout col-16"
       data-query="collection:develop/landing/tools"
       data-sortOrder="-timestamp"
       data-cardSizes="6x6"
       data-maxResults="3"></div>
  </div>
</section>



<section id="Requirements" class="dac-section dac-light dac-small">
<div class="wrap">

<h2 class="norule">System Requirements</h2>

<div class="cols">

<div class="col-2of6">
<h4>Windows</h4>
<ul>
<li>Microsoft&reg;  Windows&reg;  7/8/10 (32 or 64-bit)</li>
<li>2 GB RAM minimum, 8 GB RAM recommended</li>
<li>2 GB of available disk space minimum (500 MB for IDE + 1.5 GB for
Android SDK and emulator system image). 4 GB Recommended.</li>
<li>1280 x 800  minimum screen resolution</li>
<li>Java Development Kit (JDK) 8</li>
<li>Optional for accelerated emulator: Intel® processor with support for Intel®
VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality</li>
</ul>
</div>

<div class="col-2of6">
<h4>Mac</h4>
<ul>
<li>Mac&reg;  OS X&reg;  10.8.5 or higher, up to 10.11.4 (El Capitan)</li>
<li>2 GB RAM minimum, 8 GB RAM recommended</li>
<li>2 GB of available disk space minimum (500 MB for IDE + 1.5 GB for
Android SDK and emulator system image). 4 GB Recommended.</li>
<li>1280 x 800 minimum screen resolution</li>
<li>Java Development Kit (JDK) 6</li>
</ul>
</div>

<div class="col-2of6">
<h4>Linux</h4>
<ul>
<li>GNOME or KDE desktop
<p><i>Tested on Ubuntu®  12.04, Precise Pangolin (64-bit distribution
capable of running 32-bit applications)</i></li>
<li>GNU C Library (glibc) 2.11 or later</li>
<li>2 GB RAM minimum, 8 GB RAM recommended</li>
<li>2 GB of available disk space minimum (500 MB for IDE + 1.5 GB for
Android SDK and emulator system image). 4 GB Recommended.</li>
<li>1280 x 800 minimum screen resolution</li>
<li>Java Development Kit (JDK) 8</li>
</ul>
</div>

</div>
</div>

</section>

