| <html devsite> |
| <head> |
| <title>Requirements</title> |
| <meta name="project_path" value="/_project.yaml" /> |
| <meta name="book_path" value="/_book.yaml" /> |
| </head> |
| <body> |
| <!-- |
| Copyright 2017 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| |
| |
| <p>Before you download and build the Android source, ensure your system meets |
| the following requirements. Then see <a href="initializing.html">Establishing a |
| Build Environment</a> for installation instructions by operating system.</p> |
| |
| <h2 id=hardware-requirements>Hardware requirements</h2> |
| |
| <p>Your development workstation should meet or exceed these hardware requirements:</p> |
| |
| <ul> |
| |
| <li>A 64-bit environment is required for Gingerbread (2.3.x) and newer |
| versions, including the master |
| branch. You can compile older versions on 32-bit systems. |
| </li> |
| |
| <li>At least 100GB of free disk space to checkout the code and an extra 150GB |
| to build it. If you conduct multiple builds or employ ccache, you will need |
| even more space.</p> |
| </li> |
| |
| <li>If you are running Linux in a virtual machine, you need at |
| least 16GB of RAM/swap. |
| </li> |
| |
| </ul> |
| |
| <h2 id=software-requirements>Software requirements</h2> |
| |
| <p>The <a |
| href="https://android.googlesource.com/">Android Open Source Project |
| (AOSP)</a> <code>master</code> branch is traditionally developed and tested |
| on Ubuntu Long Term Support (LTS) releases, but other distributions may be |
| used. See the list below for recommended versions.</p> |
| |
| <p>You workstation must have the software listed below. See <a |
| href="initializing.html">Establishing a Build Environment</a> for |
| additional required packages and the commands to install them.</p> |
| |
| <h3 id=latest-version>OS and JDK</h3> |
| |
| <p>If you are developing against the AOSP <code>master</code> branch, use one |
| of these operating systems: Ubuntu 14.04 (Trusty) or Mac OS v10.10 (Yosemite) |
| or later with Xcode 4.5.2 and Command Line Tools.</p> |
| |
| <p>For the Java Development Kit (JDK), note the <code>master</code> branch of |
| Android in AOSP comes with a prebuilt version of OpenJDK; so no additional |
| installation is required. Older versions require a separate install.</p> |
| |
| <p>See <a href="#older-versions">Packages for older versions</a>. |
| |
| <h3 id=packages>Key packages</h3> |
| <ul> |
| <li>Python 2.6 -- 2.7 from <a href="http://www.python.org/download/">python.org</a></li> |
| <li>GNU Make 3.81 -- 3.82 from <a href="http://ftp.gnu.org/gnu/make/">gnu.org</a> |
| <li>Git 1.7 or newer from <a href="http://git-scm.com/download">git-scm.com</a></li> |
| </ul> |
| |
| <h3 id=binaries>Device binaries</h3> |
| <p>Download previews, factory images, drivers, over-the-air (OTA) updates, and |
| other blobs below. See <a |
| href="/setup/building.html#obtaining-proprietary-binaries">Obtaining |
| proprietary binaries</a> for additional details.</p> |
| <ul> |
| <li><a href="https://developers.google.com/android/blobs-preview">Preview |
| binaries (blobs)</a> - for AOSP <code>master</code> branch |
| development</li> |
| <li><a href="https://developers.google.com/android/images">Factory |
| images</a> - for the supported devices running tagged AOSP release |
| branches</li> |
| <li><a href="https://developers.google.com/android/drivers">Binary |
| hardware support files</a> - for devices running tagged AOSP release |
| branches</li> |
| </ul> |
| |
| <h3 id=toolchain>Build toolchain</h3> |
| |
| <p>Android 8.0 and later support only <a |
| href="https://developer.android.com/ndk/guides/standalone_toolchain.html#working_with_clang">Clang/LLVM</a> |
| for building the Android platform. Join the <a |
| href="https://groups.google.com/forum/#!forum/android-llvm">android-llvm</a> |
| group to pose questions and get help. Report NDK/compiler issues at the <a |
| href="https://github.com/android-ndk/ndk">NDK GitHub</a>.</p> |
| |
| <p>For the |
| <a href="https://developer.android.com/ndk/guides/index.html">Native |
| Development Kit (NDK)</a> and legacy kernels, GCC 4.9 included |
| in the AOSP master branch (under <code>prebuilts/</code>) may also be used.</p> |
| |
| <h3 id=older-versions>Packages for older versions</h3> |
| |
| <p>The sections below provide relevant operating systems and JDK packages for |
| older versions of Android.</p> |
| |
| <h4 id=operating-system>Operating system</h4> |
| |
| <p>Android is typically built with a GNU/Linux or Mac OS operating system. It is |
| also possible to build Android in a virtual machine on unsupported systems such |
| as Windows.</br> |
| |
| <h5 id=linux>GNU/Linux</h5> |
| |
| <ul> |
| <li>Android 6.0 (Marshmallow) - AOSP master: Ubuntu 14.04 (Trusty)</li> |
| <li>Android 2.3.x (Gingerbread) - Android 5.x (Lollipop): Ubuntu 12.04 (Precise)</li> |
| <li>Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu 10.04 (Lucid)</li> |
| </ul> |
| |
| <h5 id=mac>Mac OS (Intel/x86)</h5> |
| |
| <ul> |
| <li>Android 6.0 (Marshmallow) - AOSP master: Mac OS v10.10 (Yosemite) or |
| later with Xcode 4.5.2 and Command Line Tools</li> |
| <li>Android 5.x (Lollipop): Mac OS v10.8 (Mountain Lion) with Xcode 4.5.2 |
| and Command Line Tools</li> |
| <li>Android 4.1.x-4.3.x (Jelly Bean) - Android 4.4.x (KitKat): Mac OS v10.6 |
| (Snow Leopard) or Mac OS X v10.7 (Lion) and Xcode 4.2 (Apple's Developer |
| Tools)</li> |
| <li>Android 1.5 (Cupcake) - Android 4.0.x (Ice Cream Sandwich): Mac OS |
| v10.5 (Leopard) or Mac OS X v10.6 (Snow Leopard) and the Mac OS X v10.5 |
| SDK</li> |
| </ul> |
| |
| <p><b>Note</b>: consider building on GNU/Linux, not another |
| operating system. The Android build system normally uses ART, |
| running on the build machine, to pre-compile system dex files. Since |
| ART is able to run only on Linux, the build system skips this |
| pre-compilation step on non-Linux operating systems, resulting in an |
| Android build with reduced performance.</p> |
| |
| <h4 id=jdk>JDK</h4> |
| |
| <p>See <a href="initializing.html#installing-the-jdk">Installing the JDK</a> |
| for the prebuilt path and installation instructions for older versions.</p> |
| <ul> |
| <li>Android 7.0 (Nougat) - Android 8.0 (O release): Ubuntu - <a |
| href="http://openjdk.java.net/install/">OpenJDK 8</a>, Mac OS - <a |
| href="http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html#jdk-8u45-oth-JPR">jdk |
| 8u45 or newer</a></li> |
| <li>Android 5.x (Lollipop) - Android 6.0 (Marshmallow): Ubuntu - <a |
| href="http://openjdk.java.net/install/">OpenJDK 7</a>, Mac OS - <a |
| href="https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u71-oth-JPR">jdk-7u71-macosx-x64.dmg</a></li> |
| <li>Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat): Ubuntu - <a |
| href="http://www.oracle.com/technetwork/java/javase/archive-139210.html">Java JDK 6</a>, Mac OS - <a |
| href="http://support.apple.com/kb/dl1572">Java JDK 6</a></li> |
| <li>Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu - <a |
| href="http://www.oracle.com/technetwork/java/javase/archive-139210.html">Java JDK 5</a></li> |
| </ul> |
| |
| <h4 id=make>Make</h4> |
| <p> Android 4.0.x (Ice Cream Sandwich) and earlier will need to <a |
| href="initializing.html#reverting-from-make-382">revert from make 3.82</a> |
| to avoid build errors.</p> |
| |
| </body> |
| </html> |