建立Android5.1.1编译环境

时间:2022-12-12 07:30:18

本节描述如何设置你当地的工作环境 Android源代码文件。 您将需要使用Linux或Mac OS。 注意下 Windows目前不支持。

整个代码复审的概述和代码更新过程。

选择一个分支

有些要求由编译环境所决定的 你打算编译版本的源代码。 看到构建数字为一个完整的清单你可能的分支 选择。 你也可以选择下载和构建最新的源代码 (称为master),在这种情况下,你只会省略分支规范 当你初始化库。

一旦你选择的一个分支,遵循以下适当的指令 设置您的编译环境。

建立一个Linux编译环境

这些指令适用于所有分支机构,包括master。

Android编译系统推荐用 Ubuntu LTS(14.04),但大多数发行版应该有必需的 编译工具。 报告的成功或失败 分布是受欢迎的。

姜饼(2.3.x)和新版本,包括master分支,64位环境中是必需的。 旧版本可以 在32位系统上编译。

注意:看到需求的硬件和的完整列表 软件需求。 然后Ubuntu和Mac的详细说明 下面的操作系统。

安装JDK

Android的master分支Android开源项目(AOSP)需要Java 7。 Ubuntu,使用OpenJDK。

Java 7:最新版本的Android

$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk

更新默认的Java版本运行:

$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac

如果你遇到Java版本错误,设置它 路径中描述错误的 Java版本部分。

Android开发旧版本,下载并安装相应版本的Java JDK:
Java 6:通过KitKat姜饼
Java 5:通过Froyo蛋糕

安装所需要的包(Ubuntu 14.04)

你需要一个64位版本的Ubuntu。 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 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip

注意:使用SELinux政策的工具 分析,也安装python-networkx包中。

需要安装包(Ubuntu 12.04)

你可以使用Ubuntu 12.04建立旧版本的Android。 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——10.04)

在Ubuntu 10.04 10.04是不再支持的基础上,但可能是非常有用的 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访问

在GNU / Linux系统(特别是在Ubuntu系统), 普通用户不能直接默认访问USB设备。 的 这样的系统需要配置为允许访问。

推荐的方法是创建一个文件/etc/udev/rules.d/51-android.rules(作为根用户)。

要做到这一点,运行下面的命令来下载51-android.rules文件附加到这个网站,修改它包含你的用户名,并把它放在正确的位置:

$ wget -S -O - http://source.android.com/source/51-android.rules | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules

这些新规则生效下次设备插入。 因此可能需要拔掉设备和插头 回电脑。

这就是Ubuntu哈迪鹭(8.04。 x LTS)和 Lucid Lynx(10.04。 x LTS)。 其他版本的Ubuntu或其他 变异的GNU / Linux可能需要不同的配置。

使用一个单独的输出目录

默认情况下,每个构建的输出存储在out/匹配的源树的子目录。

在一些机器上使用多个存储设备,构建 更快的存储源文件和输出 单独的卷。 额外的性能,输出 可以存储在一个文件系统优化的速度呢 的鲁棒性,因为所有文件可以重新生成 文件系统崩溃。

设置这个,出口的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分支。

建立一个Mac OS构建环境

在一个默认的安装中,Mac OS上运行case-preserving但不区分大小写的 文件系统。 这种类型的文件系统不支持git,会导致一些 (如git命令git status)行为异常。 正因为如此,我们 建议你总是使用AOSP区分大小写的源文件 文件系统。 可以很容易地使用磁盘映像,下面讨论。

一旦可用适当的文件系统,构建master分支机构在现代 Mac OS环境非常简单。 早些时候分支,包括集成电路, 需要一些额外的工具和sdk。

创建一个区分大小写的磁盘映像

您可以创建一个区分大小写的文件系统内现有的Mac OS环境 使用磁盘映像。 创建图像,启动磁盘 效用并选择“新形象”。 25 gb大小的最小 完整的构建;大量更不会过时。 使用稀疏的图像 节省了空间,同时允许增长之后在必要时。 一定要选择 “区分大小写,日志”的体积格式。

您还可以创建从一个shell使用下面的命令:

# hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg

这将创建一个.dmg(或可能是.dmg.sparseimage)文件,一旦安装,作为推动安卓开发所需的格式。

如果你需要一个更大的体积后,您还可以调整稀疏图像使用下面的命令:

# hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage

磁盘映像命名android.dmg存储在您的主目录,您可以添加辅助函数~/.bash_profile:
挂载映像时执行mountAndroid:

# mount the android file image
function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }

注意:如果您的系统创建了一个.dmg.sparseimage文件,替换~/android.dmg与~/android.dmg.sparseimage。

