เริ่มโปรแกรมจำลองจากบรรทัดคำสั่ง

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

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

เริ่มโปรแกรมจำลอง

ใช้คำสั่ง emulator เพื่อเริ่มต้นโปรแกรมจำลอง ซึ่งเป็นอีกทางเลือกหนึ่งสำหรับ ใช้งานโปรเจ็กต์หรือ เริ่มทำงานผ่าน AVD Manager

ต่อไปนี้เป็นไวยากรณ์บรรทัดคำสั่งพื้นฐานสำหรับการเริ่มต้นอุปกรณ์เสมือนจาก ข้อความแจ้งเทอร์มินัล:

emulator -avd avd_name [ {-option [value]} … ]

หรือ

emulator @avd_name [ {-option [value]} … ]

เช่น หากคุณเปิดโปรแกรมจำลองจากภายใน Android Studio ที่ทำงานบน Mac ค่าเริ่มต้นคือ บรรทัดคำสั่งจะมีลักษณะคล้ายกับตัวอย่างด้านล่างนี้

/Users/janedoe/Library/Android/sdk/emulator/emulator -avd Pixel8_API_34 -netdelay none -netspeed full -qt-hide-window -grpc-use-token -idle-grpc-timeout

โปรดทราบว่าอาร์กิวเมนต์ -qt-hide-window -grpc-use-token -idle-grpc-timeout จะใช้เพื่อเรียกใช้หน้าต่างโปรแกรมจำลองภายใน Android Studio เท่านั้น หากคุณต้องการเรียกใช้โปรแกรมจำลองในหน้าต่างของตัวโปรแกรมเอง คุณไม่ควรใช้พารามิเตอร์พิเศษเหล่านั้น

คุณสามารถระบุตัวเลือกการเริ่มต้นเมื่อเริ่มต้นโปรแกรมจำลอง แต่จะระบุไม่ได้หลังจากโปรแกรมเริ่มทำงานแล้ว

สำหรับรายการชื่อ AVD ให้ป้อนคำสั่งต่อไปนี้

emulator -list-avds

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

คุณตั้งค่าตัวแปรสภาพแวดล้อมได้ในหน้าต่างเทอร์มินัลก่อนที่จะเปิด อุปกรณ์เสมือนหรือผ่านการตั้งค่าของผู้ใช้ในระบบปฏิบัติการ ระบบ เช่น ในไฟล์ .bashrc ใน Linux

หากต้องการหยุดโปรแกรมจำลอง Android ให้ปิดหน้าต่างโปรแกรมจำลอง

ติดตั้งแอป

นอกเหนือจากการติดตั้งแอปผ่าน Android Studio หรือโปรแกรมจำลอง UI คุณสามารถติดตั้งแอปในอุปกรณ์เสมือนได้โดยใช้ยูทิลิตี adb

หากต้องการใช้ adb เพื่อติดตั้ง เรียกใช้ และทดสอบแอป ให้ทำตามขั้นตอนทั่วไปต่อไปนี้

  1. สร้างและจัดแพ็กเกจแอปของคุณลงใน APK ตามที่อธิบายไว้ในสร้างและเรียกใช้ แอป
  2. เริ่มโปรแกรมจำลองจากบรรทัดคำสั่ง ตามที่อธิบายไว้ก่อนหน้านี้ โดยใช้ตัวเลือกการเริ่มต้นใดๆ ที่จำเป็น
  3. ติดตั้งแอปโดยใช้ adb
  4. เรียกใช้และทดสอบแอปในโปรแกรมจําลอง
    ขณะที่โปรแกรมจำลอง ทำงานอยู่ คุณสามารถใช้โปรแกรมจำลอง Console เพื่อออกคำสั่งตามต้องการ

หากต้องการถอนการติดตั้งแอป ให้ทำเหมือนในอุปกรณ์ Android

อุปกรณ์เสมือนจะเก็บรักษาแอปและข้อมูลสถานะไว้เมื่อรีสตาร์ท ในพาร์ติชันดิสก์ข้อมูลผู้ใช้ (userdata-qemu.img) หากต้องการล้างสิ่งนี้ ข้อมูล ให้เริ่มใช้โปรแกรมจำลองด้วยตัวเลือก -wipe-data หรือล้างข้อมูล ใน AVD Manager สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลผู้ใช้ พาร์ติชันและพื้นที่เก็บข้อมูลอื่นๆ โปรดดูส่วนต่อไปนี้

หมายเหตุ: ยูทิลิตี adb จะดูอุปกรณ์เสมือนเป็น อุปกรณ์จริง ด้วยเหตุนี้ คุณจึงอาจต้องใช้ การแจ้ง -d ด้วยคำสั่ง adb ทั่วไปบางรายการ เช่น install แฟล็ก -d จะช่วยให้คุณระบุได้ว่ารายการใด อุปกรณ์ที่เชื่อมต่อเพื่อใช้เป็นเป้าหมายของคำสั่ง หากคุณไม่ระบุ -d โปรแกรมจำลองจะกำหนดเป้าหมายเป็นอุปกรณ์แรกในรายการ

ทำความเข้าใจไดเรกทอรีและไฟล์เริ่มต้น

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

โปรแกรมจำลอง Android ใช้ไฮเปอร์ไวเซอร์ (QEMU)

ไดเรกทอรีระบบ AVD

ไดเรกทอรีระบบมีอิมเมจระบบ Android ที่โปรแกรมจำลองใช้ เพื่อจำลองระบบปฏิบัติการ ไดเรกทอรีนี้มีไฟล์เฉพาะแพลตฟอร์มที่อ่านอย่างเดียว ที่แชร์โดย AVD ทั้งหมดในประเภทเดียวกัน ซึ่งรวมถึงระดับ API, สถาปัตยกรรม CPU และ ตัวแปร Android ตำแหน่งเริ่มต้นมีดังต่อไปนี้

  • macOS และ Linux - ~/Library/Android/sdk/system-images/android-apiLevel/variant/arch/
  • Windows - C:\Users\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\

สถานที่:

  • apiLevel คือระดับ API ที่เป็นตัวเลขหรือตัวอักษรสำหรับ เวอร์ชันตัวอย่าง เช่น android-V หมายถึง Android ตัวอย่าง VanillaIceCream เมื่อเปิดตัวเวอร์ชัน ได้เป็น API ระดับ 35 ซึ่งกำหนดโดย android-35
  • variant เป็นชื่อที่เกี่ยวข้องกับฟีเจอร์บางอย่าง จากอิมเมจของระบบ เช่น google_apis หรือ android-wear
  • arch เป็นสถาปัตยกรรม CPU เป้าหมาย ตัวอย่างเช่น x86

ใช้ตัวเลือก -sysdir เพื่อระบุไดเรกทอรีของระบบอื่นสำหรับ AVD

โปรแกรมจำลองจะอ่านไฟล์ต่อไปนี้จากไดเรกทอรีของระบบ

ตาราง 1 ไฟล์ไดเรกทอรีระบบที่ Android อ่าน โปรแกรมจำลอง

ไฟล์ คำอธิบาย ตัวเลือกสำหรับระบุไฟล์อื่น
kernel-qemu หรือ kernel-ranchu อิมเมจเคอร์เนลไบนารีสำหรับ AVD kernel-ranchu อิงจาก โปรแกรมจำลอง QEMU -kernel
ramdisk.img อิมเมจพาร์ติชันการเปิดเครื่อง นี่คือเซ็ตย่อยของ system.img โหลดโดยเคอร์เนลในตอนแรกก่อนที่จะต่อเชื่อมอิมเมจระบบ ทั้งนี้ มักมีไบนารีและสคริปต์การเริ่มต้นเพียงไม่กี่รายการ -ramdisk
system.img อิมเมจระบบเวอร์ชันอ่านอย่างเดียวในเวอร์ชันเริ่มต้น โดยเฉพาะอย่างยิ่ง พาร์ติชันที่มีไลบรารีระบบและข้อมูลที่สอดคล้องกับระดับ API และตัวแปร -system
userdata.img เวอร์ชันเริ่มต้นของพาร์ติชันข้อมูล ซึ่งปรากฏเป็น data/ ในระบบจำลองและมีข้อมูลที่เขียนได้ทั้งหมดสำหรับ ระยะเวลาการดูเฉลี่ย โปรแกรมจำลองใช้ไฟล์นี้เมื่อคุณสร้าง AVD ใหม่หรือใช้ ตัวเลือก‑wipe-data สำหรับข้อมูลเพิ่มเติม โปรดดู คำอธิบายไฟล์ userdata-qemu.img ในส่วนต่อไปนี้ -initdata
-init-data

