针对 AOSP 开发进行设置 (2.3 - 8.0)

本页讨论如何设置 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(可信)
  • 安卓 5.x:Ubuntu 12.0

Mac OS X(英特尔/x86)

  • Android 6.0 - AOSP 8.0:Mac OS X v10.10 (Yosemite) 或更高版本,带有 Xcode 4.5.2 和命令行工具
  • Android 5.x:带有 Xcode 4.5.2 和命令行工具的 Mac OS X v10.8 (Mountain Lion)

JDK

为 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(精确)

Mac OS X(英特尔/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 开发人员工具)
  • 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 使

对于 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

对于 MacPort,发出:

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:

  1. 编辑/opt/local/etc/macports/sources.conf并在rsync行上方添加file:///Users/Shared/dports

  2. 创建dports目录:

    mkdir /Users/Shared/dports
    
  3. 在新的dports目录中,运行:

    svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
    
  4. 为新的本地存储库创建端口索引:

    portindex /Users/Shared/dports
    
  5. 安装低版本的gmake:

    sudo port install gmake @3.81
    

JDK

适用于 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 上运行。

  1. 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
  2. (可选)根据步骤 1 中每个包列出的 SHA256 字符串确认下载文件的校验和。例如,使用sha256sum工具:

    sha256sum {downloaded.deb file}
    
  3. 安装软件包:

    sudo apt-get update
    
  4. 对您下载的每个.deb文件运行dpkg 。由于缺少依赖项,它可能会产生错误:

    sudo dpkg -i {downloaded.deb file}
    
  5. 要修复缺少的依赖项:

    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