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

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

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

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

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

รูปที่ 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

  2. สร้างอิมเมจระบบ AVD นี่เป็นกระบวนการเดียวกับ การสร้างอิมเมจระบบอุปกรณ์ Android ตัวอย่างเช่น หากต้องการสร้าง AVD x86 32 บิต:

    mkdir aosp-main; cd aosp-main
    source ./build/envsetup.sh
    lunch sdk_phone_x86
    make -j32
    

    หากคุณต้องการสร้าง x86 64-bit AVD ให้รัน lunch สำหรับเป้าหมาย 64-บิต:

    lunch sdk_phone_x86_64
    
  3. เรียกใช้อิมเมจระบบ AVD ใน Android Emulator:

    emulator
    

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

Android Emulator ที่ใช้ AVD

รูปที่ 2 Android Emulator ที่ใช้ 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 สร้างสองไฟล์ภายใต้ 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> เป็น AVD System Image URL ของคุณ
    • ดู sdk-sys-img-03.xsd เพื่อเรียนรู้เกี่ยวกับการอัปเดตอื่นๆ ของไฟล์
    • โฮสต์ repo-sys-img.xml ที่ที่ผู้ใช้ของคุณสามารถเข้าถึงได้ และรับ URL เพื่อใช้เป็น URL ของไซต์อัปเดตแบบกำหนดเอง

หากต้องการใช้อิมเมจ AVD แบบกำหนดเอง ให้ทำดังต่อไปนี้ใน SDK Manager:

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

    สิ่งนี้จะเพิ่มอิมเมจระบบ AVD ที่คุณกำหนดเองลงในหน้าอิมเมจระบบ

  2. สร้าง AVD โดยการดาวน์โหลดและเลือกอิมเมจระบบ AVD ที่กำหนดเอง

การเพิ่มการรองรับการแสดงผลหลายจอ

Android 10 ปรับปรุง Multi-Display (MD) เพื่อรองรับการใช้งานต่างๆ ได้ดียิ่งขึ้น เช่น โหมดอัตโนมัติและเดสก์ท็อป 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
    
  • เปิดใช้งานการตั้งค่าสถานะคุณสมบัติ Multi-Display โดยเพิ่มบรรทัดนี้ลงในไฟล์ device/generic/goldfish/data/etc/advancedFeatures.ini :

    MultiDisplay = on
    

คุณสามารถค้นหาคุณสมบัติโปรแกรมจำลองล่าสุดและข้อมูลการเผยแพร่ได้จากแหล่งต่อไปนี้: