本节将介绍如何设置你的本地工作环境来构建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
分支。
下一页:下载源代码
构建环境是好走!继续执行下载源。