aboutsummaryrefslogtreecommitdiff
path: root/en/setup/requirements.html
blob: 69a60a27020d6a015055e51994ef823ac7609d2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<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>

<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>