建立构建环境

本节将介绍如何设置你的本地工作环境来构建Android的源文件。您必须使用Linux;无论是MacOS的或Windows下的建筑不被支持。记住的重要转变到在/usr/bin/python的二进制为好。

对于整个代码审查和代码更新过程的概述,请参阅补丁的生命

选择一个分支

为构建环境有些要求是由源代码,你打算编译的版本确定。有关可用树枝的完整列表,请参阅版本。您也可以选择下载并构建最新的源代码(称为master ),在这种情况下,你简单地忽略分支规范,当您初始化存储库。

选择一个分支之后,按照以下设置您的构建环境中的相应说明。

建立一个Linux构建环境

这些说明适用于所有分支,包括master

Android的版本是在内部常规检测在Ubuntu LTS(14.04)和Debian测试。大多数其他发行版应该有必要的构建工具可用。

对于姜饼(2.3.x版本)和更高版本,包括master分支,需要一个64位的环境。旧版本可以在32位系统上进行编译。

安装所需的程序包(Ubuntu的18.04)

你需要的Ubuntu的64位版本。

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

安装所需的程序包(Ubuntu的14.04)

你需要的Ubuntu的64位版本(14.04,推荐)。

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

安装所需的程序包(Ubuntu的12.04)

您可以使用Ubuntu 12.04搭建旧版本的Android。 12.04版本不支持master或近期发布。

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

安装所需的程序包(Ubuntu的10.04-11.10)

建立在Ubuntu 10.04-11.10不再支持,但可能是建立AOSP的旧版本很有用。

sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc

在Ubuntu 10.10:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

在Ubuntu 11.10:

sudo apt-get install libx11-dev:i386

配置USB访问

安装的社区维护默认设置的udev按照该指令适用于所有Android设备的规则,设立了开发的装置

使用单独的输出目录

默认情况下,每个构建器的输出被存储在out/匹配源树的子目录。您可以通过导出覆盖此OUT_DIR环境变量。例如:

export OUT_DIR=out_mytarget

这将导致构建的输出被存储在out_mytarget/源树的子目录。当使用相同的源代码树,以建立多个目标,建议使用一个单独的OUT_DIR每个目标。

在一些机器上具有多个存储设备,存储所述源文件和在单独的卷的输出时生成是更快。对于额外的性能,输出可以存储速度,而不是崩溃的鲁棒性优化的文件系统上,因为所有文件可如果文件系统被破坏再生。

要这样设置,出口OUT_DIR_COMMON_BASE变量点到你的输出目录将被存储的位置。

export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>

每个单独的源代码树的输出目录保持源代码树的目录命名。举例来说,如果你有源树/source/master1/source/master2如果OUT_DIR_COMMON_BASE设为/output ,输出目录是/output/master1/output/master2

避免存储在具有相同名称的目录多个源代码树,作为源树木最终会共享一个输出目录,具有不可预知的结果。这是仅支持果冻豆(4.1)和更高,包括master分支。

下一页:下载源代码

构建环境是好走!继续执行下载源