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

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. เรียกใช้และทดสอบแอปในโปรแกรมจำลอง
    ขณะที่โปรแกรมจำลอง ทำงานอยู่ คุณสามารถใช้คอนโซล โปรแกรมจำลองเพื่อออกคำสั่งได้ตามต้องการ

หากต้องการถอนการติดตั้งแอป ให้ทำเช่นเดียวกับในอุปกรณ์ 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 เมื่อเปิดตัว Android 15 ก็กลายเป็น 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 โปรแกรมจำลองจะใช้ไฟล์นี้เมื่อคุณสร้าง 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 ในไดเรกทอรีระบบเพื่อ สร้างไฟล์นี้

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

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

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

เมื่อกำหนด AVD ใน AVD Manager คุณสามารถเลือก ใช้ไฟล์การ์ด SD ที่จัดการโดยอัตโนมัติหรือไฟล์ที่คุณสร้างด้วย mksdcard เครื่องมือ คุณดูsdcard.imgไฟล์ ที่เชื่อมโยงกับ AVD ได้ใน AVD Manager -sdcard option overrides the SD card file specified in the AVD. โปรดทราบว่าตัวเลือก SD Card นี้จะใช้ไม่ได้ใน 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 ทำการรีบูตแบบเย็นและบันทึกสถานะของโปรแกรมจำลองเมื่อออก
-no-snapshot-save บูตอย่างรวดเร็วหากเป็นไปได้ แต่จะไม่บันทึกสถานะของโปรแกรมจำลองเมื่อออก
-no-snapshot ปิดใช้ฟีเจอร์การบูตอย่างรวดเร็วโดยสมบูรณ์ และจะไม่โหลดหรือบันทึกสถานะของโปรแกรมจำลอง
ฮาร์ดแวร์ของอุปกรณ์
-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 คือชื่อที่ระบบปฏิบัติการใช้ในคอมพิวเตอร์ที่ใช้พัฒนา โดย ชื่อที่ 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

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

-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 โดยอัตโนมัติ ดูข้อมูลเพิ่มเติมได้ที่การใช้ โปรแกรมจำลองกับพร็อกซี

หมายเหตุ: เมื่อเรียกใช้โปรแกรมจำลองหลายรายการ คุณควรตั้งค่า Flag นี้ในการเปิดตัวครั้งแรก

-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ในหน่วย kbps

  • 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

หมายเหตุ: การตั้งค่านี้มีผลกับอีเทอร์เน็ตและเครือข่ายมือถือ

-netsim-args arguments ส่งอาร์กิวเมนต์เพิ่มเติมไปยังโปรแกรมจำลองเครือข่าย (netsim) arguments คือรายการแฟล็กที่คั่นด้วยช่องว่าง

ตัวอย่างเช่น หากต้องการเปิดใช้การดักจับแพ็กเก็ตและเปลี่ยนเส้นทางการบันทึกไปยัง stderr ให้ทำดังนี้

emulator @Pixel8_API_34 -netsim-args="--pcap --logtostderr"

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

-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 Emulator

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

emulator -accel-check

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

-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 Emulator

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

emulator @Pixel8_API_34 -nojni

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

-selinux {disabled|permissive} ตั้งค่าโมดูลความปลอดภัยของ Security-Enhanced 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 - ปิดใช้การจำลองหน้าจอสัมผัสและแบบมัลติทัช

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

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

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

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

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

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

เปิดใช้การสร้างแผนภูมิการบูตโดยมีระยะหมดเวลาเป็นวินาที อิมเมจระบบ Android บางรายการมีระบบ init ที่แก้ไขแล้วซึ่งผสานรวมเครื่องมือ bootcharting คุณส่งผ่าน ระยะหมดเวลาของ 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

ตั้งค่าไฟล์อิมเมจพาร์ติชันข้อมูลผู้ใช้ ระบุชื่อไฟล์และ เส้นทางสัมบูรณ์หรือเส้นทางสัมพัทธ์ไปยังไดเรกทอรีการทำงานเพื่อตั้งค่า ไฟล์ข้อมูลผู้ใช้แบบถาวร หากไม่มีไฟล์ดังกล่าว โปรแกรมจำลองจะสร้างอิมเมจจากไฟล์ 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 บิต แต่ทํางานบน Windows 32 บิต ตัวเลือกนี้มีประโยชน์ในการเปรียบเทียบเพื่อแก้ไขข้อบกพร่องของปัญหา ตัวอย่าง

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

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

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

รับความช่วยเหลือเกี่ยวกับdeviceข้อกำหนดของอักขระ ตัวเลือกโปรแกรมจำลองบางตัวต้องใช้พารามิเตอร์ A 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 ต้องเป็นสตริงที่มีความยาวไม่เกิน 92 อักขระ ดูตัวอย่างได้ที่ property_contexts ไฟล์ คุณระบุตัวเลือก ‑prop ได้หลายรายการในบรรทัดคำสั่งเดียว ตัวเลือกนี้อาจมีประโยชน์สำหรับการแก้ไขข้อบกพร่อง เช่น

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 ดังนี้

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

เช่น

emulator @Pixel8_API_34 -shell
-snapshot name

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

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

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

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

emulator @Pixel8_API_34 -snapshot snapshot2

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

นอกจากนี้ คุณยังสร้าง Snapshot จากคอนโซลโปรแกรมจำลองได้โดยใช้คำสั่ง 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

-writable-system

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

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

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

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

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

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