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

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

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

Android Emulator ให้คุณเรียกใช้การจำลองอุปกรณ์ Android บนเครื่อง Windows, macOS หรือ Linux 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-master; cd aosp-master
    repo init -u
    repo sync -j24
    

    หากคุณต้องการที่จะสร้างรุ่นอื่น ๆ Android คุณสามารถค้นหาชื่อสาขาของพวกเขาใน พื้นที่เก็บข้อมูล Android สาธารณะ พวกเขาแม Android codenames แท็กและหมายเลขรูปร่าง

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

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

    หากคุณต้องการที่จะสร้าง 86 x 64 บิต 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 สตูดิโอ ในการพัฒนาและทดสอบแอพพลิเค

  1. ตรวจเพิ่มเติม sdk และ sdk_repo แพคเกจ:

    $ make -j32 sdk sdk_repo
    

    นี้สร้างแฟ้มที่สองภายใต้ aosp-master/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. แก้ไข repo-sys-img.xml ตาม:

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

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

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

    สิ่งนี้จะเพิ่มอิมเมจระบบ AVD ที่กำหนดเองของคุณไปยังหน้าอิมเมจระบบ

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

เพิ่มการรองรับ Multi-Display

Android 10 ช่วยเพิ่ม Multi-Display (MD) ที่ให้การสนับสนุนที่ดีกว่ากรณีการใช้งานมากขึ้นเช่นรถยนต์และเดสก์ทอปโหมด Android Emulator ยังรองรับการจำลองหลายหน้าจออีกด้วย ดังนั้น คุณจึงสามารถสร้างสภาพแวดล้อมแบบหลายจอแสดงผลเฉพาะโดยไม่ต้องตั้งค่าฮาร์ดแวร์จริง

คุณสามารถเพิ่มการสนับสนุนหลายจอแสดงผลไปยัง AVD โดยการเปลี่ยนแปลงดังต่อไปนี้หรือโดยการเลือกเชอร์รี่จาก CLS เหล่านี้

  • เพิ่มผู้ให้บริการหลายจอแสดงผลที่จะสร้างโดยการเพิ่มบรรทัดเหล่านี้ไปยังแฟ้ม 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
    

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