ไดเรกทอรีข้อมูล AVD

ไดเรกทอรีข้อมูล AVD หรือเรียกอีกอย่างหนึ่งว่าไดเรกทอรีเนื้อหา มีไว้สำหรับ อินสแตนซ์ AVD รายการเดียวและมีข้อมูลที่แก้ไขได้ทั้งหมดสำหรับ AVD

ตำแหน่งเริ่มต้นคือตำแหน่งต่อไปนี้ โดยที่ name คือค่า ชื่อ AVD:

  • macOS และ Linux - ~/.android/avd/name.avd/
  • Windows 10 ขึ้นไป C:\Users\user\.android\name.avd\

ใช้ตัวเลือก -datadir เพื่อระบุไดเรกทอรีข้อมูล AVD อื่น

ตารางต่อไปนี้แสดงไฟล์ที่สำคัญที่สุดในไดเรกทอรีนี้

ตาราง 2 ไฟล์สำคัญในไดเรกทอรีข้อมูล AVD

ไฟล์ คำอธิบาย ตัวเลือกสำหรับระบุไฟล์อื่น
userdata-qemu.img

เนื้อหาของพาร์ติชันข้อมูล ซึ่งแสดงเป็น data/ ใน กับระบบที่จำลองขึ้นมา เมื่อคุณสร้าง AVD ใหม่หรือเมื่อใช้ -wipe-data เพื่อรีเซ็ต AVD เป็นค่าเริ่มต้น โปรแกรมจำลองจะคัดลอกไฟล์ userdata.img ในไดเรกทอรีระบบไปยัง สร้างไฟล์นี้

อินสแตนซ์ของอุปกรณ์เสมือนแต่ละรายการจะใช้รูปภาพข้อมูลผู้ใช้ที่เขียนได้เพื่อจัดเก็บผู้ใช้และ ข้อมูลเฉพาะเซสชัน เช่น ใช้รูปภาพในการเก็บข้อมูลของผู้ใช้ที่ไม่ซ้ำ ข้อมูลแอปที่ติดตั้ง การตั้งค่า ฐานข้อมูล และไฟล์ต่างๆ ผู้ใช้แต่ละคนมี ไดเรกทอรี ANDROID_SDK_HOME ต่างๆ ที่จัดเก็บไดเรกทอรีข้อมูลสำหรับไฟล์ AVD ที่ผู้ใช้รายนั้นสร้างขึ้น AVD แต่ละรายการมี userdata-qemu.img รายการเดียว

-data
cache.img รูปภาพพาร์ติชันแคช ซึ่งปรากฏเป็น cache/ ใน ที่จำลองมา คอลัมน์ว่างเปล่าเมื่อคุณสร้าง AVD เป็นครั้งแรกหรือใช้เมธอด ตัวเลือก-wipe-data โดยจะจัดเก็บไฟล์ดาวน์โหลดชั่วคราวและ ป้อนข้อมูลโดย Download Manager และบางครั้งที่ระบบ ตัวอย่างเช่น พารามิเตอร์ จะใช้เบราว์เซอร์เพื่อแคชหน้าเว็บและรูปภาพที่ดาวน์โหลดในขณะที่โปรแกรมจำลอง วิ่งอยู่ เมื่อคุณปิดอุปกรณ์เสมือน ระบบจะลบไฟล์ออก คุณสามารถ ยืนยันไฟล์โดยใช้ตัวเลือก -cache -cache
sdcard.img

(ไม่บังคับ) รูปภาพพาร์ติชันการ์ด SD ที่ให้คุณจำลอง SD ได้ บนอุปกรณ์เสมือน คุณสามารถสร้างไฟล์ภาพการ์ด SD ได้ใน AVD Manager หรือการใช้ mksdcard ของ Google ไฟล์จะจัดเก็บไว้ในคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์และต้องโหลดที่ การเริ่มต้น

เมื่อกำหนด AVD ใน AVD Manager คุณสามารถเลือก เพื่อใช้ไฟล์การ์ด SD ที่มีการจัดการโดยอัตโนมัติหรือไฟล์ที่คุณสร้างด้วย เครื่องมือmksdcard คุณดูไฟล์ sdcard.img ได้ ที่เชื่อมโยงกับ AVD ใน AVD Manager ตัวเลือก -sdcard จะลบล้างไฟล์การ์ด SD ที่ระบุใน AVD โปรดทราบว่าตัวเลือกการ์ด SD นี้จะไม่ทำงานบน Mac ที่ใช้ Apple Silicon

คุณเลือกดู ส่งไฟล์ไปยัง รวมถึงคัดลอกและนำไฟล์ออกจาก SD จำลองได้ โดยใช้ UI โปรแกรมจำลองหรือ adb ยูทิลิตีขณะที่อุปกรณ์เสมือนกำลังทำงาน คุณนำ SD จำลองออกไม่ได้ จากอุปกรณ์เสมือนที่ทำงานอยู่

หากต้องการคัดลอกไฟล์ไปยังไฟล์การ์ด SD ก่อนโหลด ให้ต่อเชื่อมอิมเมจ เป็นอุปกรณ์วนซ้ำ แล้วจึงคัดลอกไฟล์ หรือใช้ยูทิลิตี เช่น mtools เพื่อคัดลอกไฟล์ไปยังรูปภาพโดยตรง

โปรแกรมจำลองจะถือว่าไฟล์เป็นกลุ่มไบต์ ดังนั้นรูปแบบการ์ด SD จึงไม่ เป็นสิ่งสำคัญ

ตัวเลือก -wipe-data จะไม่มีผลกับไฟล์นี้ หากคุณ ต้องการล้างไฟล์ ลบไฟล์ แล้วสร้างใหม่โดยใช้ AVD Manager หรือเครื่องมือ mksdcard การเปลี่ยนขนาดไฟล์ ลบไฟล์และสร้างไฟล์ใหม่

-sdcard

แสดงรายการไดเรกทอรีและไฟล์ที่โปรแกรมจำลองใช้

คุณสามารถดูตำแหน่งของไฟล์ได้ 2 วิธี ดังนี้

  • ใช้เมนู -verbose หรือ -debug init เมื่อคุณเริ่มโปรแกรมจำลองจาก บรรทัดคำสั่ง ดูผลลัพธ์
  • ใช้คำสั่ง emulator -help-option เพื่อ แสดงไดเรกทอรีเริ่มต้น เช่น
    emulator -help-datadir
    Use '-datadir <dir>' to specify a directory where writable image files will be searched. On this system, the default directory is: /Users/me/.android See '-help-disk-images' for more information about disk image files.

ตัวเลือกการเริ่มต้นระบบบรรทัดคำสั่ง

ส่วนนี้แสดงรายการตัวเลือกที่คุณสามารถระบุไว้ในบรรทัดคำสั่งเมื่อเริ่ม โปรแกรมจำลอง

หมายเหตุ: Android Emulator อยู่ระหว่างการพัฒนาอย่างต่อเนื่องเพื่อ ทำให้มีความเสถียรมากขึ้น สำหรับสถานะของปัญหาที่รายงานตามตัวเลือกบรรทัดคำสั่งต่างๆ และในการรายงานข้อบกพร่อง โปรดดูที่ เครื่องมือติดตามปัญหา Android

ตัวเลือกที่ใช้กันโดยทั่วไป

