This document describes how to set up your local work
environment, how to use Repo to get the Android files, and how to build
the files on your machine.
Related reading:
- For an overview of the entire code-review and code-update process,
see .
- For reference details about Repo, see .
What is in the source?
For a description of all the projects that make up the Android source
code, see . To see snapshots and histories of the files available in the
public Android repositories, visit the web
interface.
The source is approximentely 2.1GB in size. You will need 6GB
free to complete the build.
Setting up your machine
To build the Android source files, you will need to use Linux or Mac
OS. Building under Windows is not currently supported.
Linux
The
Android build is routinely tested on recent
versions of Ubuntu (6.06 and later), but reports
of successes or failures on other distributions
are welcome.
Ubuntu Linux (32-bit
x86)
To set up your Linux development environment, make sure you have the
following:
- Required
Packages:
- Git
1.5.4 or newer and
the GNU Privacy Guard.
- JDK
5.0, update 12 or higher. Java 6 is not supported, because of
incompatibilities with
@Override.
- flex, bison, gperf, libsdl-dev,
libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl.
$ sudo apt-get install
git-core gnupg
sun-java5-jdk
flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev
build-essential zip curl libncurses5-dev
zlib1g-dev
- You might also want Valgrind, a
tool that will help you find memory leaks, stack corruption, array
bounds overflows, etc.
$
sudo apt-get install valgrind
- Intrepid
(8.10) users may need a newer version
of libreadline:
$ sudo apt-get install
lib32readline5-dev
The Android build
requires a 32-bit build environment as well as some other tools:
- Required Packages:
- Git, JDK, flex, and the other packages as listed above in the i386
instructions:
- JDK 5.0, update 12 or higher. Java 6 is not supported,
because of incompatibilities with @Override.
- Pieces from the 32-bit cross-building environment
- X11 development
$ sudo apt-get install git-core
gnupg flex bison gperf build-essential zip curl sun-java5-jdk zlib1g-dev gcc-multilib
g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs
x11proto-core-dev
libx11-dev
lib32readline5-dev
- Set the system to use the right version of java by default:
$ sudo update-java-alternatives -s
java-1.5.0-sun
- X11: Ubuntu doesn't have packages for the X11 libraries, but that
can be worked around with the following command:
$ sudo ln -s
/usr/lib32/libX11.so.6 /usr/lib32/libX11.so
Running Linux in a
virtual machine
If you are running Linux in a virtual machine, you
will need at least 1.5GB of RAM and 10GB or more of disk space in order to
build the Android tree.
Other Linux
There's
no reason why Android cannot be built on
non-Ubuntu systems. Please send any success or
- Python 2.4, which you can
- JDK 5.0, update 12 or higher, which you can . Java 6 is not supported, because of
incompatibilities with @Override.
- Git 1.5.4 or newer. You can find it at
Anything
missing from this list? Please let us know!
Mac OS
Requirements:
- To build the Android
files in a Mac OS environment, you need an Intel/x86 machine. The
Android build system and tools do not support the obsolete PowerPC
architecture.
- Android must be built on
a case-sensitive file system.
- We recommend that you build Android on a partition that has been
formatted with the "Case-sensitive Journaled HFS+" file system:
- A case-sensitive file system is required because the sources
contain files that differ only in case.
- Journaled systems are more robust. (This is optional, but
recommended.)
- HFS+ is required to successfully build Mac OS applications such
as the Android Emulator for OS X.
- If you want to avoid partitioning/formatting your hard drive, you
can use a case-sensitive disk image instead.
To set up your Mac OS development environment, follow these
steps:
- Install the XCode version 2.4 or later from http://developer.apple.com/ We recommend version 3.0 or newer.
- Install MacPorts. To do this:
- Download the tar file from and untar the files.
- Run the following:
$ ./configure
$
make
$
sudo
make install
- Make sure that /opt/local/bin is in
your path before /usr/bin. by
running
$ echo $PATH
If
you don't see /opt/local/bin, edit
$HOME/.bash_profile
and add the line
export
PATH=/opt/local/bin:$PATH
(or the equivalent for other
shells) after any other PATH-related lines. To
verify that your path is now correct, open a new terminal and
run echo $PATH again.
- Ask MacPorts to update itself:
$
sudo
port selfupdate
- Get the following packages from port:
$ POSIXLY_CORRECT=1
sudo port
install gmake
libsdl
git-core gnupg
- Upgrade GNU make to 3.81 or later by running. Mac OS doesn't
come with a recent enough version.
$ sudo ln -s gmake
/opt/local/bin/make
- Set an appropriate per-process file descriptor limit. To do this,
add the following lines to your .bash_profile file:
# set
the number of open files to be 1024
ulimit -S -n 1024
Installing Repo
Repo is a tool that makes it
easier to work with Git in the context of Android. For more information
about Repo, see .
To install, initialize, and configure Repo,
follow these steps:
- Make sure you have a
~/bin directory
in your home directory, and check to be sure that this bin directory is
in your path:
$ cd ~
$ mkdir bin
$ echo $PATH
- Download the repo script and make
sure it is executable:
$ curl
>~/bin/repo
$ chmod a+x
~/bin/repo
Initializing a Repo
client
- Create an empty directory to hold
your working files:
$ mkdir
mydroid
$ cd mydroid
- Run repo
init to bring down the latest version of Repo with all
its most recent bug fixes. You must specify a URL for the
manifest:
$ repo
init -u
git://android.git.kernel.org/platform/manifest.git
- If you would like to check out a
branch other than "master", specify it with -b,
like:
$ repo
init -u
git://android.git.kernel.org/platform/manifest.git -b
cupcake
- When prompted, configure Repo with
your real name and email address. If you plan to submit code, use an
email address that is associated with a .
A successful initialization will end
with a message such as
repo initialized in
/mydroid
Your client directory should now
contain a .repo directory
where files such as the manifest will be kept.
What will my name and email be
used for?
To
use the Gerrit code-review tool, you
will need an email address that is connected with a (which
does not have to be a Gmail address). Make sure this is a
live address at which
you can receive messages. The real name that you provide here
will show up in attributions for your code
submissions.
What is a manifest file?
The
Android source files are divided among a number of different repositories.
A manifest file
contains a mapping of where the files from these repositories will be
placed within your working directory when you synchronize your files.
Getting the files
To pull down files to your working
directory from the repositories as specified in the default manifest, run
$ repo sync
For more about repo sync and other Repo
commands, see .
The Android source files will be
located in your working directory under their
names.
Building the code
To build the files, run make from within your
working directory:
$ cd
~/mydroid
$ make
If your build fails, complaining about a missing "run-java-tool", try
setting the ANDROID_JAVA_HOME env var to $JAVA_HOME before making.
E.g.,
$ export
ANDROID_JAVA_HOME=$JAVA_HOME
Using an IDE
- for Android platform development
Troubleshooting
ImportError: No
module named readline
Mac users getting this should install Python
2.5.2.
Linux users that installed Python from source,
make sure the dependencies for libreadline are
installed, and rebuild Python.
What is next?
To
learn about reporting an issue and searching previously reported issues,
see . For
information about editing the files and uploading changes to the
code-review server, see .
阅读(2261) | 评论(1) | 转发(0) |