建立构建环境

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本节介绍如何设置本地工作环境以构建 Android 源文件。你必须使用 Linux;不支持在 MacOS 或 Windows 下构建。请记住对/usr/bin/python二进制文件的重要更改。

有关整个代码审查和代码更新过程的概述,请参阅补丁的生命周期

选择分行

构建环境的一些要求由您计划编译的源代码版本决定。有关可用分支的完整列表,请参阅内部版本号。您还可以选择下载并构建最新的源代码(称为master ),在这种情况下,您只需在初始化存储库时省略分支规范。

选择分支后,按照下面的相应说明设置您的构建环境。

设置 Linux 构建环境

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

Android 构建在 Ubuntu LTS (14.04) 和 Debian 测试中定期在内部进行测试。大多数其他发行版应该具有可用的所需构建工具。

对于 Gingerbread (2.3.x) 及更高版本,包括master分支,需要 64 位环境。旧版本可以在 32 位系统上编译。

安装所需的包(Ubuntu 18.04)

您需要 64 位版本的 Ubuntu。

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)

您需要 64 位版本的 Ubuntu(推荐 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。 master版本或最新版本不支持版本 12.04。

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

按照设置用于开发的设备的说明,为所有 Android 设备安装一组由社区维护的默认udev规则。

使用单独的输出目录

默认情况下,每个构建的输出都存储在匹配源树的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

避免将多个源代码树存储在同名目录中,因为源代码树最终会共享一个输出目录,结果不可预知。这仅在 Jelly Bean (4.1) 及更高版本上受支持,包括master分支。

下一篇:下载源码

您的构建环境很好!继续下载源代码