当您执行卸载它umountAndroid:

# unmount the android file image
function umountAndroid() { hdiutil detach /Volumes/android; }

一旦你安装的android卷,你要做的所有工作。 你可以排出(卸载)就像与外部驱动器。

安装JDK

的master和5.0.xAndroid的分支Android开源项目(AOSP)需要Java 7。 在Mac操作系统,使用jdk-7u71-macosx-x64.dmg。

通过KitKat开发版本的安卓姜饼,和下载 安装的Java 6版本Java JDK。

主分支

建立最新的源代码在Mac OS环境中,您将需要一个英特尔x86 / 机器运行Mac OS X v10.10(约塞米蒂)或后,连同Xcode 4.5.2或晚包括命令行工具。

分支. x

6.0建立。 在Mac OS x和早些时候源环境中,您将需要一个英特尔x86 / 机器运行Mac OS X v10.10(约塞米蒂),连同Xcode 4.5.2和命令行工具。

分支5.0.x

5.0建立。 在Mac OS x和早些时候源环境中,您将需要一个英特尔x86 / 机器运行Mac OS X v10.8(狮),连同Xcode 4.5.2和命令行工具。

分支4.4.x

4.2建立。 在Mac OS x和早些时候源环境中,您将需要一个英特尔x86 / 机器运行Mac OS X v10.6(Snow Leopard)或Mac OS X v10.7(狮子),连同Xcode 4.2(苹果的开发工具)。 尽管狮子不与JDK,它应该 当您试图构建源自动安装。

其余部分为Mac OS只适用于那些希望构建 早些时候分支。

4.0分支。 x和所有分支

构建android - 4.0。 在Mac OS x和早期分支环境,你需要一个 英特尔/ x86机器运行Mac OS X v10.5(豹)或Mac OS X v10.6(Snow Leopard)。 你 需要Mac OS X v10.5 SDK。

安装所需要的包

安装Xcode从苹果开发者网站。 我们建议3.1.4或更新的版本(如。 ,gcc 4.2)。 版本4。 x可能造成困难。 如果你不已经注册为一个苹果开发者,你需要 创建一个苹果ID来下载。
安装MacPorts从macports.org。

注意:确保/opt/local/bin出现在你的路径之前 /usr/bin。 如果不是,请添加以下~/.bash_profile文件:

export PATH=/opt/local/bin:$PATH

注意:如果你没有.bash_profile文件在您的主目录,创建一个。

设置git和GPG MacPorts包:

$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

如果使用Mac OS X v10.4也安装野牛:

$ POSIXLY_CORRECT=1 sudo port install bison

恢复从做3.82

前版本的Android ICS,都有一个错误在gmake 3.82阻止Android建筑。 你可以安装3.81版本使用MacPorts采取以下步骤:

编辑/opt/local/etc/macports/sources.conf添加一行,说

file:///Users/Shared/dports

rsync线以上。 然后创建这个目录:

$ mkdir /Users/Shared/dports

在新dports目录,运行

$ svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/

为您的新本地存储库创建一个端口索引:

$ portindex /Users/Shared/dports

最后,安装旧版本的gmake

$ sudo port install gmake @3.81

设置一个文件描述符的限制

在Mac OS,默认限制同时打开的文件描述符的数量过低和高度并行构建过程可能超过这个限制。
增加帽,你添加以下行~/.bash_profile:

# set the number of open files to be 1024
ulimit -S -n 1024

优化构建环境(可选)

设置ccache

你可以告诉构建使用ccache编译工具。 Ccache作为编译器缓存可以用来加快重建。 如果你使用这个工作很好make clean通常,如果你频繁 切换不同的构建产品。

把下面的你.bashrc(或同等):

export USE_CCACHE=1

默认情况下将存储在缓存中~/.ccache。 如果你的主目录是NFS或其他非本地文件系统上, 您需要在您指定的目录.bashrc文件:

export CCACHE_DIR=<path-to-your-cache-directory>

建议的缓存大小是50 - 100 gb。 您将需要运行以下命令一旦你下载 源代码:

prebuilts/misc/linux-x86/ccache/ccache -M 50G

在Mac操作系统,你应该更换linux-x86与darwin-x86:

prebuilts/misc/darwin-x86/ccache/ccache -M 50G

在构建冰淇淋三明治(4.0.x)或以上,ccache 不同的位置:

prebuilt/linux-x86/ccache/ccache -M 50G

这个设置存储在CCACHE_DIR持久。

翻译不完整,自己英语底子不好,使用了网页翻译
请大家见谅!!
原文地址:https://source.android.com/source/initializing.html (国内自备*)