請按照本頁的操作說明建構 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_RELEASE-$TARGET_BUILD_VARIANT"
代表目標的字串具有以下格式:
lunch product_name-release-build_variant
此字串的元件如下:
product_name 是您要建立的產品名稱 例如
aosp_cf_x86_64_phone
或aosp_husky
您的具體資訊 product_name 可以根據你的裝置自訂格式, 不過 Google 用於裝置的格式卻包含下列元件:aosp
是指 Android 開放原始碼平台。- (選用)
cf
如果目標可在 Cuttlefish 模擬器。 - 架構和硬體 (產品代號),例如
x86_64_phone
或husky
也就是 Pixel 8 Pro 的代號Google 產品代號清單 裝置,請參閱 裝置產品代號。
release 已設為
trunk_staging
。字串的 build_variant 部分可以是以下其中一個值: 查看下表中的三個值:
build_variant 說明 user
這個建構變數提供的安全性存取權有限,適用於正式版。 userdebug
此建構變數可協助裝置開發人員瞭解開發中版本的效能和功能。使用 userdebug
版本進行開發時,請遵循 userdebug 指南。eng
這個建構變化版本的建構時間較短,如果您不在意效能和效能,則非常適合日常開發作業。
如果執行 lunch
時沒有任何引數,系統會提供常見目標的清單。
您也可以結合
以使用本網頁的資訊和代碼名稱做為目標字串
代表位於特定 Google 硬體的
裝置產品代號。
建構程式碼
執行下列指令來建構目標。視規格而定 因此第一項建構作業會在一小時內完成 幾小時。後續建構所需的時間會大幅減少。
$ 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
============================================
建構作業的輸出內容會顯示在 $OUT_DIR
中。如果發生以下情況:
建構不同的目標
$OUT_DIR
。
m
指令是從樹狀結構的頂端開始建立,因此m
您可以在
子目錄如果您已設定 TOP
環境變數,那 m
指令
假設您已探索過某個 API
準備好建構使用該 API 的應用程式如果未設定 TOP
,m
指令會查詢
,嘗試找出樹狀結構的頂部。
m
指令可以透過 -jN
引數處理平行工作。如果您不
提供 -j
引數,建構系統會自動選取平行工作
再計算系統認為最適合你系統的程度。
您可以列出特定模組來建構特定模組,而非完整裝置映像檔
m
指令列中的模組名稱。此外,m
指令也提供
一些稱為「目標」的虛擬目標。舉例來說,m nothing
無法建構
,但會剖析及驗證建構結構。如需
目標,請輸入 m help
。
排解建構錯誤 (8.0 以下版本)
如果是建構 Android 開放原始碼計畫 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
************************************************************
以下是可能原因和解決方法:
- 您未按照 的 JDK 部分 設定 Android 開放原始碼計畫開發作業 (2.3 - 8.0) 。
- 您的路徑中會出現另一個先前安裝的 JDK。前面加上 正確的 JDK,或者移除有問題的 JDK。