ตารางต่อไปนี้แสดงตัวเลือกการเริ่มต้นบรรทัดคำสั่งที่คุณอาจใช้บ่อยกว่า

ตารางที่ 3 ตัวเลือกบรรทัดคำสั่งที่ใช้กันทั่วไป

ตัวเลือกบรรทัดคำสั่ง คำอธิบาย
การเปิดเครื่องด่วน
-no-snapshot-load ดำเนินการ Cold Boot และบันทึกสถานะโปรแกรมจำลองเมื่อออก
-no-snapshot-save ดำเนินการเปิดเครื่องอย่างรวดเร็วหากเป็นไปได้ แต่จะไม่บันทึกสถานะโปรแกรมจำลองเมื่อออก
-no-snapshot ปิดใช้งานฟีเจอร์ Quick Boot อย่างสมบูรณ์และไม่โหลดหรือบันทึกสถานะโปรแกรมจำลอง
ฮาร์ดแวร์ของอุปกรณ์
-camera-back mode
-camera-front mode
ตั้งค่าโหมดการจำลองสำหรับกล้องที่หันด้านหลังหรือด้านหน้า การดำเนินการนี้จะลบล้างการตั้งค่าของกล้อง ในสกุลเงิน AVD

mode จะเป็นค่าใดก็ได้ต่อไปนี้

  • emulated - โปรแกรมจำลองจะจำลองกล้องในซอฟต์แวร์
  • webcamn - โปรแกรมจำลองใช้เว็บแคมที่เชื่อมต่อกับ คอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์ ระบุด้วยตัวเลข สำหรับรายการเว็บแคม ให้ใช้ ตัวเลือก-webcam-list เช่น webcam0
  • none - ปิดใช้กล้องในอุปกรณ์เสมือน

เช่น

emulator @Pixel8_API_34 -camera-back webcam0
-webcam-list แสดงรายการเว็บแคมในคอมพิวเตอร์การพัฒนาที่พร้อมสำหรับการจำลอง สำหรับ ตัวอย่าง:
emulator @Pixel8_API_34 -webcam-list
        List of web cameras connected to the computer:
        Camera 'webcam0' is connected to device 'webcam0'
        on channel 0 using pixel format 'UYVY'

ในตัวอย่างนี้ webcam0 แรกคือชื่อที่คุณใช้ในบรรทัดคำสั่ง webcam0 รายการที่ 2 คือชื่อที่ระบบปฏิบัติการใช้ในคอมพิวเตอร์การพัฒนา ชื่อที่สอง ขึ้นอยู่กับระบบปฏิบัติการ

สำหรับ SDK Tools 25.2.4 คุณต้องระบุชื่อ AVD

อิมเมจและหน่วยความจำของดิสก์
-memory size

ระบุขนาด RAM จริงตั้งแต่ 1536 ถึง 8192 MB เช่น

emulator @Pixel8_API_34 -memory 2048

ค่านี้จะลบล้างการตั้งค่า AVD

-sdcard filepath ระบุชื่อไฟล์และเส้นทางไปยังไฟล์ภาพพาร์ติชันการ์ด SD สำหรับ ตัวอย่าง:

emulator @Pixel8_API_34 -sdcard C:/sd/sdcard.img

หากไม่พบไฟล์ โปรแกรมจำลองจะยังคงเปิดขึ้นมาแต่ไม่มีการ์ด SD คำสั่งจะแสดงคำเตือนไม่มีรูปภาพการ์ด SD

หากไม่ระบุตัวเลือกนี้ ค่าเริ่มต้นจะเป็น sdcard.img ในไดเรกทอรีข้อมูล เว้นแต่ AVD จะระบุอย่างอื่น โปรดดูรายละเอียดเกี่ยวกับการ์ด SD ที่จำลองได้ที่ไดเรกทอรีข้อมูล AVD

-wipe-data ลบข้อมูลผู้ใช้และคัดลอกข้อมูลจากไฟล์ข้อมูลเริ่มต้น ตัวเลือกนี้ ล้างข้อมูลสำหรับอุปกรณ์เสมือนและกลับสู่สถานะเดียวกับเมื่อ ก็ถูกกำหนดขึ้นมาในตอนแรก ระบบจะนำแอปและการตั้งค่าที่ติดตั้งไว้ออกทั้งหมด เช่น

emulator @Pixel8_API_34 -wipe-data

โดยค่าเริ่มต้น ไฟล์ข้อมูลผู้ใช้คือ userdata-qemu.img และชื่อย่อ ไฟล์ข้อมูลคือ userdata.img ทั้ง 2 ไฟล์นี้อยู่ในไดเรกทอรีข้อมูล ตัวเลือก -wipe-data จะไม่มีผลกับ sdcard.img สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลผู้ใช้ โปรดดูส่วนทำความเข้าใจ ไดเรกทอรีและไฟล์เริ่มต้น

แก้ไขข้อบกพร่อง
-debug tags เปิดหรือปิดใช้การแสดงข้อความแก้ไขข้อบกพร่องสำหรับแท็กอย่างน้อย 1 รายการ โดยคั่นแต่ละแท็กด้วยการเว้นวรรค คอมมา หรือคอลัมน์ เช่น

$ emulator @Pixel8_API_34 -debug init,metrics

หากต้องการปิดใช้งานแท็ก ให้วางเครื่องหมายขีดกลาง (-) ไว้ข้างหน้าแท็ก ตัวอย่างเช่น URL ต่อไปนี้ แสดงข้อความแก้ไขข้อบกพร่องทั้งหมด ยกเว้นข้อความที่เกี่ยวข้องกับซ็อกเก็ตเครือข่าย และเมตริก ได้แก่

-debug all,-socket,-metrics

สำหรับรายการแท็กและคำอธิบาย ให้ใช้ -help-debug-tags ตัวเลือก เช่น

emulator -help-debug-tags

คุณสามารถกำหนดแท็กแก้ไขข้อบกพร่องเริ่มต้นได้ใน ANDROID_VERBOSE ตัวแปรสภาพแวดล้อม กำหนดแท็กที่คุณต้องการใช้ในรายการที่คั่นด้วยเครื่องหมายจุลภาค นี่คือตัวอย่างที่แสดงวิธีระบุ socket และ แท็กของ gles:

ANDROID_VERBOSE=socket,gles

ซึ่งเทียบเท่ากับการใช้

-debug-socket -debug-gles

หรือ

-debug socket,gles

-debug-tag
-debug-no-tag
เปิดใช้ประเภทข้อความแก้ไขข้อบกพร่องที่เฉพาะเจาะจง ใช้แบบฟอร์ม no เพื่อ ปิดใช้ประเภทข้อความแก้ไขข้อบกพร่อง เช่น

emulator @Pixel8_API_34 -debug-all -debug-no-metrics

ใช้คำสั่ง emulator -help-debug-tags สำหรับรายการแท็ก

-logcat logtags เปิดใช้การแสดงข้อความ Logcat สำหรับแท็กและการเขียนอย่างน้อย 1 รายการ ไปยังหน้าต่างเทอร์มินัล เช่น คำสั่งต่อไปนี้เปิดใช้ข้อผิดพลาด ข้อความจากทุกคอมโพเนนต์:

emulator @Pixel8_API_34 -logcat *:e

logtags ใช้รูปแบบเดียวกับคำสั่ง adb logcat logtags ป้อนadb logcat -helpเพื่อดูข้อมูลเพิ่มเติม เป็นรายการตัวกรองบันทึกที่มีการเว้นวรรคหรือคั่นด้วยคอมมาของรูปแบบ componentName:logLevel componentName เป็นเครื่องหมายดอกจันไวลด์การ์ด (*) หรือชื่อคอมโพเนนต์ก็ได้ เช่น ActivityManager SystemServer InputManager หรือ WindowManager

logLevel คือค่าใดค่าหนึ่งต่อไปนี้

  • v - รายละเอียด
  • d - แก้ไขข้อบกพร่อง
  • i - ให้ข้อมูล
  • w - ระดับการบันทึกคำเตือน
  • e - ข้อผิดพลาด
  • s - ปิดเสียง

ตัวอย่างต่อไปนี้แสดงข้อความคอมโพเนนต์ GSM ที่ ระดับการบันทึก:

emulator @Pixel8_API_34 -logcat '*:s GSM:i'

หากไม่ระบุตัวเลือก -logcat ในบรรทัดคำสั่ง โปรแกรมจำลองจะมองหา ANDROID_LOG_TAGS ตัวแปรสภาพแวดล้อม หากกำหนด ANDROID_LOG_TAGS ด้วยแอตทริบิวต์ที่ถูกต้อง ค่า logtags และไม่ใช่ค่าว่าง โดยโปรแกรมจำลองจะใช้ค่า เพื่อเปิดใช้เอาต์พุต Logcat ไปยังเทอร์มินัลโดยค่าเริ่มต้น คุณยังสามารถเปลี่ยนเส้นทาง ข้อความบันทึกเดียวกันหรือข้อความบันทึกอื่นๆ ไปยังเทอร์มินัลผ่าน adb

สำหรับข้อมูลเพิ่มเติม ข้อมูลเกี่ยวกับ Logcat และ adb โปรดดู Logcat เครื่องมือบรรทัดคำสั่ง ดูและเขียน บันทึกด้วย Logcat, Log คลาส และ ปัญหา adb คำสั่ง

-show-kernel แสดงข้อความการแก้ไขข้อบกพร่องของเคอร์เนลในหน้าต่างเทอร์มินัล เช่น

emulator @Pixel8_API_34 -show-kernel

วิธีหนึ่งที่ใช้ตัวเลือกนี้ได้คือการตรวจสอบว่ากระบวนการเปิดเครื่องทำงานได้อย่างถูกต้อง

-verbose พิมพ์ข้อความการเริ่มต้นโปรแกรมจำลองไปยังหน้าต่างเทอร์มินัล สำหรับ ตัวอย่าง:

emulator @Pixel8_API_34 -verbose

ซึ่งจะแสดงไฟล์และการตั้งค่าที่ได้เลือกไว้จริงๆ เมื่อเริ่ม อุปกรณ์เสมือนที่กำหนดไว้ใน AVD ตัวเลือกนี้เหมือนกับการระบุ -debug-init

เครือข่าย
-dns-server servers ใช้เซิร์ฟเวอร์ DNS ที่ระบุ servers เป็น รายการที่คั่นด้วยจุลภาคของชื่อเซิร์ฟเวอร์ DNS หรือที่อยู่ IP สูงสุด 4 รายการ สำหรับ ตัวอย่าง:
emulator @Pixel8_API_34 -dns-server 192.0.2.0,
192.0.2.255

โดยค่าเริ่มต้น โปรแกรมจำลองจะพยายามตรวจหาเซิร์ฟเวอร์ DNS ที่คุณใช้อยู่และตั้งค่า ชื่อแทนพิเศษในเครือข่ายไฟร์วอลล์ที่จำลองเพื่อให้ระบบ Android เพื่อเชื่อมต่อกับเซิร์ฟเวอร์โดยตรง ใช้ตัวเลือก -dns-server เพื่อระบุ รายการเซิร์ฟเวอร์ DNS อื่น

-http-proxy proxy สร้างการเชื่อมต่อ TCP ทั้งหมดผ่านพร็อกซี HTTP/HTTPS ที่ระบุ หาก โปรแกรมจำลองต้องเข้าถึงอินเทอร์เน็ตผ่านพร็อกซีเซิร์ฟเวอร์ หรือตัวแปรสภาพแวดล้อม http_proxy เพื่อตั้งค่า การเปลี่ยนเส้นทางที่เหมาะสม เช่น

emulator @Pixel8_API_34 -http-proxy myserver:1981

proxy อาจเป็นหนึ่งใน ดังต่อไปนี้:

http://server:port
http://username:password@server:port

ละเว้น http:// นำหน้าได้

หากไม่ระบุตัวเลือกนี้ โปรแกรมจำลองจะค้นหา http_proxy ตัวแปรสภาพแวดล้อม และจะใช้ค่าที่ตรงกับ proxy สำหรับข้อมูลเพิ่มเติม โปรดดู การใช้ โปรแกรมจำลองที่มีพร็อกซี

-netdelay delay

ตั้งค่าการจำลองเวลาในการตอบสนองของเครือข่ายเป็นอย่างใดอย่างหนึ่งต่อไปนี้ delay ค่าเป็นมิลลิวินาที:

  • gsm - GSM/CSD (ขั้นต่ำ 150 สูงสุด 550)
  • hscsd - HSCSD (ขั้นต่ำ 80 สูงสุด 400)
  • gprs - GPRS (ขั้นต่ำ 35 สูงสุด 200)
  • edge - EDGE/EGPRS (ขั้นต่ำ 80 สูงสุด 400)
  • umts - UMTS/3G (ขั้นต่ำ 35 สูงสุด 200)
  • hsdpa - HSDPA (ต่ำสุด 0, สูงสุด 0)
  • lte - LTE (ต่ำสุด 0, สูงสุด 0)
  • evdo - EVDO (ต่ำสุด 0, สูงสุด 0)
  • none - ไม่มีเวลาในการตอบสนอง ค่าเริ่มต้นคือ (ต่ำสุด 0 สูงสุด 0)
  • num - ระบุเวลาในการตอบสนองที่แน่นอน
  • min:max - ระบุจำนวนเงินขั้นต่ำและแต่ละรายการ เวลาในการตอบสนองสูงสุด

เช่น

emulator @Pixel8_API_34 -netdelay gsm

โปรแกรมจำลองรองรับการควบคุมปริมาณการใช้เครือข่าย รวมถึงเวลาในการตอบสนองของการเชื่อมต่อที่สูงขึ้น คุณสามารถระบุได้ผ่านการกำหนดค่าสกินหรือด้วย ตัวเลือก ‑netspeed และ -netdelay

-netfast ปิดใช้การควบคุมปริมาณการใช้เครือข่าย เช่น

emulator @Pixel8_API_34 -netfast

ตัวเลือกนี้จะเหมือนกับการระบุ -netspeed full -netdelay none ค่าเหล่านี้เป็นค่าเริ่มต้นสำหรับตัวเลือกเหล่านี้

-netspeed speed

ตั้งค่าการจำลองความเร็วของเครือข่าย ระบุจำนวนการอัปโหลดเครือข่ายสูงสุด ความเร็วในการดาวน์โหลดด้วยค่า speed ค่าใดค่าหนึ่งต่อไปนี้ใน กิโลบิตต่อวินาที:

  • gsm - GSM/CSD (เพิ่มขึ้น: 14.4 ลง: 14.4)
  • hscsd - HSCSD (ขึ้น: 14.4 ลง: 57.6)
  • gprs - GPRS (สูงสุด: 28.8 ลง: 57.6)
  • edge - EDGE/EGPRS (ขึ้น 473.6 ลง 473.6)
  • umts - UMTS/3G (ขึ้น: 384.0 ลง: 384.0)
  • hsdpa - HSDPA (เพิ่มขึ้น: 5760.0 ต่ำสุด: 13,980.0)
  • lte - LTE (สูงสุด: 58,000 ลง: 173,000)
  • evdo - EVDO (เพิ่มขึ้น 75,000 ต่ำสุด 280,000)
  • full - ไม่มีขีดจำกัด ค่าเริ่มต้น (เพิ่มขึ้น: 0.0 ลง: 0.0)
  • num - ระบุทั้งความเร็วในการอัปโหลดและความเร็วในการดาวน์โหลด
  • up:down - ระบุผู้ใช้แต่ละรายที่ขึ้นและลง เร็ว

เช่น

emulator @Pixel8_API_34 -netspeed edge

โปรแกรมจำลองรองรับการควบคุมปริมาณการใช้เครือข่าย รวมถึงเวลาในการตอบสนองของการเชื่อมต่อที่สูงขึ้น คุณสามารถกำหนดได้ผ่านทางการกำหนดค่าสกินหรือด้วย ตัวเลือก ‑netspeed และ -netdelay

-port port ตั้งค่าหมายเลขพอร์ต TCP ที่ใช้สำหรับคอนโซลและ adb เช่น

emulator @Pixel8_API_34 -port 5556

ค่าเริ่มต้นคือ 5554 สำหรับอินสแตนซ์อุปกรณ์เสมือนรายการแรกที่ทำงานบน เครื่องของคุณ โดยปกติแล้วอุปกรณ์เสมือนจะใช้พอร์ตที่อยู่ติดกัน 2 พอร์ต ได้แก่ พอร์ตคอนโซลและพอร์ต adb คอนโซลของอุปกรณ์เสมือนเครื่องแรกที่ทำงานบน มีเครื่องที่ใช้พอร์ต 5554 และพอร์ต adb ในคอนโซล 5555 ลำดับต่อมา อินสแตนซ์จะใช้หมายเลขพอร์ตที่เพิ่มขึ้น 2 ตัว ตัวอย่างเช่น 5556/5557 5558/5559 เป็นต้น ช่วงการใช้งานคือ 5554 ถึง 5682 ทำให้ใช้ได้พร้อมกัน 64 ช่วง อุปกรณ์เสมือน

การกำหนดพอร์ตมักจะเหมือนกับการระบุ -ports port,{port + 1} {port + 1} ต้อง ให้ฟรีและสงวนไว้ให้กับ adb หากคอนโซลหรือพอร์ต adb มีการใช้งานแล้ว โปรแกรมจำลองจะไม่เริ่มทำงาน

ตัวเลือก ‑port รายงานพอร์ตและหมายเลขซีเรียลที่อุปกรณ์เสมือนใช้งานอยู่ และจะเตือนหาก เกิดปัญหากับค่าที่คุณระบุ ใน UI โปรแกรมจำลอง คุณสามารถ ดูหมายเลขพอร์ตคอนโซลในชื่อหน้าต่างและดูพอร์ต adb โดยเลือก ความช่วยเหลือ > เกี่ยวกับ

โปรดทราบว่าหากค่า port ไม่เท่ากันและอยู่ในค่า ช่วง 5554 ถึง 5584 อุปกรณ์เสมือนจะเริ่มต้นแต่ไม่แสดงเมื่อคุณ ใช้คำสั่ง adb devices หาก adb server เริ่มต้นหลังจาก โปรแกรมจำลอง ด้วยเหตุนี้ เราขอแนะนำให้ใช้หมายเลขพอร์ตคู่ของคอนโซล

-ports
console-port,adb-port
ตั้งค่าพอร์ต TCP ที่ใช้สำหรับคอนโซลและ adb เช่น

emulator @Pixel8_API_34 -ports 5556,5559

ช่วงพอร์ตที่ถูกต้องคือ 5554 ถึง 5682 ซึ่งช่วยให้ใช้งานระบบเสมือนได้พร้อมกัน 64 พอร์ต อุปกรณ์ ตัวเลือก -ports จะรายงานพอร์ตและหมายเลขซีเรียล อินสแตนซ์โปรแกรมจำลองกำลังใช้ และเตือนหากมีปัญหาใดๆ เกี่ยวกับ ค่าที่คุณระบุ

เราขอแนะนำให้ใช้ตัวเลือก -port แทน หากทำได้ ตัวเลือก -ports พร้อมใช้งานสำหรับการกำหนดค่าเครือข่ายที่ต้องใช้ การตั้งค่าพิเศษ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าคอนโซลและพอร์ต adb โปรดดูที่ -port

-tcpdump filepath บันทึกแพ็กเก็ตเครือข่ายและจัดเก็บไว้ในไฟล์ เช่น

emulator @Pixel8_API_34 -tcpdump /path/dumpfile.cap

ใช้ตัวเลือกนี้เพื่อเริ่มการบันทึกแพ็กเก็ตเครือข่ายทั้งหมดที่ส่งผ่าน LAN อีเทอร์เน็ตเสมือนของโปรแกรมจำลอง หลังจากนั้น คุณสามารถใช้เครื่องมือ เช่น Wireshark เพื่อวิเคราะห์การเข้าชม

โปรดทราบว่าตัวเลือกนี้จะบันทึกแพ็กเก็ตอีเทอร์เน็ตทั้งหมดและไม่จำกัดเฉพาะ TCP การเชื่อมต่อ

ระบบ
-accel mode กำหนดค่าการเร่ง VM ของโปรแกรมจำลอง เช่น

emulator @Pixel8_API_34 -accel auto

การจำลองแบบเร่งใช้ได้กับอิมเมจระบบ x86 และ x86_64 เท่านั้น ใน Linux อาศัย KVM ใน Windows และ Mac จะใช้ CPU ของ Intel และ Intel HAXM คนขับ ระบบจะละเว้นตัวเลือกนี้ถ้าคุณไม่ได้จำลองอุปกรณ์ x86 หรือ x86_64

ค่าที่ถูกต้องสำหรับ mode คือ

  • auto - กำหนดโดยอัตโนมัติว่ารองรับการเร่งความเร็วหรือไม่ และ ใช้เมื่อเป็นไปได้ (ค่าเริ่มต้น)
  • off - ปิดใช้การเร่งความเร็วทั้งหมด ซึ่งมีประโยชน์เป็นหลัก เพื่อแก้ไขข้อบกพร่อง
  • on - บังคับให้เร่งความเร็ว หากไม่ได้ติดตั้ง KVM หรือ HAXM หรือ โปรแกรมจำลองจะไม่เริ่มทำงานและพิมพ์ข้อความแสดงข้อผิดพลาด

โปรดดูข้อมูลเพิ่มเติมที่หัวข้อกำหนดค่า การเร่งฮาร์ดแวร์สำหรับโปรแกรมจำลอง Android

-accel-check ตรวจสอบว่า Hypervisor ที่จำเป็นสำหรับการเร่ง VM ของโปรแกรมจำลองคือ ติดตั้งไว้ (HAXM หรือ KVM) เช่น

emulator -accel-check

โปรดดูข้อมูลเพิ่มเติมที่หัวข้อตรวจสอบว่าติดตั้ง Hypervisor ไว้หรือไม่

-engine engine

ระบุเครื่องมือโปรแกรมจำลอง

  • auto - เลือกเครื่องมือโดยอัตโนมัติ (ค่าเริ่มต้น)
  • classic - ใช้เครื่องมือ QEMU 1 เวอร์ชันเก่า (เลิกใช้งานแล้ว)
  • qemu2 - ใช้เครื่องมือ QEMU 2 เวอร์ชันใหม่

เช่น

emulator @Pixel8_API_34 -engine auto

การตรวจหาอัตโนมัติควรเลือกค่าที่ให้ประสิทธิภาพที่ดีที่สุดเมื่อ การเลียนแบบ AVD ที่เฉพาะเจาะจง ใช้ตัวเลือก -engine สำหรับ เพื่อจุดประสงค์ในการแก้ไขข้อบกพร่องและการเปรียบเทียบเท่านั้น

-gpu mode เลือกโหมดการจำลอง GPU เช่น

emulator @Pixel8_API_34 -gpu swiftshader_indirect

โปรดดูข้อมูลเพิ่มเติมที่กำหนดค่าการเร่งกราฟิก

-no-accel ปิดใช้การเร่ง VM ของโปรแกรมจำลองเมื่อใช้ระบบ x86 หรือ x86_64 รูปภาพ ซึ่งมีประโยชน์สำหรับการแก้ไขข้อบกพร่องเท่านั้นและเหมือนกับการระบุ -accel off เช่น

emulator @Pixel8_API_34 -no-accel

โปรดดูข้อมูลเพิ่มเติมที่หัวข้อกำหนดค่า การเร่งฮาร์ดแวร์สำหรับโปรแกรมจำลอง Android

