要使用 Android 虛擬設備 (AVD), Android 模擬器支持圖形用戶界面 (GUI) 和命令行界面 (CLI)。您可以為您的環境選擇最佳工作流程。
- 創建和管理虛擬設備GUI 是為大多數應用程序開發人員和用戶提供的簡單工具。
- 從命令行啟動模擬器為高級用戶和自動化提供了一種靈活的方式。例如,使用多個 AVD 或設置持續測試和持續集成。要開始使用,請參閱工具中的示例。
構建 AOSP 汽車 AVD
構建 AOSP Car AVD 的過程類似於為手機構建 AVD 圖像(例如aosp_car_x86_64 ):
- 要設置開發環境並識別分支,請參閱源代碼控制工具。然後查看下載源代碼:
ANDROID_BRANCH="android11-qpr2-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 aosp_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
- 以
sdk-repo-linux-system-images
為前綴的 AVD 映像 zip 文件在名為$ANDROID_PRODUCT_OUT
的文件夾中創建。
構建 AVD 內核
AVD 內核與其他 Android 內核相似,都是預構建的鏡像。通常,您可以使用每個 Android 版本中的標準金魚內核預構建映像。
要試驗內核更改:
- 運行以下系列指令:
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 替換代碼庫中的內核二進製文件。例如, x86_64-vendor.mk包括x86_64-kernel.mk 。
內核代碼和配置如下:
物品 | 價值 |
---|---|
分支 | common-android11-5.4 (在 Android 11 中使用) |
顯現 | kernel/manifest/common-android11-5.4 |
通用模塊/虛擬設備 | kernel/common-modules/virtual-device/android11-5.4 |
核心 | kernel/common/android11-5.4 |
創建新的設備配置文件
要使用戶能夠在 Android Studio AVD Manager 中創建特定的 AVD,請參閱創建和管理虛擬設備。設備製造商可以通過使用 AVD 圖像中包含的devices.xml
文件來定義自己的硬件規格,例如屏幕尺寸和 DPI。
- 例如,請參閱 Automotive.xml 中的
automotive.xml
設備配置文件。 - 對於 HMI 開發或原型設計,可以將多個設備添加到同一 AVD 圖像的文件中。
- 將文件包含在
[ABI]
文件夾中的 OEM AVD 圖像 zip 文件中。例如,作為x86_64
。 - 設備製造商還可以創建模擬器皮膚。例如,為更高保真度的用戶體驗定義額外的硬件按鈕。這不僅對開發人員工作流程有用,而且對其他任務(例如 UX 研究和審查)也有用。
創建 AVD 圖像 XML 文件
設備製造商可以創建一個 AVD Image XML 文件供 Android Studio 下載。
- 例如,請參閱 AAOS AVD 圖像 XML 文件
sys-img2-1.xml
。 - 設備製造商可以為其目標用戶(使用榮譽系統)定義自己的 OEM AVD 許可協議,並獲得 Android Emulator 的許可。包含此類許可證時,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(
tools
中提供了示例 XML 文件)。
例如,要在 Google Cloud Storage上託管 AVD,請參閱創建存儲桶。
要上傳 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 附加 URL 格式為: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml
。例如,如果 BUCKET_NAME 為 aaos-avd,則 URL 為: 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 文件。
- 向目標用戶提供 URL。
- (可選)通過用戶名和密碼限制訪問。
或者,為了加快開發速度,將 AVD 下載到本地目錄:
- 將 XML 文件和 XML 文件中指定的所有工件保存到名為
ADDON_DIR
的文件夾(例如,所有 AVD 圖像 zip 文件)。 - 將 URL 指定為
file://$ADDON_DIR/oem-sys-img2-1.xml
。