如要使用 Android 虛擬裝置 (AVD),Android 模擬器支援圖形使用者介面 (GUI) 和指令列介面 (CLI)。為環境選取最佳工作流程。
- 建立及管理虛擬裝置 GUI 是為大多數應用程式開發人員和使用者提供的簡單工具。
- 透過指令列啟動模擬器 ,可為進階使用者和自動化作業提供彈性。舉例來說,您可以使用多個 AVD,或是設定持續測試和持續整合。如要開始使用,請參閱工具中的範例。
建構 Android 開放原始碼計畫車輛 AVD
建構 AOSP Car AVD 的程序與建構手機的 AVD 映像檔類似 (例如 aosp_car_x86_64):
- 如要設定開發環境及識別分支版本,請參閱「來源控管工具」。然後參閱「下載原始碼」一文:
ANDROID_BRANCH="android12L-release"
REPO_URL="https://android.googlesource.com/platform/manifest"
mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8 - 建構 AVD 映像檔:
. build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
- 執行 AVD 映像檔 (視需要附加其他指令列啟動選項):
emulator &
例如:
圖 1. Android 虛擬模擬器畫面
這項程序的注意事項:
建立車輛 AVD
新增車輛 AVD 的方式與新增裝置幾乎相同。舉例來說,
1660554
會建立新的 avd_car
AVD。
如要建立車輛 AVD,請按照下列步驟操作:
- 視需要建立公司和裝置資料夾。本範例使用
$ANDROID_BUILD_TOP/device/google_car/avd_car
。 - 建立產品 Makefile (
avd_car.mk
),定義如何建構 AVD。 - 建立裝置資料夾
avd_car_device
,其中包含BoardConfig.mk
和source.properties
。 - 將新的
makefile
和新的lunch
選項新增至AndroidProducts.mk
。 - 如要建構及執行新的
avd_car
AVD,請按照下列步驟操作:. build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
封裝 AVD 映像檔 ZIP 檔案
您可以封裝 AVD 並與他人共用,或在其他電腦上使用。使用 emu_img_zip.mk
產生 AVD 映像檔 ZIP 檔案:
- 建構 AVD 後,請
emu_img_zip
成為目標:m emu_img_zip
- AVD 映像檔 ZIP 檔案會加上
sdk-repo-linux-system-images
前置字串,並建立在名為$ANDROID_PRODUCT_OUT
的資料夾中。
建構 AVD 核心
AVD 核心與其他 Android 核心類似,都是預先建構的映像檔。一般來說,您可以直接使用每個 Android 版本預先建構的標準 goldfish 核心映像檔。
如要實驗核心變更:
- 執行下列一系列指令:
mkdir goldfish-kernel-54 cd goldfish-kernel-54 repo init -u https://android.googlesource.com/kernel/manifest -b common-android11-5.4 repo sync BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64 build/build.sh ls -l ./out/android11-5.4/dist/
- 請根據 AVD Makefile,替換程式碼集中的核心二進位檔。舉例來說,
device/generic/goldfish/board/emu64x/details.mk
包含device/generic/goldfish/board/kernel/x86_64.mk
。
核心程式碼和設定檔位於下列位置:
產品 | 值 |
---|---|
Branch | common-android11-5.4 (Android 11 中使用) |
命運航班 | kernel/manifest/common-android11-5.4 |
common-modules/virtual-device | kernel/common-modules/virtual-device/android11-5.4 |
核心 | kernel/common/android11-5.4 |
建立新的裝置設定檔
如要讓使用者在 Android Studio AVD 管理工具中建立特定 AVD,請參閱「建立及管理虛擬裝置」。裝置製造商可透過 AVD 映像檔中包含的 devices.xml
檔案,定義自己的硬體規格,例如螢幕大小和 DPI。
- 舉例來說,請參閱
automotive.xml
中的車用裝置設定檔。 - 如要進行 HMI 開發或原型設計,您可以將多部裝置新增至相同 AVD 映像檔的檔案。
- 將檔案納入
[ABI]
資料夾中的 OEM AVD 映像檔 ZIP 檔案。 例如x86_64
。 - 裝置製造商也可以建立模擬器外觀。舉例來說,如要定義其他硬體按鈕,以提升 UX 保真度,請使用下列程式碼: 這不僅適用於開發人員工作流程,也適用於其他工作,例如使用者體驗研究和審查。
建立 AVD 映像檔 XML 檔案
裝置製造商可以建立 AVD 映像檔 XML 檔案,供 Android Studio 下載。
- 舉例來說,請參閱 AAOS AVD 映像檔 XML 檔案
sys-img2-1.xml
。 - 裝置製造商可以為目標使用者 (採用誠實制度) 定義自己的 OEM AVD 授權協議,並取得 Android 模擬器的授權。如果包含這類授權,Android Studio 會取得使用者同意聲明。
如要建立圖片,請按照下列步驟操作:
- 準備 AVD 映像檔 ZIP 檔案。
- 解壓縮
${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip
。 - 將
devices.xml
新增至x86_64
資料夾,然後將檔案壓縮成 ZIP 檔案。例如oem_avd_img_x86_64.zip
。 - 更新「
oem-sys-img2-1.xml
」。 - 更新 ZIP 檔案名稱、大小和 shasum (範例 XML 檔案位於
tools
)。
舉例來說,如要在 Google Cloud Storage 上代管 AVD,請參閱「建立儲存空間 bucket」。
如要上傳 AVD 並開放公開存取,請參閱「將資料設為公開」一文:
BUCKET_NAME="aaos-avd" gsutil mb gs://$BUCKET_NAME gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME
AVD 映像檔 SDK 外掛程式網址格式如下:https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml
。
舉例來說,如果 BUCKET_NAME 是 aaos-avd,網址就是 https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml
。
與 Android Studio 使用者共用 AVD 映像檔
為了讓使用者能下載 AVD 映像檔,並透過 Android Studio 使用您的 AVD,您可以提供 SDK 外掛程式 XML 檔案。詳情請參閱「更新 IDE 和 SDK 工具」。
如要從網路下載 AVD:
- 將圖片 ZIP 檔案和 XML 檔案放在伺服器上。
- 將網址提供給目標使用者。
- (選用) 透過使用者名稱和密碼限制存取權。
或者,如要加快開發速度,請將 AVD 下載至本機目錄:
- 將 XML 檔案和 XML 檔案中指定的所有構件儲存至名為
ADDON_DIR
的資料夾 (例如所有 AVD 映像檔 ZIP 檔案)。 - 請將網址指定為
file://$ADDON_DIR/oem-sys-img2-1.xml
。