您可以使用 Android 模擬器建立運行您自己的自訂 Android 系統映像的 Android 裝置的模擬。您還可以共用自訂 Android 系統映像,以便其他人可以執行它們的模擬。此外,您還可以為 Android 模擬器模擬添加多顯示器支援。
Android模擬器架構
Android 模擬器可讓您在 Windows、macOS 或 Linux 電腦上執行 Android 裝置的模擬。 Android 模擬器在稱為 Android 虛擬裝置 (AVD) 的虛擬機器中運行 Android 作業系統。 AVD 包含完整的Android 軟體堆疊,它的運作就像在實體裝置上一樣。圖 1 是 Android 模擬器的高階架構圖。有關模擬器的更多信息,請參閱在 Android 模擬器上運行應用程式。
圖 1. Android 模擬器架構
建構 AVD 影像
每個 AVD 都包含一個在該 AVD 中運行的 Android 系統映像。 AVD 管理器包含一些系統映像。您還可以從原始程式碼建立自訂 AVD 系統映像並建立裝置模擬來運行它們。
要建置並運行 AVD 系統映像:
下載安卓原始碼:
mkdir aosp-main; cd aosp-main
repo init -u
repo sync -j24
如果您想建立其他 Android 版本,您可以在公共 Android 儲存庫中找到它們的分支名稱。它們會對應到Android 代號、標籤和版本號。
建置 AVD 系統映像。這與建立 Android設備系統映像的過程相同。例如,要建置 x86 32 位元 AVD:
mkdir aosp-main; cd aosp-main
source ./build/envsetup.sh
lunch sdk_phone_x86
make -j32
如果您喜歡建立 x86 64 位元 AVD,請為 64 位元目標運行
lunch
:lunch sdk_phone_x86_64
在 Android 模擬器中運行 AVD 系統映像:
emulator
有關運行模擬器的更多詳細信息,請參閱命令列啟動選項。圖 2 顯示了運行 AVD 的 Android 模擬器的範例。
圖 2.運行 AVD 的 Android 模擬器
共用 AVD 系統映像供其他人與 Android Studio 搭配
請依照以下說明與其他人共用您的 AVD 系統映像。他們可以將您的 AVD 系統映像與Android Studio結合使用來開發和測試應用程式。
製作額外的
sdk
和sdk_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
-
將檔案
sdk-repo-linux-system-images-eng.[username].zip
在使用者可存取的位置,並取得其 URL 以用作AVD 系統映像 URL 。對於 Android 12 及更低版本,請相應地編輯
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 模擬器也支援多顯示器模擬。因此,您可以建立特定的多顯示環境,而無需設定真實的硬體。
您可以透過進行以下變更或從這些 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
您可以從以下來源找到最新的模擬器功能和版本資訊: