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

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

สถาปัตยกรรมโปรแกรมจำลองของ Android

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

สถาปัตยกรรมของโปรแกรมจำลองของ Android

รูปที่ 1 สถาปัตยกรรมโปรแกรมจำลองของ Android

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

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

วิธีสร้างและเรียกใช้รูปภาพระบบ AVD

  1. ดาวน์โหลดซอร์สโค้ด Android โดยทำดังนี้

    mkdir aosp-android-latest-release; cd aosp-android-latest-release
    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-android-latest-release/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 เพื่อใช้เป็นURL รูปภาพระบบ AVD

  3. สำหรับ Android 12 ลงมา ให้แก้ไข repo-sys-img.xml ดังนี้

    • อัปเดต <sdk:url> เป็นURL รูปภาพระบบ AVD
    • ดู sdk-sys-img-03.xsd เพื่อดูข้อมูลเกี่ยวกับการอัปเดตอื่นๆ ในไฟล์
    • โฮสต์ repo-sys-img.xml ในตำแหน่งที่ผู้ใช้เข้าถึงได้ และรับ URL เพื่อใช้เป็นURL เว็บไซต์อัปเดตที่กำหนดเอง

หากต้องการใช้รูปภาพ AVD ที่กำหนดเอง ให้ทำดังนี้ในเครื่องมือจัดการ SDK

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

    ซึ่งจะเพิ่มอิมเมจระบบ AVD ที่กำหนดเองลงในหน้า "อิมเมจระบบ"

  2. สร้าง 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
    

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