คุณสามารถใช้โปรแกรมจำลองของ Android เพื่อสร้างการจำลองอุปกรณ์ Android ที่ใช้รูปภาพระบบ Android ที่กำหนดเอง นอกจากนี้ คุณยังเพิ่มการรองรับหลายจอภาพในการจำลองโปรแกรมจำลองของ Android ได้ด้วย
สถาปัตยกรรมโปรแกรมจำลองของ Android
โปรแกรมจำลองของ Android เรียกใช้ระบบปฏิบัติการ Android ในเครื่องเสมือนที่เรียกว่าอุปกรณ์เสมือน Android (AVD) AVD แต่ละรายการ มีสแต็กซอฟต์แวร์ Android แบบเต็ม และทำงานราวกับว่า อยู่ในอุปกรณ์จริง รูปที่ 1 แสดงสถาปัตยกรรมระดับสูงของ Android Emulator ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมจำลองได้ที่ เรียกใช้แอปในโปรแกรมจำลองของ Android
รูปที่ 1 สถาปัตยกรรมโปรแกรมจำลองของ Android
สร้างรูปภาพ AVD
AVD แต่ละรายการมีอิมเมจระบบ Android ซึ่งทำงานใน AVD นั้น AVD Manager มีรูปภาพระบบบางส่วน และคุณสามารถสร้างรูปภาพระบบ AVD ที่กำหนดเองจากซอร์สโค้ดและสร้างการจำลองอุปกรณ์เพื่อเรียกใช้รูปภาพเหล่านั้นได้
วิธีสร้างและเรียกใช้รูปภาพระบบ AVD
ดาวน์โหลดซอร์สโค้ด Android โดยทำดังนี้
mkdir aosp-android-latest-release; cd aosp-android-latest-releaserepo init -urepo sync -j24
หากต้องการสร้าง Android เวอร์ชันอื่นๆ คุณสามารถดูชื่อสาขาได้ใน ที่เก็บสาธารณะของ Android ซึ่งจะแมปกับ ชื่อเวอร์ชัน แท็ก และหมายเลขบิลด์ของ Android
สร้างรูปภาพระบบ AVD ซึ่งเป็นกระบวนการเดียวกับการสร้างรูปภาพระบบอุปกรณ์ Android เช่น หากต้องการสร้าง AVD x86 64 บิต ให้ทำดังนี้
source ./build/envsetup.shlunch sdk_phone_x86_64make -j32เรียกใช้รูปภาพระบบ AVD ใน Android Emulator โดยทำดังนี้
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].ziprepo-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
เพิ่มURL เว็บไซต์อัปเดตที่กำหนดเอง เป็น เว็บไซต์อัปเดต SDK
ซึ่งจะเพิ่มอิมเมจระบบ AVD ที่กำหนดเองลงในหน้า "อิมเมจระบบ"
สร้าง AVD โดยดาวน์โหลดและเลือกอิมเมจระบบ AVD ที่กำหนดเอง
เพิ่มการรองรับหลายจอภาพ
Android 10 ปรับปรุงการรองรับหลายจอภาพ ให้รองรับกรณีการใช้งานต่างๆ ได้ดียิ่งขึ้น เช่น โหมดรถยนต์และโหมดเดสก์ท็อป นอกจากนี้ Android Emulator ยังรองรับการจำลองหลายจอภาพด้วย คุณจึงสร้างสภาพแวดล้อมหลายจอภาพที่เฉพาะเจาะจงได้โดยไม่ต้องตั้งค่าฮาร์ดแวร์จริง
คุณสามารถเพิ่มการรองรับหลายจอภาพลงใน AVD ได้โดยทำการเปลี่ยนแปลงต่อไปนี้ หรือ โดยการเลือกจาก CL เหล่านี้
เพิ่มผู้ให้บริการหลายจอภาพลงในบิลด์โดยเพิ่มบรรทัดต่อไปนี้ลงในไฟล์
build/target/product/sdk_phone_x86.mkPRODUCT_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.iniMultiDisplay = on
คุณดูฟีเจอร์ล่าสุดและข้อมูลการเปิดตัวของโปรแกรมจำลองได้จากแหล่งข้อมูลต่อไปนี้