設定 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

對於 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:

  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