คุณสามารถใช้โปรแกรมจำลอง 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
คุณดูฟีเจอร์ล่าสุดของโปรแกรมจำลองและข้อมูลการเผยแพร่ได้จากแหล่งข้อมูลต่อไปนี้