下載及建構 Android 來源的 main
分支前,請確認硬體符合必要需求,且已正確安裝必要軟體。您也應熟悉下列術語:
- Git
- Git 是免費的開放原始碼分散式版本管控系統。Android 使用 Git 執行本機作業,例如分支版本、修訂版本、差異比較和編輯。如需 Git 學習相關資訊,請參閱 Git 說明文件。
- Repo
- Repo 是圍繞 Git 的 Python 包裝函式,可簡化在多個 Git 存放區中執行複雜作業的程序。Repo 不會取代 Git 的所有版本控制作業,只會讓複雜的 Git 作業更容易完成。Repo 會使用資訊清單檔案,將 Git 專案匯入 Android 超級專案。
- 資訊清單檔案
- 資訊清單檔案是 XML 檔案,可指定 Android 來源中的各個 Git 專案在 AOSP 來源樹狀結構中的放置位置。
符合硬體需求
您的開發工作站應符合下列硬體需求,甚至超越這些要求:
64 位元 x86 系統。
至少 400 GB 的可用磁碟空間,供您查看及建構程式碼 (輸入 250 GB 以及需要建構 150 GB 的可用空間)。
至少有 64 GB 的 RAM。Google 使用 72 核心機器和 64 GB RAM 建構 Android。採用這項硬體設定後,整個 Android 版本約需 40 分鐘的時間,而漸進式 Android 建構需要幾分鐘的時間。相較之下,如果使用 6 核心機器 (64 GB RAM) 進行完整建構作業,大約需要 6 小時。
符合作業系統需求
您的開發工作站必須執行任何 64 位元 Linux 發行版,並搭載 GNU C 程式庫 (glibc) 2.17 以上版本。
安裝必要套件
如要建構 Android 11 以上版本,您必須使用 Ubuntu 18.04 以上版本。如要安裝 Ubuntu 18.04 以上版本的必要套件,請執行下列指令:
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
在安裝的套件中,這個指令會安裝 Git,用於下載 Android 開放原始碼計畫來源。
安裝所需的軟體
您必須先安裝 OpenJDK、Make、Python 3 和 Repo,才能使用 AOSP。Android 的 AOSP 主分支會隨附預先建構的 OpenJDK、Make 和 Python 3 版本,因此不需要額外的安裝步驟。下一個章節將說明如何安裝 Repo。
安裝存放區
請按照下列步驟安裝 Repo:
下載目前的套件資訊:
sudo apt-get update
執行下列指令,安裝 Repo 啟動器:
sudo apt-get install repo
Repo 啟動器會提供 Python 指令碼,用於初始化檢查作業並下載完整的 Repo 工具。
如果成功,請跳至步驟 4。
(選用) 使用下列一系列指令手動安裝 Repo:
export REPO=$(mktemp /tmp/repo.XXXXXXXXX) curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65 curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
前三個指令會設定暫存檔案、將 Repo 下載至檔案,並驗證提供的金鑰是否符合必要金鑰。如果這些指令執行成功,最後一個指令會安裝 Repo 啟動器。
確認 Repo launcher 版本:
repo version
輸出內容應顯示 2.4 以上版本,例如:
repo launcher version 2.45
設定其他輸出目錄
根據預設,每個版本的輸出內容都會儲存在相符來源樹狀結構的 out/
子目錄中。您可以匯出 OUT_DIR
環境變數來覆寫這個目錄。舉例來說,如果您想將輸出內容儲存在其他磁碟上,可以將 OUT_DIR
指向該磁碟:
export OUT_DIR=my_other_drive
後續步驟
- 如要下載原始碼,請繼續參閱「下載 Android 原始碼」一文。
- 如需 Git 學習相關說明,請參閱 Git 說明文件。
- 如需其他 Repo 說明文件,請參閱 Repo README。
- 如需所有 Repo 指令的清單,請參閱 Repo 指令參考資料。