將 Android 虛擬裝置做為開發平台

如要使用 Android 虛擬裝置 (AVD),Android 模擬器支援圖形使用者介面 (GUI) 和指令列介面 (CLI)。為環境選取最佳工作流程。

  • 建立及管理虛擬裝置 GUI 是為大多數應用程式開發人員和使用者提供的簡單工具。
  • 透過指令列啟動模擬器 ,可為進階使用者和自動化作業提供彈性。舉例來說,您可以使用多個 AVD,或是設定持續測試和持續整合。如要開始使用,請參閱工具中的範例。

建構 Android 開放原始碼計畫車輛 AVD

建構 AOSP Car AVD 的程序與建構手機的 AVD 映像檔類似 (例如 aosp_car_x86_64):

  1. 如要設定開發環境及識別分支版本,請參閱「來源控管工具」。然後參閱「下載原始碼」一文:
    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
  2. 建構 AVD 映像檔:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. 執行 AVD 映像檔 (視需要附加其他指令列啟動選項):
    emulator &

    例如:

    圖 1. Android 虛擬模擬器畫面

    這項程序的注意事項:

    • 由於建構程序與為實體裝置建構 Android 時的程序相同,請預留一些時間下載來源並建構。
    • 如要處理其他分支,請將 $ANDROID_BRANCH 設為其他分支/標記
    • AVD 映像檔 (例如 system.img) 是在 $ANDROID_PRODUCT_OUT 中建構。如要進一步瞭解重要圖片,請參閱「AVD 系統目錄」。
    • 請參閱 README 檔案,瞭解如何使用 Android 樹狀結構中的預建模擬器二進位檔執行模擬器。

建立車輛 AVD

新增車輛 AVD 的方式與新增裝置幾乎相同。舉例來說, 1660554 會建立新的 avd_car AVD。

如要建立車輛 AVD,請按照下列步驟操作:

  1. 視需要建立公司和裝置資料夾。本範例使用 $ANDROID_BUILD_TOP/device/google_car/avd_car
  2. 建立產品 Makefile (avd_car.mk),定義如何建構 AVD。
  3. 建立裝置資料夾 avd_car_device,其中包含 BoardConfig.mksource.properties
  4. 將新的 makefile 和新的 lunch 選項新增至 AndroidProducts.mk
  5. 如要建構及執行新的 avd_car AVD,請按照下列步驟操作:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
現在您可以在新的 AVD 上,為大多數 HMI 和應用程式功能製作原型。

封裝 AVD 映像檔 ZIP 檔案

您可以封裝 AVD 並與他人共用,或在其他電腦上使用。使用 emu_img_zip.mk 產生 AVD 映像檔 ZIP 檔案:

  1. 建構 AVD 後,請emu_img_zip成為目標:
    m emu_img_zip
  2. AVD 映像檔 ZIP 檔案會加上 sdk-repo-linux-system-images 前置字串,並建立在名為 $ANDROID_PRODUCT_OUT 的資料夾中。

建構 AVD 核心

AVD 核心與其他 Android 核心類似,都是預先建構的映像檔。一般來說,您可以直接使用每個 Android 版本預先建構的標準 goldfish 核心映像檔。

如要實驗核心變更:

  1. 執行下列一系列指令:
    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/
  2. 請根據 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 會取得使用者同意聲明。

如要建立圖片,請按照下列步驟操作:

  1. 準備 AVD 映像檔 ZIP 檔案。
  2. 解壓縮 ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip
  3. devices.xml 新增至 x86_64 資料夾,然後將檔案壓縮成 ZIP 檔案。例如 oem_avd_img_x86_64.zip
  4. 更新「oem-sys-img2-1.xml」。
  5. 更新 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:

  1. 將圖片 ZIP 檔案和 XML 檔案放在伺服器上。
  2. 將網址提供給目標使用者。
  3. (選用) 透過使用者名稱和密碼限制存取權。

或者,如要加快開發速度,請將 AVD 下載至本機目錄:

  1. 將 XML 檔案和 XML 檔案中指定的所有構件儲存至名為 ADDON_DIR 的資料夾 (例如所有 AVD 映像檔 ZIP 檔案)。
  2. 請將網址指定為 file://$ADDON_DIR/oem-sys-img2-1.xml