คุณสามารถใช้โปรแกรมจำลอง Android เพื่อสร้างการจำลองอุปกรณ์ Android ที่เรียกใช้อิมเมจระบบ Android ที่กำหนดเองของคุณเองได้ นอกจากนี้ คุณยังเพิ่มการรองรับหลายจอแสดงผลลงในการจำลอง Android Emulator ได้ด้วย
สถาปัตยกรรมของโปรแกรมจำลอง Android
Android Emulator เรียกใช้ระบบปฏิบัติการ Android ในเครื่องเสมือนที่เรียกว่าอุปกรณ์เสมือน Android (AVD) AVD แต่ละรายการ มีชุดซอฟต์แวร์ Android แบบเต็ม และทำงานราวกับ อยู่ในอุปกรณ์จริง รูปที่ 1 แสดงสถาปัตยกรรมระดับสูงของโปรแกรมจำลอง Android ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมจำลองได้ที่เรียกใช้แอปในโปรแกรมจำลอง Android
รูปที่ 1 สถาปัตยกรรมของโปรแกรมจำลอง Android
สร้างอิมเมจ AVD
AVD แต่ละรายการมีอิมเมจระบบ Android ซึ่งทำงานใน AVD นั้น AVD Manager มีอิมเมจระบบบางรายการ นอกจากนี้ คุณยังสร้างอิมเมจระบบ AVD ที่กำหนดเองจากซอร์สโค้ดและสร้างการจำลองอุปกรณ์เพื่อเรียกใช้ได้ด้วย
วิธีสร้างและเรียกใช้อิมเมจระบบ AVD
ดาวน์โหลดซอร์สโค้ด Android
mkdir aosp-android-latest-release; cd aosp-android-latest-release
repo init -u
repo sync -j24
หากต้องการสร้าง Android เวอร์ชันอื่นๆ คุณสามารถดูชื่อสาขาได้ในที่เก็บ Android สาธารณะ ซึ่งจะแมปกับชื่อเวอร์ชัน แท็ก และหมายเลขบิลด์ของ Android
สร้างอิมเมจระบบ AVD ซึ่งเป็นกระบวนการเดียวกับการสร้างอิมเมจระบบของอุปกรณ์ Android เช่น หากต้องการสร้าง AVD แบบ 64 บิต x86 ให้ทำดังนี้
source ./build/envsetup.sh
lunch sdk_phone_x86_64
make -j32
เรียกใช้อิมเมจระบบ AVD ในโปรแกรมจำลอง Android โดยทำดังนี้
emulator
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการเรียกใช้โปรแกรมจำลองได้ที่ ตัวเลือกการเริ่มต้นบรรทัดคำสั่ง รูปที่ 2 แสดงตัวอย่าง โปรแกรมจำลอง Android ที่เรียกใช้ AVD
รูปที่ 2 โปรแกรมจำลอง Android ที่เรียกใช้ AVD
แชร์อิมเมจระบบ 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
จะสร้างไฟล์ 2 ไฟล์ภายใต้aosp-android-latest-release/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 ของไฟล์เพื่อใช้เป็น URL ของอิมเมจระบบ AVDสำหรับ Android 12 และต่ำกว่า ให้แก้ไข
repo-sys-img.xml
ตามความเหมาะสม- อัปเดต
<sdk:url>
เป็น URL รูปภาพระบบ AVD - ดูข้อมูลเกี่ยวกับการอัปเดตอื่นๆ ในไฟล์ได้ที่ sdk-sys-img-03.xsd
- โฮสต์
repo-sys-img.xml
ในตำแหน่งที่ผู้ใช้เข้าถึงได้ และรับ URL เพื่อใช้เป็น URL ของเว็บไซต์อัปเดตที่กำหนดเอง
- อัปเดต
หากต้องการใช้รูปภาพ AVD ที่กำหนดเอง ให้ทำดังนี้ใน SDK Manager
เพิ่ม URL เว็บไซต์อัปเดตที่กำหนดเองเป็น เว็บไซต์อัปเดต SDK
ซึ่งจะเพิ่มอิมเมจระบบ AVD ที่กำหนดเองลงในหน้าอิมเมจระบบ
สร้าง AVD โดยดาวน์โหลดและเลือกอิมเมจระบบ AVD ที่กำหนดเอง
เพิ่มการรองรับหลายจอภาพ
Android 10 ปรับปรุงการแสดงผลแบบหลายหน้าจอ เพื่อรองรับกรณีการใช้งานต่างๆ ได้ดียิ่งขึ้น เช่น โหมดอัตโนมัติและโหมดเดสก์ท็อป 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
คุณดูฟีเจอร์ล่าสุดของโปรแกรมจำลองและข้อมูลการเผยแพร่ได้จากแหล่งข้อมูลต่อไปนี้