使用 Android 模擬器虛擬設備

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

安卓模擬器架構

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

安卓模擬器架構

圖1. Android模擬器架構

構建 AVD 映像

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

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

  1. 下載安卓源:

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

    如果你想建立其他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,運行lunch為64位的目標:

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

    emulator
    

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

運行 AVD 的 Android 模擬器

圖2. Android模擬器運行的AVD

共享 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地方訪問你的用戶,並獲取其網址為自定義更新網站網址使用。

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

  1. 添加自定義更新網站網址為SDK更新網站

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

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

添加多顯示器支持

Android的10增強的多屏顯示(MD) ,以更好地支持更多的使用情況,如汽車和桌面模式。 Android Emulator 還支持多顯示器仿真。因此,您無需設置真正的硬件即可創建特定的多顯示器環境。

您可以通過以下更改的AVD添加多顯示器支持,或櫻桃採摘這些的CL

  • 通過添加這些行到文件的多顯示器提供商添加到構建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
    

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