คุณใช้ Android Emulator เพื่อสร้างการจำลองอุปกรณ์ Android ที่ใช้อิมเมจระบบ Android ที่คุณกำหนดเอง นอกจากนี้ คุณยังเพิ่มการรองรับหลายจอแสดงผลในการจำลอง Android Emulator ได้ด้วย
สถาปัตยกรรม Android Emulator
Android Emulator เรียกใช้ระบบปฏิบัติการ Android ในเครื่องเสมือนที่เรียกว่า Android Virtual Device (AVD) AVD แต่ละชุดมีสแต็กซอฟต์แวร์ Android เต็มรูปแบบ และจะทำงานราวกับว่าอยู่บนอุปกรณ์จริง ภาพที่ 1 แสดงสถาปัตยกรรมระดับสูง ของ Android Emulator ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมจำลองได้ที่เรียกใช้แอปบน Android Emulator
รูปที่ 1 สถาปัตยกรรม Android Emulator
สร้างรูปภาพ AVD
AVD แต่ละไฟล์มีอิมเมจระบบ Android ซึ่งจะทำงานในรูปแบบ AVD ดังกล่าว AVD Manager จะมีอิมเมจระบบบางรายการ และคุณยังสร้างอิมเมจระบบ AVD ที่กำหนดเองจากซอร์สโค้ดและสร้างการจำลองอุปกรณ์เพื่อเรียกใช้อิมเมจเหล่านั้นได้
หากต้องการสร้างและเรียกใช้อิมเมจระบบ AVD ให้ทำดังนี้
ดาวน์โหลดแหล่งที่มาของ Android:
mkdir aosp-android-latest-release; cd aosp-android-latest-release
repo init -u
repo sync -j24
หากต้องการสร้าง Android เวอร์ชันอื่น ให้ค้นหาชื่อสาขาในที่เก็บ Android สาธารณะ โดยจะแมปกับ โค้ดชื่อ แท็ก และหมายเลขบิลด์ของ Android
สร้างอิมเมจระบบ AVD ซึ่งเป็นขั้นตอนเดียวกันกับการสร้างอิมเมจระบบอุปกรณ์ Android ตัวอย่างเช่น หากต้องการสร้าง AVD แบบ x86 64 บิต ให้ทำดังนี้
source ./build/envsetup.sh
lunch sdk_phone_x86_64
make -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].zip
repo-sys-img.xml
โฮสต์ไฟล์
sdk-repo-linux-system-images-eng.[username].zip
ที่ผู้ใช้เข้าถึงได้ และรับ URL เพื่อใช้เป็น AVD System Image URLสำหรับ 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
เพิ่ม URL ของเว็บไซต์การอัปเดตที่กำหนดเองเป็นเว็บไซต์การอัปเดต SDK
การดำเนินการนี้จะเพิ่มรูปภาพระบบ AVD ที่กำหนดเองลงในหน้าอิมเมจระบบ
สร้าง 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
คุณดูฟีเจอร์โปรแกรมจำลองล่าสุดและข้อมูลรุ่นได้จากแหล่งที่มาต่อไปนี้