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

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

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

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

ใช้คำสั่ง 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 300

โปรดทราบว่าอาร์กิวเมนต์ -qt-hide-window -grpc-use-token -idle-grpc-timeout 300 ใช้เพื่อเรียกใช้หน้าต่างโปรแกรมจำลองภายใน 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 จะลบล้างไฟล์ในการ์ด 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 Issue Tracker

ตัวเลือกที่ใช้บ่อยมีดังนี้

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

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

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

ตั้งค่าโหมดการจำลองสำหรับกล้องที่หันไปด้านหลังหรือด้านหน้า ซึ่งจะลบล้างการตั้งค่ากล้อง ใน AVD

mode อาจมีค่าใดค่าหนึ่งต่อไปนี้

  • emulated - โปรแกรมจำลองจะจำลองกล้องในซอฟต์แวร์
  • environment - โปรแกรมจำลองใช้ฉากเสมือนที่กำหนดไว้ใน ไฟล์การกำหนดค่าสภาพแวดล้อมของ AVD
  • webcamn - โปรแกรมจำลองใช้เว็บแคมที่เชื่อมต่อกับ คอมพิวเตอร์ที่ใช้พัฒนา ซึ่งระบุด้วยหมายเลข หากต้องการดูรายการเว็บแคม ให้ใช้ตัวเลือก -webcam-list เช่น webcam0
  • imagefile:filename - โปรแกรมจำลองใช้ไฟล์รูปภาพสำหรับ เอาต์พุตของกล้อง
  • videofile:filename - โปรแกรมจำลองจะใช้วิดีโอสำหรับเอาต์พุตของกล้อง
  • image360:filename - โปรแกรมจำลองใช้ภาพพาโนรามาแบบสี่เหลี่ยมผืนผ้าเท่ากัน สำหรับเอาต์พุตของกล้อง พร้อมใช้งานในเวอร์ชัน 36.6.4 ขึ้นไป
  • 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 โดยอัตโนมัติ ดูข้อมูลเพิ่มเติมได้ที่การใช้ โปรแกรมจำลองกับพร็อกซี

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

-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

-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

-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 - ปิดใช้การจำลองหน้าจอสัมผัสและแบบมัลติทัช

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

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

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

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

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

ตัวเลือกขั้นสูง คำอธิบายสั้นๆ
-bootchart timeout

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

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