-nojni
-no-jni
ปิดใช้การตรวจสอบ Java Native Interface (JNI) แบบขยายใน Android Dalvik หรือรันไทม์ ART เช่น

emulator @Pixel8_API_34 -nojni

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

-selinux {disabled|permissive} ตั้งค่า Linux ที่เพิ่มประสิทธิภาพด้านความปลอดภัย (SELinux) โมดูลความปลอดภัยเป็นโหมด disabled หรือ permissive ในอุปกรณ์ Linux ระบบ เช่น

me-linux$ emulator @Pixel8_API_34 -selinux permissive

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

-timezone timezone

ตั้งค่าเขตเวลาสำหรับอุปกรณ์เสมือนเป็น timezone แทนเขตเวลาของโฮสต์ สำหรับ ตัวอย่าง:

emulator @Pixel8_API_34 -timezone Europe/Paris

โดยค่าเริ่มต้น โปรแกรมจำลองจะใช้เขตเวลาของคอมพิวเตอร์การพัฒนา ใช้ ตัวเลือกนี้เพื่อระบุเขตเวลาอื่น หรือหากการตรวจหาอัตโนมัติไม่พบ ได้อย่างถูกต้อง ค่า timezone ต้องอยู่ใน zoneinfo นั่นคือ area/location หรือ area/subarea/location เช่น

  • America/Los_Angeles
  • Europe/Paris
  • America/Argentina/Buenos_Aires

เขตเวลาที่ระบุต้องอยู่ในฐานข้อมูลzoneinfo

-version แสดงหมายเลขเวอร์ชันโปรแกรมจำลอง เช่น

emulator @Pixel8_API_34 -version

หรือ

emulator -version
UI
-no-boot-anim ปิดใช้งานภาพเคลื่อนไหวสำหรับการเปิดเครื่องในระหว่างการเริ่มต้นโปรแกรมจำลองเพื่อให้เปิดเครื่องได้เร็วขึ้น เช่น

emulator @Pixel8_API_34 -no-boot-anim

ส่วนในคอมพิวเตอร์ที่ทำงานช้า ตัวเลือกนี้อาจเพิ่มความเร็วให้ลำดับการเปิดเครื่องได้มาก

-screen mode ตั้งค่าโหมดหน้าจอสัมผัสจำลอง เช่น

emulator @Pixel8_API_34 -screen no-touch

mode จะเป็นค่าใดก็ได้ต่อไปนี้

  • touch - จำลองหน้าจอสัมผัส (ค่าเริ่มต้น)
  • multi-touch - จำลองหน้าจอแบบมัลติทัช
  • no-touch - ปิดใช้หน้าจอสัมผัสและมัลติทัช และการจำลอง

ตัวเลือกขั้นสูง

ตัวเลือกการเริ่มต้นบรรทัดคำสั่งในตารางต่อไปนี้พร้อมใช้งาน แต่ไม่นิยมใช้ จากนักพัฒนาแอปโดยเฉลี่ย

ในคำอธิบาย ไดเรกทอรีที่ทำงานคือไดเรกทอรีปัจจุบันใน เทอร์มินัลที่คุณกำลังป้อนคำสั่ง สําหรับข้อมูลเกี่ยวกับ AVD ไดเรกทอรีของระบบและไดเรกทอรีข้อมูลและไฟล์ที่เก็บไว้ ที่อยู่ในไฟล์ โปรดดูส่วนเกี่ยวกับไดเรกทอรีและไฟล์เริ่มต้น

ตัวเลือกเหล่านี้บางส่วนเหมาะสำหรับนักพัฒนาแอปภายนอก และ ใช้โดยนักพัฒนาแพลตฟอร์มเป็นหลัก นักพัฒนาแอปสร้าง แอป Android และเรียกใช้บน AVD ที่เฉพาะเจาะจง นักพัฒนาแพลตฟอร์มกำลังพัฒนา ระบบ Android และเรียกใช้ภายในโปรแกรมจำลองโดยไม่มี AVD ที่สร้างไว้ล่วงหน้า

ตาราง 4 ตัวเลือกบรรทัดคำสั่งขั้นสูง

ตัวเลือกขั้นสูง รายละเอียดแบบย่อ
-bootchart timeout

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

เช่น

emulator @Pixel8_API_34 -bootchart 120
-cache filepath

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

เช่น

emulator @Pixel8_API_34 -cache
   ~/.android/avd/Pixel8_API_34.avd/cache_persistent.img

หากคุณไม่ใช้ตัวเลือกนี้ ค่าเริ่มต้นจะเป็นไฟล์ชั่วคราวชื่อ cache.img ดูข้อมูลเพิ่มเติมได้ในข้อมูล AVD

-cache-size size

กำหนดขนาดพาร์ติชันแคชในหน่วย MB

เช่น

emulator @Pixel8_API_34 -cache-size 1000

หากไม่ ระบุตัวเลือกนี้ ค่าเริ่มต้นคือ 66 MB ปกติแล้วนักพัฒนาแอปส่วนใหญ่ไม่ต้องการตัวเลือกนี้ เว้นแต่จะต้องดาวน์โหลดไฟล์ขนาดใหญ่มากที่มีขนาดใหญ่กว่าค่าเริ่มต้น แคช สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแคช โปรดดูไดเรกทอรีข้อมูล AVD

-data filepath

ตั้งค่าไฟล์ภาพของพาร์ติชันข้อมูลผู้ใช้ มีชื่อไฟล์และ Absolute Path หรือเส้นทางที่สัมพันธ์กับไดเรกทอรีการทำงานเพื่อตั้งค่า ไฟล์ข้อมูลผู้ใช้ถาวร หากไม่มีไฟล์ดังกล่าว โปรแกรมจำลองจะสร้าง รูปภาพจากไฟล์ userdata.img เริ่มต้น แต่จัดเก็บไว้ในชื่อไฟล์ ที่คุณระบุไว้และเก็บข้อมูลผู้ใช้ไว้เมื่อปิดเครื่อง

เช่น

emulator @Pixel8_API_34 -data
   ~/.android/avd/Pixel8_API_34.avd/userdata-test.img

หากคุณไม่ใช้ตัวเลือกนี้ ค่าเริ่มต้นจะเป็นไฟล์ชื่อ userdata-qemu.img ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ข้อมูลผู้ใช้ได้ที่ข้อมูล AVD

-datadir dir

ระบุไดเรกทอรีข้อมูลโดยใช้เส้นทางสัมบูรณ์ สำหรับข้อมูลเพิ่มเติม ดูไดเรกทอรีข้อมูล AVD

เช่น

emulator @Pixel8_API_34 -datadir
   ~/.android/avd/Pixel8_API_34.avd/mytest
-force-32bit

ใช้โปรแกรมจำลอง 32 บิตบนแพลตฟอร์ม 64 บิต บางครั้งตัวเลือกนี้ มีประโยชน์สำหรับการทดสอบหรือการแก้ไขข้อบกพร่อง ตัวอย่างเช่น เกิดปัญหาที่ บางครั้งโปรแกรมจำลองจะไม่ทำงานใน Windows 64 บิต แต่ใช้งานแบบ 32 บิตได้ ช่วงเวลานี้ มีประโยชน์ในการเปรียบเทียบเพื่อแก้ไขปัญหา นี่คือ ตัวอย่าง:

emulator @Pixel8_API_34 -force-32bit
-help-disk-images

ขอความช่วยเหลือเกี่ยวกับอิมเมจดิสก์ ตัวเลือกนี้ให้ข้อมูลที่เกี่ยวข้องกับ ทั้งนักพัฒนาแอปและแพลตฟอร์ม เช่น

emulator -help-disk-images
-help-char-devices

รับความช่วยเหลือเกี่ยวกับข้อกำหนดของอักขระ device ต ตัวเลือกโปรแกรมจำลองบางอย่างต้องใช้พารามิเตอร์ device เช่น

emulator -help-char-devices
-help-sdk-images

