您可以使用 Android Emulator 模擬執行自訂 Android 系統映像檔的 Android 裝置。此外,您也可以在 Android Emulator 模擬中新增多螢幕支援功能。
Android Emulator 架構
Android Emulator 會在稱為 Android 虛擬裝置 (AVD) 的虛擬機器中執行 Android 作業系統。每個 AVD 都包含完整的 Android 軟體堆疊,並且會以實體裝置的方式執行。圖 1 說明 Android Emulator 的大致架構。如要進一步瞭解模擬器,請參閱「在 Android Emulator 上執行應用程式」。
圖 1. Android Emulator 架構。
建構 AVD 映像檔
每個 AVD 都包含 Android 系統映像檔,會在該 AVD 中執行。AVD Manager 包含部分系統映像檔。您可以從原始碼建構自訂 AVD 系統映像檔,並建立裝置模擬功能來執行這些映像檔。
如要建構及執行 AVD 系統映像檔,請按照下列步驟操作:
下載 Android 原始碼:
mkdir aosp-main; cd aosp-main
repo init -u
repo sync -j24
如果您想建構其他 Android 版本,可以在 公開 Android 存放區中找到其分支名稱。這些名稱會對應至 Android 產品代號、標記和版本號碼。
建構 AVD 系統映像檔。這個程序與建構 Android 裝置系統映像檔的程序相同。舉例來說,如要建構 x86 64 位元 AVD:
source ./build/envsetup.sh
lunch sdk_phone_x86_64
make -j32
在 Android Emulator 中執行 AVD 系統映像檔:
emulator
如要進一步瞭解如何執行模擬器,請參閱「指令列啟動選項」。圖 2 顯示 Android Emulator 執行 AVD 的範例:
圖 2. 執行 AVD 的 Android Emulator。
分享 AVD 系統映像檔,供其他人使用 Android Studio
請按照下列操作說明,與他人分享 AVD 系統映像檔。他們可以使用 Android Studio 搭配您的 AVD 系統映像檔,開發及測試應用程式。
建立其他
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
託管在使用者可存取的位置,並取得其網址,用於做為 AVD 系統映像檔網址。如果是 Android 12 以下版本,請依照下列步驟編輯
repo-sys-img.xml
:- 將
<sdk:url>
更新至 AVD 系統映像檔網址。 - 請參閱 sdk-sys-img-03.xsd,瞭解檔案的其他更新。
- 請在使用者可存取的位置主機代管
repo-sys-img.xml
,並取得其網址,做為自訂更新網站網址使用。
- 將
如要使用自訂 AVD 映像檔,請在 SDK Manager 中執行下列操作:
-
這麼做會將自訂 AVD 系統映像檔新增至「System Images」(系統映像檔) 頁面。
建立 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
您可以從下列來源取得最新的模擬器功能和版本資訊: