本頁說明如何設定 Android 8.0 以下版本的開發作業。如要瞭解如何建構 Android 9.0 以上版本,請參閱「設定 AOSP 開發環境」。
設定 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 10.8 (Mountain Lion) 搭配 Xcode 4.5.2 和指令列工具
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
設定 Android 開放原始碼計畫開發作業 (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 10.6 (Snow Leopard) 或 Mac OS X 10.7 (Lion) 和 Xcode 4.2 (Apple Developer Tools)
- Android 2.3 - Android 4.0.x:Mac OS X 10.5 (Leopard) 或 Mac OS X 10.6 (Snow Leopard) 和 Mac OS X 10.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 10.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
with SHA2560f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
openjdk-8-jre_8u45-b14-1_amd64.deb
使用 SHA2569ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
openjdk-8-jdk_8u45-b14-1_amd64.deb
with SHA2566e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c
您可以選擇根據步驟 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