建立建置環境

本節介紹如何設定本機工作環境來建立 Android 原始檔。您必須使用Linux;不支援在 MacOS 或 Windows 下建置。也要記住/usr/bin/python二進位檔案的重要變更。

有關整個程式碼審查和程式碼更新過程的概述,請參閱補丁的生命週期

選擇分支機構

建置環境的一些要求取決於您計劃編譯的原始程式碼的版本。有關可用分支的完整列表,請參閱內部版本號。您也可以選擇下載並建立最新的原始程式碼(稱為main ),在這種情況下,您只需在初始化儲存庫時省略分支規範即可。

選擇分支後,請按照以下對應說明設定您的建置環境。

設定Linux建置環境

這些說明適用於所有分支,包括main

Android 版本通常在 Ubuntu LTS (14.04) 和 Debian 測試中進行內部測試。大多數其他發行版應該具有所需的可用建置工具。

對於 Gingerbread (2.3.x) 及更高版本,包括main分支,需要 64 位元環境。舊版本可以在 32 位元系統上編譯。

安裝所需的軟體包(Ubuntu 18.04 及更高版本)

您需要 64 位元版本的 Ubuntu。

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

安裝所需的軟體包(Ubuntu 14.04)

您需要 64 位元版本的 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 建立舊版本的 Android。 main版本或最新版本不支援版本 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

安裝所需的軟體包(Ubuntu 10.04-11.10)

不再支援在 Ubuntu 10.04-11.10 上構建,但對於構建舊版本的 AOSP 可能有用。

sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc

在 Ubuntu 10.10 上:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

在 Ubuntu 11.10 上:

sudo apt-get install libx11-dev:i386

配置 USB 訪問

依照設定用於開發的裝置的說明,為所有 Android 裝置安裝社群維護的預設udev規則集。

使用單獨的輸出目錄

預設情況下,每個建置的輸出都儲存在匹配來源樹的out/子目錄中。您可以透過匯出OUT_DIR環境變數來覆寫它。例如:

export OUT_DIR=out_mytarget

這將導致建置的輸出儲存在來源樹的out_mytarget/子目錄中。當使用相同的來源樹為多個目標建置時,建議為每個目標使用單獨的OUT_DIR

在某些具有多個儲存裝置的電腦上,將原始檔案和輸出儲存在單獨的磁碟區上時建置速度會更快。為了獲得額外的效能,輸出可以儲存在針對速度而不是崩潰魯棒性進行最佳化的檔案系統上,因為如果檔案系統損壞,則可以重新產生所有檔案。

若要進行此設置,請匯出OUT_DIR_COMMON_BASE變數以指向儲存輸出目錄的位置。

export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>

每個單獨原始碼樹的輸出目錄以保存原始碼樹的目錄命名。例如,如果您有來源樹/source/main1/source/main2OUT_DIR_COMMON_BASE設定為/output ,則輸出目錄為/output/main1/output/main2

避免將多個來源樹儲存在具有相同名稱的目錄中,因為來源樹最終會共用輸出目錄,從而產生不可預測的結果。僅 Jelly Bean (4.1) 及更高版本支援此功能,包括main分支。

下一篇:下載原始碼

您的建置環境一切順利!繼續下載原始碼