使用 Android Emulator 虛擬設備

您可以使用 Android Emulator 創建運行您自己的自定義 Android 系統映像的 Android 設備的仿真。您還可以共享您的自定義 Android 系統映像,以便其他人可以運行它們的仿真。此外,您可以為 Android Emulator 仿真添加多顯示器支持。

Android 模擬器架構

Android Emulator 允許您在 Windows、macOS 或 Linux 機器上運行 Android 設備的仿真。 Android 模擬器在稱為 Android 虛擬設備 (AVD) 的虛擬機中運行 Android 操作系統。 AVD 包含完整的Android 軟件堆棧,它就像在物理設備上一樣運行。圖 1 是 Android Emulator 的高級架構圖。有關模擬器的更多信息,請參閱在 Android 模擬器上運行應用程序

Android 模擬器架構

圖 1. Android 模擬器架構

構建 AVD 圖像

每個 AVD 都包含一個 Android 系統映像,該映像在該 AVD 中運行。 AVD Manager 包含一些系統映像。您可以從源代碼構建自定義 AVD 系統映像並創建設備仿真來運行它們。

要構建和運行 AVD 系統映像:

  1. 下載安卓源碼:

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

    如果您想構建其他 Android 版本,您可以在公共 Android 存儲庫中找到它們的分支名稱。它們映射到Android 代號、標籤和內部版本號

  2. 構建 AVD 系統映像。這與構建 Android設備系統映像的過程相同。例如,要構建 x86 32 位 AVD:

    mkdir aosp-master; cd aosp-master
    source ./build/envsetup.sh
    lunch sdk_phone_x86
    make -j32
    

    如果您更喜歡構建 x86 64 位 AVD,請為 64 位目標運行lunch

    lunch sdk_phone_x86_64
    
  3. 在 Android Emulator 中運行 AVD 系統映像:

    emulator
    

有關運行模擬器的更多詳細信息,請參閱命令行啟動選項。圖 2 顯示了一個運行 AVD 的 Android 模擬器示例。

運行 AVD 的 Android 模擬器

圖 2.運行 AVD 的 Android 模擬器

共享 AVD 系統映像以供其他人與 Android Studio 一起使用

按照這些說明與他人共享您的 AVD 系統映像。他們可以將您的 AVD 系統映像與Android Studio一起使用來開發和測試應用程序。

  1. 製作額外的sdksdk_repo包:

    $ make -j32 sdk sdk_repo
    

    這會在aosp-master/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託管在您的用戶可以訪問的地方,並獲取其 URL 以用作AVD 系統映像 URL

  3. 相應地編輯repo-sys-img.xml

    • <sdk:url>更新為您的AVD 系統映像 URL
    • 請參閱sdk-sys-img-03.xsd以了解該文件的其他更新。
  4. repo-sys-img.xml在您的用戶可以訪問的某個地方,並獲取其 URL 以用作自定義更新站點 URL

要使用自定義 AVD 圖像,請在 SDK 管理器中執行以下操作:

  1. 自定義更新站點 URL添加為 SDK 更新站點

    這會將您的自定義 AVD 系統映像添加到系統映像頁面。

  2. 通過下載並選擇自定義 AVD 系統映像來創建 AVD

添加多顯示器支持

Android 10增強了多顯示器 (MD)以更好地支持更多用例,例如自動和桌面模式。 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
    

您可以從以下來源找到最新的模擬器功能和發布信息: