使用 Android Emulator 虛擬裝置

您可以使用 Android Emulator 建立可執行自訂 Android 系統映像檔的 Android 裝置模擬。此外,您也可以在 Android Emulator 模擬中加入多螢幕支援。

Android Emulator 架構

Android Emulator 可讓您在名為 Android 虛擬裝置 (AVD) 的虛擬機器中執行 Android Emulator。每個 AVD 都含有完整的 Android 軟體堆疊,就像在實體裝置上執行一樣。圖 1 說明 Android Emulator 的高階架構。如要進一步瞭解模擬器,請參閱「在 Android Emulator 上執行應用程式」。

Android Emulator 架構。

圖 1 Android Emulator 架構。

建構 AVD 映像檔

每個 AVD 都包含一個 Android 系統映像檔,可在該 AVD 中執行。AVD Manager 內含部分系統映像檔。您可以從原始碼建構自訂 AVD 系統映像檔,並建立要執行這些映像檔的裝置模擬作業。

如要建構及執行 AVD 系統映像檔,請按照下列步驟操作:

  1. 下載 Android 原始碼:

    mkdir aosp-main; cd aosp-main
    repo init -u
    repo sync -j24
    

如要建構其他 Android 版本,您可以在公開 Android 存放區中找到其分支版本名稱。這些類別會對應至 Android 產品代號、標記和版本號碼

  1. 建構 AVD 系統映像檔。這與建構 Android 裝置系統映像檔的程序相同。舉例來說,如要建構 x86 64 位元 AVD,請按照下列步驟操作:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
    
  2. 在 Android Emulator 中執行 AVD 系統映像檔:

    emulator
    

如要進一步瞭解如何執行模擬器,請參閱「指令列啟動選項」。圖 2 是 Android Emulator 執行 AVD 的範例:

執行 AVD 的 Android Emulator。

圖 2. 執行 AVD 的 Android Emulator。

分享 AVD 系統映像檔讓他人與 Android Studio 搭配使用

請按照下列操作說明,與他人分享 AVD 系統映像檔。他們可透過 Android Studio 使用 AVD 系統映像檔,開發及測試應用程式。

  1. 建立額外的 sdksdk_repo 套件:

    如果是 Android 13 以上版本,請使用 emu_img_zip 指令:

    $ make emu_img_zip
    

    這會產生 sdk-repo-linux-system-images-eng.[username]].zip 檔案。

    如果是 Android 12 以下版本,請使用 sdk_repo 指令:

    $ make -j32 sdk sdk_repo
    

    make sdk sdk_repo 指令會在 aosp-main/out/host/linux-x86/sdk/sdk_phone_x86 下建立兩個檔案:

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. 代管使用者可存取的 sdk-repo-linux-system-images-eng.[username].zip 檔案,並取得其網址做為 AVD 系統映像檔網址

  3. 如果是 Android 12 以下版本,請據此編輯 repo-sys-img.xml

    • <sdk:url> 更新為 AVD 系統映像檔網址
    • 如要瞭解檔案的其他更新,請參閱 sdk-sys-img-03.xsd
    • 在使用者可存取的位置代管 repo-sys-img.xml,並取得其網址做為自訂更新網站網址

如要使用自訂 AVD 映像檔,請在 SDK Manager 中執行以下操作:

  1. 自訂更新網站網址新增為 SDK 更新網站

    這項操作會將自訂 AVD 系統映像檔新增至「System Image」頁面。

  2. 下載並選取自訂 AVD 系統映像檔來建立 AVD

新增多螢幕支援功能

Android 10 強化了多螢幕功能,以更支援更多用途,例如自動和電腦模式。Android Emulator 也支援多螢幕模擬。因此,您不必設定實體硬體,也能建立特定的多螢幕環境。

您可以做出下列變更,或從這些 CL 中挑選所需,來為 AVD 新增多螢幕支援功能。

  • build/target/product/sdk_phone_x86.mk 檔案中加入以下幾行程式碼,即可將多螢幕供應器新增至建構作業:

    PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \
        system/lib/libemulator_multidisplay_jni.so \
        system/lib64/libemulator_multidisplay_jni.so \
        system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \
    PRODUCT_PACKAGES += MultiDisplayProvider
    
  • 將這一行新增至 device/generic/goldfish/data/etc/advancedFeatures.ini 檔案,以啟用多顯示功能標記:

    MultiDisplay = on
    

您可以從下列來源取得最新的模擬器功能和版本資訊: