設定 Android 開放原始碼計畫開發作業 (2.3 - 8.0)

本頁說明如何設定 Android 8.0 或 較舊版本如要瞭解如何建構 Android 9.0 以上版本,請參閱 設定 Android 開放原始碼計畫開發作業

設定 Android 開放原始碼計畫開發作業 (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 和命令列工具
  • Android 5.x:Mac OS X v10.8 (Mountain Lion) 搭載 Xcode 4.5.2 和指令列工具

JDK

設定 Android 開放原始碼計畫開發作業 (2.3 - 4.4)

本節將說明如何設定 Android 2.3 至 Android 4.4。

作業系統

Android 通常內建 GNU Linux。您也可以建構 Android 或 Windows 等不支援的系統上的虛擬機器

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 (Intel/x86)

  • Android 4.1.x - Android 4.4.x:Mac OS X v10.6 (雪花白) 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 開發人員網站如果您不是 已註冊為 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 系統進行建構如要安裝 3.81 版,請使用 請按照下列步驟使用 MacPort:

  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. 從以下位置下載適用於 64 位元架構的 .deb 套件: old-releases.ubuntu.com

    • 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