按照此頁面上的說明建立 Android。
設定您的建置環境
從您的工作目錄中,取得envsetup.sh
腳本來設定您的建置環境:
source build/envsetup.sh
此腳本匯入多個命令,使您可以使用 Android 原始程式碼,包括本頁上使用的命令。若要查看腳本的原始程式碼,請參閱platform/build/envsetup.sh
。若要查看內建幫助,請輸入hmm
。
選擇目標
在建立 Android 之前,您必須確定要建置的目標。要確定要建置的目標,請使用lunch
命令,後面跟著一個標識您的目標產品和建置的目標:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
查看目前目標
要查看當前的午餐設置,請運行:
$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"
表示目標的字串具有以下格式:
lunch product_name-release-build_variant
該字串的組成部分是:
product_name是您要建立的產品的名稱,例如
aosp_cf_x86_64_phone
或aosp_husky
。您的特定product_name可以遵循您自己的格式,但 Google 使用的格式具有以下組成部分:-
aosp
指的是 Android 開源平台。 - (可選)當目標打算在 Cuttlefish 模擬器中運行時,包含
cf
- 架構和硬件,例如
x86_64_phone
或husky
(Pixel 8 pro)。
-
該release設定為
trunk-staging
。字串的build_variant部分可以是下表中的三個值之一:
build_variant 描述 user
此構建變體提供有限的安全訪問,適合生產。 userdebug
此建置變體可協助裝置開發人員了解正在開發的版本的效能和功能。使用 userdebug
版本進行開發時,請遵循userdebug 指南。英語 此構建變體具有更快的構建時間,如果您不關心性能和功耗,那麼它最適合日常開發。
建構程式碼
運行以下命令來建立您的目標。根據工作站的規格,第一次建造可能需要不到一小時,最長可能需要幾個小時。後續建造所需的時間明顯減少。
$ m
您應該看到的第一個輸出是目標和建置環境的概要:
============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================
m
命令從樹的頂部構建,因此您可以從子目錄中運行m
。如果設定了TOP
環境變量, m
命令將使用它。如果未設定TOP
, m
指令將從目前目錄尋找樹,嘗試尋找樹的頂部。
m
指令可以使用-jN
參數處理並行任務。如果您不提供-j
參數,建置系統會自動選擇它認為最適合您的系統的平行任務計數。
您可以透過在m
命令列中列出模組名稱來建立特定模組而不是完整的裝置映像。此外, m
指令提供了一些偽目標,稱為目標。例如, m nothing
不建構任何東西,但解析並驗證建置結構。若要取得有效目標的列表,請輸入m help
。
解決建置錯誤(8.0 或更早版本)
如果您正在建置 AOSP 8 或更早版本, m
可能會在遇到 Java 版本問題時中止。例如,您可能會收到以下訊息:
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.
Please follow the machine setup instructions at
https://source.android.com/source/initializing.html
************************************************************
以下是可能的原因和解決方案:
- 您未能安裝AOSP 開發設定 (2.3 - 8.0)的 JDK 部分中指定的正確 JDK。
- 您的路徑中出現了另一個先前安裝的 JDK。將正確的 JDK 新增到路徑的開頭或刪除有問題的 JDK。