รับความช่วยเหลือเกี่ยวกับอิมเมจดิสก์ที่เกี่ยวข้องกับนักพัฒนาแอป ตัวเลือกนี้จะได้รับ ข้อมูลเกี่ยวกับตำแหน่งของไฟล์ภาพสำหรับ AVD ที่สร้างขึ้นด้วย เครื่องมือ SDK เช่น

emulator -help-sdk-images
-help-build-images

ขอความช่วยเหลือเกี่ยวกับอิมเมจดิสก์ที่เกี่ยวข้องกับนักพัฒนาแพลตฟอร์ม เช่น

emulator -help-build-images
-initdata filepath
-init-data filepath

ระบุเวอร์ชันเริ่มต้นของพาร์ติชันข้อมูล หลังจากล้างข้อมูล ข้อมูลผู้ใช้ โปรแกรมจำลองจะคัดลอกเนื้อหาของไฟล์ที่ระบุไปยังผู้ใช้ (โดยค่าเริ่มต้นคือไฟล์ userdata-qemu.img) แทนการใช้แท็ก ไฟล์ userdata.img เริ่มต้นเป็นเวอร์ชันเริ่มต้น ระบุ ของชื่อไฟล์ และเส้นทางสัมบูรณ์หรือเส้นทางที่สัมพันธ์กับไดเรกทอรีที่ใช้งานอยู่

เช่น

emulator @Pixel8_API_34 -initdata
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/userdata-test.img

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

-kernel filepath

ใช้เคอร์เนลจำลองที่เฉพาะเจาะจง หากไม่ระบุเส้นทาง โปรแกรมจำลอง ในไดเรกทอรีของระบบ

ใช้เมนู ‑show‑kernel เพื่อดูข้อความการแก้ไขข้อบกพร่องของเคอร์เนล

เช่น

emulator @Pixel8_API_34 -kernel
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/kernel-test.img -show-kernel

หากไม่ระบุตัวเลือกนี้ ค่าเริ่มต้นจะเป็น kernel-ranchu สำหรับข้อมูลเพิ่มเติม โปรดดูที่ไดเรกทอรีระบบ AVD

-noaudio
-no-audio

ปิดใช้การสนับสนุนเสียงสำหรับอุปกรณ์เสมือนนี้ Linux และ Windows บางรุ่น คอมพิวเตอร์มีไดรเวอร์เสียงที่ทำงานผิดพลาด ซึ่งก่อให้เกิดอาการต่างๆ เช่น เพื่อป้องกันไม่ให้โปรแกรมจำลองเริ่มทำงาน ในกรณีนี้ ให้ใช้ตัวเลือกนี้เพื่อ แก้ไขปัญหาได้ อีกวิธีหนึ่งคือ คุณสามารถใช้ QEMU_AUDIO_DRV ตัวแปรสภาพแวดล้อมเพื่อเปลี่ยนแบ็กเอนด์เสียง

เช่น

emulator @Pixel8_API_34 -noaudio
-nocache
-no-cache

เริ่มโปรแกรมจำลองโดยไม่มีพาร์ติชันแคช หากคุณไม่ใช้สิ่งนี้ ค่าเริ่มต้นจะเป็นไฟล์ชั่วคราวชื่อ cache.img ช่วงเวลานี้ มีไว้สำหรับนักพัฒนาแพลตฟอร์มเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ไดเรกทอรีข้อมูล AVD

เช่น

emulator @Pixel8_API_34 -nocache
-no-snapshot

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

เช่น

emulator @Pixel8_API_34 -no-snapshot
-no-snapshot-load

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

เช่น

emulator @Pixel8_API_34 -no-snapshot-load
-no-snapshot-save

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

เช่น

emulator @Pixel8_API_34 -no-snapshot-save
-no-snapshot-update-time

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

เช่น

emulator @Pixel8_API_34 -no-snapshot-update-time
-no-snapstorage

เริ่มโปรแกรมจำลองโดยไม่ต้องต่อเชื่อมไฟล์เพื่อจัดเก็บหรือโหลดสถานะ สแนปชอต ซึ่งทำให้มีการบูตอย่างสมบูรณ์และปิดใช้งานฟังก์ชันสแนปชอตสถานะ ช่วงเวลานี้ จะลบล้างตัวเลือก -snapstorage และ -snapshot ตัวเลือก

เช่น

emulator @Pixel8_API_34 -no-snapstorage
-no-window

ปิดใช้งานการแสดงหน้าต่างกราฟิกในโปรแกรมจำลอง ตัวเลือกนี้มีประโยชน์ เมื่อเรียกใช้โปรแกรมจำลองบนเซิร์ฟเวอร์ที่ไม่มีการแสดงผล คุณสามารถเข้าถึงโปรแกรมจำลองผ่าน adb หรือคอนโซล เช่น

emulator @Pixel8_API_34 -no-window
-partition-size size

ระบุขนาดพาร์ติชันข้อมูลของระบบในหน่วย MB เช่น

emulator @Pixel8_API_34 -partition-size 1024
-prop name=value

ตั้งค่าพร็อพเพอร์ตี้ของระบบ Android ในโปรแกรมจำลองเมื่อเปิดเครื่อง name ต้องเป็นชื่อพร็อพเพอร์ตี้ที่มีป้ายกำกับว่า qemu_prop จากไม่เกิน 32 อักขระโดยไม่มีช่องว่าง และ value ต้องเป็นสตริงของ at ที่มีความยาวไม่เกิน 92 อักขระ ตัวอย่างเช่น ดูที่ property_contexts ไฟล์ คุณสามารถระบุตัวเลือก ‑prop ได้หลายรายการต่อ 1 รายการ บรรทัดคำสั่ง ตัวเลือกนี้มีประโยชน์สำหรับการแก้ไขข้อบกพร่อง เช่น

emulator @Pixel8_API_34 -prop qemu.name=value -prop qemu.abc=xyz
-qemu args ส่งผ่านอาร์กิวเมนต์ไปยังซอฟต์แวร์โปรแกรมจำลอง QEMU เมื่อใช้ตัวเลือกนี้ โปรดตรวจสอบว่าตัวเลือกดังกล่าวเป็นตัวเลือกสุดท้าย ที่ระบุ เนื่องจากตัวเลือกทั้งหมดหลังจากตีความว่าเป็นเฉพาะ QEMU ตัวเลือก ตัวเลือกนี้ค่อนข้างขั้นสูงและควรใช้โดยนักพัฒนาแอปที่ คุ้นเคยกับการจำลอง QEMU และ Android มาก
-qemu -h

แสดงความช่วยเหลือของ -qemu เช่น

emulator -qemu -h
-ramdisk filepath

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

เช่น

emulator @Pixel8_API_34 -ramdisk
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/ramdisk-test.img

หากไม่ใช้ตัวเลือกนี้ ค่าเริ่มต้นคือไฟล์ ramdisk.img ในไดเรกทอรีระบบ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ไดเรกทอรีระบบ AVD

-report-console socket

รายงานพอร์ตคอนโซลไปยังบุคคลที่สามระยะไกลก่อนเริ่ม และการจำลอง ซึ่งมีประโยชน์สำหรับสคริปต์การทดสอบอัตโนมัติ socket ต้องใช้รายการใดรายการหนึ่งต่อไปนี้ รูปแบบ:

  • tcp:port[,server][,max=seconds][,ipv6]
  • unix:port[,server][,max=seconds][,ipv6]

สำหรับข้อมูลเพิ่มเติม ให้ใช้ตัวเลือก -help-report-console ตามที่อธิบายไว้ใน เกี่ยวกับความช่วยเหลือสำหรับตัวเลือกที่เฉพาะเจาะจง

-shell

สร้างคอนโซลรูทเชลล์บนเทอร์มินัลปัจจุบัน ตัวเลือกนี้แตกต่างจาก adb shell ในวิธีต่อไปนี้

  • สร้างเชลล์รูทที่ช่วยให้คุณแก้ไขส่วนต่างๆ ของ ระบบ
  • โดยจะใช้งานได้แม้ว่า adb daemon ในระบบที่จำลองจะเสียก็ตาม
  • กด Control+C (หรือ Command-C ใน macOS) เพื่อหยุดโปรแกรมจำลองแทน Shell

