Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

建立構建環境

本節介紹如何設置本地工作環境以構建Android源文件。您必須使用Linux或macOS。當前不支持在Windows下構建。

有關整個代碼審查和代碼更新過程的概述,請參見補丁壽命

選擇一個分支

構建環境的某些要求由您計劃編譯的源代碼的版本確定。有關可用分支的完整列表,請參閱內部版本號 。您還可以選擇下載並構建最新的源代碼(稱為master ),在這種情況下,您在初始化存儲庫時只需忽略分支規範。

選擇分支後,請按照以下適當的說明設置構建環境。

設置Linux構建環境

這些說明適用於所有分支機構,包括master

通常會在Ubuntu LTS(14.04)和Debian測試中對Android構建進行常規測試。大多數其他發行版應具有所需的可用構建工具。

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

安裝所需的軟件包(Ubuntu 18.04)

您需要64位版本的Ubuntu。

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev 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 gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

安裝所需的軟件包(Ubuntu 12.04)

您可以使用Ubuntu 12.04構建舊版本的Android。 master版本或最新版本不支持版本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 g++-multilib 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 g++-multilib 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_COMMON_BASE變量以指向將存儲您的輸出目錄的位置。

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

每個單獨的源樹的輸出目錄均以包含源樹的目錄命名。例如,如果您具有源樹/source/master1/source/master2 ,並且OUT_DIR_COMMON_BASE設置為/output ,則輸出目錄為/output/master1/output/master2

避免將多個源樹存儲在具有相同名稱的目錄中,因為源樹最終將共享一個輸出目錄,從而導致不可預測的結果。僅Jelly Bean(4.1)和更高版本(包括master分支)支持此功能。

設置macOS構建環境

在默認安裝中,macOS在保留大小寫但不區分大小寫的文件系統上運行。 Git不支持這種類型的文件系統,並且會導致某些Git命令(例如git status )表現異常。因此,我們建議您始終在區分大小寫的文件系統上使用AOSP源文件。使用磁盤映像可以很容易地完成此操作,如下所述。

當適當的文件系統可用時,在現代macOS環境中構建master分支就很簡單。較早的分支機構需要一些其他工具和SDK。

創建區分大小寫的磁盤映像

您可以使用磁盤映像在現有macOS環境中創建區分大小寫的文件系統。要創建映像,請啟動“磁盤工具”,然後選擇“ 新建映像” 。 250 GB的最小空間可以完成構建;更多的空間最適合未來的增長。使用稀疏圖像可以節省空間,同時可以根據需要進行擴展。選擇區分大小寫,記為卷格式。

您還可以使用以下命令從外殼創建文件系統:

hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 250g ~/android.dmg.sparseimage

這將創建一個.dmg.sparseimage文件,該文件在掛載後充當具有Android開發所需格式的驅動器。

如果以後需要更大的捲,則可以使用以下命令調整稀疏圖像的大小:

hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage

對於存儲在主目錄中的名為android.dmg.sparseimage的磁盤映像,可以將輔助函數添加到~/.bash_profile

  • 要在執行mountAndroid時掛載映像:
    # mount the android file image
    mountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
  • 在執行umountAndroid時要卸載它:
    # unmount the android file image
    umountAndroid() { hdiutil detach /Volumes/android; }

掛載android卷之後,您就可以在其中完成所有工作。您可以像外接驅動器一樣彈出(卸載)它。

安裝Xcode和其他軟件包

  1. 安裝Xcode命令行工具:
    xcode-select --install
    對於舊版本的macOS(10.8或更低版本),必須從Apple開發人員站點安裝Xcode。如果您尚未註冊為Apple開發人員,則必須創建一個Apple ID才能下載。
  2. 安裝MacPortsHomebrew進行程序包管理。
  3. 確保關聯的目錄在~/.bash_profile文件內的路徑中:
    1. MacPorts- /opt/local/bin必須出現 /usr/bin 之前
      export PATH=/opt/local/bin:$PATH
    2. 自製程序- /usr/local/bin
      export PATH=/usr/local/bin:$PATH
    3. 對於MacPorts,發行:
      POSIXLY_CORRECT=1 sudo port install git gnupg
    4. 對於自製軟件,發行:
      brew install git gnupg2

    設置文件描述符限制

    在macOS上,同時打開文件描述符數量的默認限制太低,高度並行的構建過程可能會超過此限制。要增加上限,請將以下行添加到~/.bash_profile

    # set the number of open files to be 1024
    ulimit -S -n 1024

    下一步:下載源

    您的構建環境很好!繼續下載源代碼