本页面介绍如何设置 Android 8.0 或更低版本的开发环境。要了解如何构建 Android 9.0 及更高版本,请参阅AOSP 开发设置。
AOSP 开发设置 (5.0 - 8.0)
对于 Android 5.0 到 8.0,请考虑使用随附的 Dockerfile 以简化所有必需软件包的安装。
操作系统
Android 通常使用 GNU Linux 构建。也可以在不受支持的系统(例如 Mac OS X)上的虚拟机中构建 Android。
Google 建议在 GNU Linux 上进行构建。Android 构建系统通常在构建计算机上运行 ART,以预编译系统 DEX 文件。ART 只能在 Linux 上运行,因此构建系统会在非 Linux 操作系统上跳过此预编译步骤,从而导致 Android 构建性能降低。
GNU Linux
- Android 6.0 - Android 8.0:Ubuntu 14.04 (Trusty)
- Android 5.x:Ubuntu 12.0
Mac OS X (Intel/x86)
- Android 6.0 - AOSP 8.0:Mac OS X v10.10 (Yosemite) 或更高版本,搭载 Xcode 4.5.2 和 Command Line Tools
- Android 5.x:Mac OS X v10.8 (Mountain Lion),搭载 Xcode 4.5.2 和 Command Line Tools
JDK
Android 7.0 - Android 8.0
- Ubuntu:OpenJDK 8
- Mac OS X:JDK 8u45 或更高版本
Android 5.x (Lollipop) - Android 6.0 (Marshmallow)
- Ubuntu:OpenJDK 7
- Mac OS X:jdk-7u71-macosx-x64.dmg
AOSP 开发设置 (2.3 - 4.4)
本部分提供有关如何设置 Android 2.3 到 Android 4.4 的一些指导。
操作系统
Android 通常使用 GNU Linux 构建。也可以在不受支持的系统(例如 Windows)上的虚拟机中构建 Android。
Google 建议在 GNU Linux 上进行构建。Android 构建系统通常在构建计算机上运行 ART,以预编译系统 DEX 文件。ART 只能在 Linux 上运行,因此构建系统会在非 Linux 操作系统上跳过此预编译步骤,从而导致 Android 构建性能降低。
GNU Linux
- Android 2.3.x - Android 4.4:Ubuntu 12.04 (Precise)
Mac OS X (Intel/x86)
- Android 4.1.x - Android 4.4.x:Mac OS X v10.6 (Snow Leopard) 或 Mac OS X v10.7 (Lion) 以及 Xcode 4.2 (Apple Developer Tools)
- Android 2.3 - Android 4.0.x:Mac OS X v10.5 (Leopard) 或 Mac OS X v10.6 (Snow Leopard) 以及 Mac OS X v10.5 SDK
GNU make
对于 Android 4.1.x 到 4.4,请使用 GNU make (gmake) 3.82。对于 Android 2.3 到 4.0.x,请从 gmake 3.82 恢复以避免构建错误。
Xcode 和其他软件包
对于 Mac OS X v10.8 或更低版本,请从 Apple 开发者网站安装 Xcode。如果您尚未注册成为 Apple 开发者,则必须创建 Apple ID 才能下载。
如果使用 Mac OS X v10.4,则还需要安装 Bison
POSIXLY_CORRECT=1 sudo port install bison
对于 MacPorts,请发出
POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
对于 Homebrew,请发出
brew install gmake libsdl git gnupg2
从 gmake 3.82 恢复
在 Android 4.0.x 及更低版本中,gmake 3.82 存在一个错误,会阻止 Android 构建。您可以使用 MacPorts 通过以下步骤安装 3.81 版本
编辑
/opt/local/etc/macports/sources.conf
并在rsync
行上方添加file:///Users/Shared/dports
。创建
dports
目录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
JDK
- Android 2.3.x - Android 4.4.x
- Ubuntu:Java JDK 6
- Mac OS X:Java JDK 6
Linux 版 JDK
Android 开源项目 (AOSP) 附带了 prebuilts/jdk/
中的 OpenJDK 预构建版本,因此无需额外安装。
早期版本的 Android 需要单独安装 JDK。在 Ubuntu 上,请使用 OpenJDK
对于 Ubuntu 15.04 及更高版本
运行以下命令
sudo apt-get update
sudo apt-get install openjdk-8-jdk
对于 Ubuntu LTS 14.04
Ubuntu 14.04 没有可用的受支持 OpenJDK 8 软件包。Ubuntu 15.04 OpenJDK 8 软件包已在 Ubuntu 14.04 上成功使用。更高版本的软件包(例如,15.10、16.04 的软件包)无法通过以下说明在 14.04 上运行。
从 old-releases.ubuntu.com 下载 64 位架构的
.deb
软件包openjdk-8-jre-headless_8u45-b14-1_amd64.deb
,SHA256 为0f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
openjdk-8-jre_8u45-b14-1_amd64.deb
,SHA256 为9ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
openjdk-8-jdk_8u45-b14-1_amd64.deb
,SHA256 为6e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c
(可选)根据步骤 1 中每个软件包列出的 SHA256 字符串确认下载文件的校验和。例如,使用
sha256sum
工具sha256sum {downloaded.deb file}
安装软件包
sudo apt-get update
对您下载的每个
.deb
文件运行dpkg
。由于缺少依赖项,它可能会产生错误sudo dpkg -i {downloaded.deb file}
要修复缺少依赖项的问题
sudo apt-get -f install
(可选)更新默认 Java 版本
(可选)对于前面提到的 Ubuntu 版本,通过运行以下命令更新默认 Java 版本
sudo update-alternatives --config java
sudo update-alternatives --config javac
安装 Ubuntu 14.04 所需的软件包
运行以下命令以安装 Ubuntu 14.04 所需的软件包
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev 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 所需的软件包
$ 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 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