เช่น

emulator @Pixel8_API_34 -shell
-snapshot name

ระบุชื่อของสแนปชอตภายในไฟล์พื้นที่เก็บข้อมูลสแนปชอตสำหรับอัตโนมัติ เริ่มและบันทึกการดำเนินการ

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

หากไม่ใช้ตัวเลือกนี้ ค่าเริ่มต้นจะเป็น ลำดับการเปิดเครื่องทั้งหมด ถ้าไม่มีสแนปชอตที่ระบุ โปรแกรมจำลองจะทำลำดับการเปิดเครื่องแบบเต็มแทนและดำเนินการ บันทึกการดำเนินการ

ดูตัวเลือก -snapstorage สำหรับข้อมูลเกี่ยวกับ ระบุไฟล์ที่จัดเก็บสแนปชอตและไฟล์เริ่มต้น

emulator @Pixel8_API_34 -snapshot snapshot2

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

นอกจากนี้ คุณยังสามารถสร้างสแนปชอตจากคอนโซลโปรแกรมจำลองโดยใช้ คำสั่ง avd snapshot save name สำหรับข้อมูลเพิ่มเติม โปรดดู ส่งคำสั่งคอนโซลโปรแกรมจำลอง

-snapshot-list

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

เช่น

emulator @Pixel8_API_34 -snapshot-list -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

คุณสามารถใช้ค่าคอลัมน์ "รหัส" และ "แท็ก" ในเอาต์พุตได้ เป็นอาร์กิวเมนต์สำหรับตัวเลือก -snapshot

-snapstorage filepath

ระบุไฟล์ที่เก็บที่มีสแนปชอตสถานะทั้งหมด ทั้งหมด สแนปชอตที่เกิดขึ้นระหว่างการดำเนินการจะได้รับการบันทึกไว้ในไฟล์นี้ เฉพาะ สแนปชอตในไฟล์นี้ได้ระหว่างการทำงานของโปรแกรมจำลอง

เช่น

emulator @Pixel8_API_34 -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

หากคุณไม่ระบุตัวเลือกนี้ ค่าเริ่มต้นจะเป็น snapshots.img ในข้อมูล ไดเรกทอรี หากไม่มีไฟล์ที่ระบุ โปรแกรมจำลองจะเริ่มทำงาน แต่ไม่รองรับการบันทึกหรือโหลดสแนปชอตสถานะ

-sysdir dir

ระบุไดเรกทอรีของระบบโดยใช้เส้นทางสัมบูรณ์ สำหรับข้อมูลเพิ่มเติม ดูไดเรกทอรีระบบ AVD เช่น

emulator @Pixel8_API_34 -sysdir
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/test
-system filepath

ระบุไฟล์ระบบเริ่มต้น มีชื่อไฟล์และเส้นทางสัมบูรณ์ หรือเส้นทางที่สัมพันธ์กับไดเรกทอรีที่ใช้งานอยู่

เช่น

emulator @Pixel8_API_34 -system
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/system-test.img

หากไม่ใช้ตัวเลือกนี้ ค่าเริ่มต้นคือไฟล์ system.img ในไดเรกทอรีระบบ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ไดเรกทอรีระบบ AVD

-use-system-libs

บน Linux ใช้ระบบ libstdc++ แทนเวอร์ชันที่รวมอยู่ในแพ็กเกจ ด้วยระบบจำลอง ใช้ตัวเลือกนี้เฉพาะเมื่อโปรแกรมจำลองไม่เริ่มทำงานตามปกติ และ วิธีนี้อาจไม่ได้ผลเสมอไป อีกวิธีหนึ่งคือตั้งค่า ตัวแปรสภาพแวดล้อม ANDROID_EMULATOR_USE_SYSTEM_LIBS เป็น 1

เช่น

me-linux$ emulator @Pixel8_API_34 -use-system-libs
-writable-system

ใช้ตัวเลือกนี้เพื่อให้อิมเมจระบบที่เขียนได้ในระหว่างเซสชันการจำลอง โดยทำดังนี้

  1. เริ่มอุปกรณ์เสมือนด้วยตัวเลือก -writable-system
  2. ป้อนคำสั่ง adb remount จากเทอร์มินัลคำสั่งเพื่อบอก โปรแกรมจำลองเพื่อต่อเชื่อม system/ อีกครั้งเป็นอ่าน/เขียน โดยค่าเริ่มต้น จะต่อเชื่อมเป็น อ่านอย่างเดียว

การใช้แฟล็กนี้จะสร้างสำเนาอิมเมจระบบชั่วคราว ซึ่งอาจมีขนาดใหญ่มากถึงหลายร้อย MB แต่จะถูกทำลายเมื่อโปรแกรมจำลอง ออก

ตัวเลือกที่เลิกใช้งานแล้ว

ตัวเลือกบรรทัดคำสั่งต่อไปนี้เลิกใช้งานแล้ว

  • -audio-in
  • -audio-out
  • -charmap
  • -code-profile
  • -cpu-delay
  • -dpi-device
  • -dynamic_skin
  • -enable-kvm
  • -gps
  • -image
  • -keyset
  • -help-keys
  • -help-keyset-file
  • -nand-limits
  • -noskin
  • -no-skin
  • -onion
  • -onion-alpha
  • -onion-rotation
  • -radio
  • -ranchu
  • -raw-keys
  • -scale
  • -shared-net-id
  • -shell-serial
  • -skin
  • -skindir
  • -trace
  • -useaudio

รับความช่วยเหลือเกี่ยวกับตัวเลือกบรรทัดคำสั่ง

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

แสดงรายการตัวเลือกโปรแกรมจำลองทั้งหมด

หากต้องการพิมพ์รายการตัวเลือกโปรแกรมจำลองทั้งหมด รวมถึงคำอธิบายสั้นๆ ให้ป้อน คำสั่งต่อไปนี้

emulator -help

รับความช่วยเหลือโดยละเอียดสำหรับตัวเลือกที่เฉพาะเจาะจง

หากต้องการพิมพ์ความช่วยเหลือสำหรับตัวเลือกการเริ่มต้นระบบที่ต้องการ ให้ป้อนคำสั่งต่อไปนี้

emulator -help-option

เช่น

emulator -help-netspeed

ความช่วยเหลือนี้มีรายละเอียดมากกว่าคำอธิบายที่ได้จาก ตัวเลือก-help

รับความช่วยเหลือโดยละเอียดสำหรับตัวเลือกทั้งหมด

หากต้องการความช่วยเหลือโดยละเอียดสำหรับตัวเลือกโปรแกรมจำลองทั้งหมด ให้ป้อนคำสั่งต่อไปนี้

emulator -help-all

แสดงรายการตัวแปรสภาพแวดล้อมโปรแกรมจำลอง

หากต้องการรับรายการตัวแปรสภาพแวดล้อมโปรแกรมจำลอง ให้ป้อนคำสั่งต่อไปนี้

emulator -help-environment

คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมในหน้าต่างเทอร์มินัลก่อนที่จะเปิดใช้งาน อุปกรณ์เสมือนจริง หรือคุณสามารถตั้งค่าผ่านทางการตั้งค่าของผู้ใช้ในระบบปฏิบัติการ ระบบ เช่น ตั้งค่าในไฟล์ .bashrc บน Linux

แสดงรายการแท็กแก้ไขข้อบกพร่อง

หากต้องการพิมพ์รายการแท็กสำหรับตัวเลือก -debug ให้ป้อนคำสั่งต่อไปนี้

emulator -help-debug-tags

ตัวเลือก -debug ช่วยให้คุณเปิดหรือปิดใช้ข้อความแก้ไขข้อบกพร่องได้จาก คอมโพเนนต์โปรแกรมจำลองเฉพาะ ตามที่ระบุโดยแท็ก