您可以使用 Android Emulator 創建運行您自己的自定義 Android 系統映像的 Android 設備的仿真。您還可以共享您的自定義 Android 系統映像,以便其他人可以運行它們的仿真。此外,您可以為 Android Emulator 仿真添加多顯示器支持。
Android 模擬器架構
Android Emulator 允許您在 Windows、macOS 或 Linux 機器上運行 Android 設備的仿真。 Android 模擬器在稱為 Android 虛擬設備 (AVD) 的虛擬機中運行 Android 操作系統。 AVD 包含完整的Android 軟件堆棧,它就像在物理設備上一樣運行。圖 1 是 Android Emulator 的高級架構圖。有關模擬器的更多信息,請參閱在 Android 模擬器上運行應用程序。
圖 1. Android 模擬器架構
構建 AVD 圖像
每個 AVD 都包含一個 Android 系統映像,該映像在該 AVD 中運行。 AVD Manager 包含一些系統映像。您可以從源代碼構建自定義 AVD 系統映像並創建設備仿真來運行它們。
要構建和運行 AVD 系統映像:
下載安卓源碼:
mkdir aosp-master; cd aosp-master
repo init -u
repo sync -j24
如果您想構建其他 Android 版本,您可以在公共 Android 存儲庫中找到它們的分支名稱。它們映射到Android 代號、標籤和內部版本號。
構建 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
在 Android Emulator 中運行 AVD 系統映像:
emulator
有關運行模擬器的更多詳細信息,請參閱命令行啟動選項。圖 2 顯示了一個運行 AVD 的 Android 模擬器示例。
圖 2.運行 AVD 的 Android 模擬器
共享 AVD 系統映像以供其他人與 Android Studio 一起使用
按照這些說明與他人共享您的 AVD 系統映像。他們可以將您的 AVD 系統映像與Android Studio一起使用來開發和測試應用程序。
製作額外的
sdk
和sdk_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
-
將文件
sdk-repo-linux-system-images-eng.[username].zip
託管在您的用戶可以訪問的地方,並獲取其 URL 以用作AVD 系統映像 URL 。相應地編輯
repo-sys-img.xml
:- 將
<sdk:url>
更新為您的AVD 系統映像 URL 。 - 請參閱sdk-sys-img-03.xsd以了解該文件的其他更新。
- 將
repo-sys-img.xml
在您的用戶可以訪問的某個地方,並獲取其 URL 以用作自定義更新站點 URL 。
要使用自定義 AVD 圖像,請在 SDK 管理器中執行以下操作:
這會將您的自定義 AVD 系統映像添加到系統映像頁面。
通過下載並選擇自定義 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
您可以從以下來源找到最新的模擬器功能和發布信息: