คุณสามารถใช้โปรแกรมจำลอง Android เพื่อสร้างการจําลองอุปกรณ์ Android ที่เรียกใช้อิมเมจระบบ Android ที่กําหนดเอง นอกจากนี้ คุณยังเพิ่มการรองรับหลายจอแสดงผลในการจําลองของ Android Emulator ได้อีกด้วย
สถาปัตยกรรมของโปรแกรมจำลอง Android
โปรแกรมจำลอง Android ช่วยให้คุณเรียกใช้ระบบปฏิบัติการ Android ในเครื่องเสมือนที่เรียกว่าอุปกรณ์เสมือน Android (AVD) AVD แต่ละชุดมีสแต็กซอฟต์แวร์ Android เต็มรูปแบบ และจะทำงานราวกับว่าอยู่บนอุปกรณ์จริง รูปที่ 1 แสดงสถาปัตยกรรมระดับสูงของโปรแกรมจำลอง Android ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมจำลองได้ที่หัวข้อเรียกใช้แอปในโปรแกรมจำลอง Android
รูปที่ 1 สถาปัตยกรรม Android Emulator
สร้างอิมเมจ 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 สำหรับ URL เพื่อใช้เป็น URL ของเว็บไซต์การอัปเดตที่กำหนดเอง
- อัปเดต
หากต้องการใช้อิมเมจ AVD ที่กำหนดเอง ให้ทำตามขั้นตอนต่อไปนี้ใน SDK Manager
เพิ่ม 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
คุณดูฟีเจอร์และข้อมูลรุ่นล่าสุดของโปรแกรมจำลองได้จากแหล่งที่มาต่อไปนี้