ใช้อุปกรณ์เสมือนของ Android Emulator

คุณใช้ Android Emulator เพื่อสร้างการจำลองอุปกรณ์ Android ที่ใช้อิมเมจระบบ Android ที่คุณกำหนดเอง นอกจากนี้ คุณยังเพิ่มการรองรับหลายจอแสดงผลในการจำลอง Android Emulator ได้ด้วย

สถาปัตยกรรม Android Emulator

Android Emulator ให้คุณเรียกใช้ Android Emulator เพื่อเรียกใช้ระบบปฏิบัติการ Android ในเครื่องเสมือนที่เรียกว่า Android Virtual Device (AVD) AVD แต่ละชุดมีสแต็กซอฟต์แวร์ Android เต็มรูปแบบ และจะทำงานราวกับว่าอยู่บนอุปกรณ์จริง ภาพที่ 1 แสดงสถาปัตยกรรมระดับสูง ของ Android Emulator ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมจำลองได้ที่เรียกใช้แอปบน Android Emulator

สถาปัตยกรรม Android Emulator

รูปที่ 1 สถาปัตยกรรม Android Emulator

สร้างรูปภาพ AVD

AVD แต่ละรายการจะมีอิมเมจระบบ Android ซึ่งทำงานในรูปแบบ AVD ดังกล่าว AVD Manager จะมีอิมเมจระบบบางรายการ และคุณยังสร้างอิมเมจระบบ AVD ที่กำหนดเองจากซอร์สโค้ดและสร้างการจำลองอุปกรณ์เพื่อเรียกใช้อิมเมจดังกล่าวได้

หากต้องการสร้างและเรียกใช้อิมเมจระบบ AVD ให้ทำดังนี้

  1. ดาวน์โหลดแหล่งที่มาของ Android:

    mkdir aosp-main; cd aosp-main
    repo init -u
    repo sync -j24
    

หากต้องการสร้าง Android เวอร์ชันอื่น ให้ค้นหาชื่อสาขาในที่เก็บ Android สาธารณะ โดยจะแมปกับ ชื่อโค้ด แท็ก และหมายเลขบิลด์ของ Android

  1. สร้างอิมเมจระบบ AVD ซึ่งเป็นขั้นตอนเดียวกันกับการสร้างอิมเมจระบบอุปกรณ์ Android ตัวอย่างเช่น หากต้องการสร้าง AVD แบบ x86 64 บิต ให้ทำดังนี้

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
    
  2. เรียกใช้อิมเมจระบบ AVD ใน Android Emulator ด้วยคำสั่งต่อไปนี้

    emulator
    

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการเรียกใช้โปรแกรมจำลองได้ที่ตัวเลือกการเริ่มต้นบรรทัดคำสั่ง รูปที่ 2 แสดงตัวอย่าง โปรแกรมจำลอง Android ที่ใช้ AVD

โปรแกรมจำลอง Android ที่ใช้ AVD

รูปที่ 2 โปรแกรมจำลอง Android ที่ใช้ AVD

แชร์รูปภาพระบบ AVD เพื่อให้ผู้อื่นใช้กับ Android Studio

ทําตามวิธีการเหล่านี้เพื่อแชร์รูปภาพระบบ AVD กับผู้อื่น ผู้ให้บริการดังกล่าวจะใช้รูปภาพระบบ AVD ของคุณกับ Android Studio เพื่อพัฒนาและทดสอบแอปได้

  1. สร้างแพ็กเกจ 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
  2. โฮสต์ไฟล์ sdk-repo-linux-system-images-eng.[username].zip ที่ผู้ใช้เข้าถึงได้ และรับ URL เพื่อใช้เป็น AVD System Image URL

  3. สำหรับ 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

  1. เพิ่ม URL ของเว็บไซต์การอัปเดตที่กำหนดเองเป็นเว็บไซต์การอัปเดต SDK

    การดำเนินการนี้จะเพิ่มรูปภาพระบบ AVD ที่กำหนดเองลงในหน้าอิมเมจระบบ

  2. สร้าง 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
    
  • เปิดใช้แฟล็กฟีเจอร์หลายหน้าจอโดยเพิ่มบรรทัดนี้ลงในไฟล์ device/generic/goldfish/data/etc/advancedFeatures.ini

    MultiDisplay = on
    

คุณดูฟีเจอร์โปรแกรมจำลองล่าสุดและข้อมูลรุ่นได้จากแหล่งที่มาต่อไปนี้