คุณสามารถใช้โปรแกรมจำลอง Android เพื่อสร้างการจําลองอุปกรณ์ Android ที่เรียกใช้อิมเมจระบบ Android ที่กําหนดเอง นอกจากนี้ คุณยังเพิ่มการรองรับหลายจอแสดงผลในการจําลองของ Android Emulator ได้อีกด้วย
สถาปัตยกรรมของโปรแกรมจำลอง Android
Android Emulator ทำงานบนระบบปฏิบัติการ Android ในเครื่องเสมือนที่เรียกว่า Android Virtual Device (AVD) AVD แต่ละรายการจะมีสแต็กซอฟต์แวร์ Android ทั้งหมด และทำงานราวกับอยู่ในอุปกรณ์จริง รูปที่ 1 แสดงสถาปัตยกรรมระดับสูงของโปรแกรมจำลอง Android ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมจำลองได้ที่หัวข้อเรียกใช้แอปในโปรแกรมจำลอง Android
รูปที่ 1 สถาปัตยกรรมของโปรแกรมจำลอง Android
สร้างอิมเมจ AVD
AVD แต่ละรายการจะมีอิมเมจระบบ Android ซึ่งจะทำงานใน AVD นั้น เครื่องมือจัดการ AVD มีภาพระบบบางส่วน และคุณยังสร้างอิมเมจระบบ AVD ที่กําหนดเองจากซอร์สโค้ด รวมถึงสร้างการจําลองอุปกรณ์เพื่อเรียกใช้อิมเมจเหล่านั้นได้ด้วย
วิธีสร้างและเรียกใช้อิมเมจระบบ AVD
ดาวน์โหลดซอร์สโค้ด Android
mkdir aosp-main; cd aosp-main
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-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>
เป็น URL ของภาพระบบ AVD - ดูข้อมูลการอัปเดตอื่นๆ ของไฟล์ได้ที่ sdk-sys-img-03.xsd
- โฮสต์
repo-sys-img.xml
ไว้ที่ผู้ใช้เข้าถึงได้ แล้วรับ URL ของrepo-sys-img.xml
มาใช้เป็นURL เว็บไซต์อัปเดตที่กำหนดเอง
- อัปเดต
หากต้องการใช้รูปภาพ AVD ที่กําหนดเอง ให้ทําดังนี้ในเครื่องมือจัดการ SDK
เพิ่ม URL เว็บไซต์อัปเดตที่กำหนดเองเป็นเว็บไซต์อัปเดต SDK
ซึ่งจะเพิ่มภาพระบบ AVD ที่กําหนดเองลงในหน้า "ภาพระบบ"
สร้าง AVD โดยดาวน์โหลดและเลือกภาพระบบ AVD ที่กําหนดเอง
เพิ่มการรองรับหลายจอภาพ
Android 10 ปรับปรุงจอแสดงผลหลายจอเพื่อรองรับกรณีการใช้งานเพิ่มเติม เช่น โหมดอัตโนมัติและโหมดเดสก์ท็อปได้ดียิ่งขึ้น โปรแกรมจำลอง Android ยังรองรับการจําลองหลายจอภาพด้วย คุณจึงสร้างสภาพแวดล้อมแบบหลายจอแสดงผลที่เฉพาะเจาะจงได้โดยไม่ต้องตั้งค่าฮาร์ดแวร์จริง
คุณสามารถเพิ่มการรองรับจอแสดงผลหลายจอลงใน 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
เปิดใช้ Flag ฟีเจอร์หลายจอแสดงผลโดยเพิ่มบรรทัดนี้ลงในไฟล์
device/generic/goldfish/data/etc/advancedFeatures.ini
MultiDisplay = on
คุณดูฟีเจอร์และข้อมูลรุ่นล่าสุดของโปรแกรมจำลองได้จากแหล่งที่มาต่อไปนี้