ฉันจะเรียกใช้ตัวจำลอง Android จากบรรทัดคำสั่งได้อย่างไร


372

ฉันใช้ Mac ทำงานพัฒนา Android จากเทอร์มินัล ฉันสร้างโครงการHelloWorldสำเร็จแล้วและตอนนี้ฉันกำลังพยายามเรียกใช้จากบรรทัดคำสั่งในตัวจำลอง Android คำสั่งใดรันอีมูเลเตอร์สำหรับโครงการ HelloWorld ของฉัน

ฉันมีเครื่องมือ Android และเครื่องมือแพลตฟอร์มใน PATH แล้ว

แก้ไข:

ฉันจะบอกให้อีมูเลเตอร์รันโครงการ HelloWorld ของฉันจากบรรทัดคำสั่งได้อย่างไร ฉันได้สร้างโครงการด้วยมดแล้ว


เอกสารที่เกี่ยวข้อง: สร้างขึ้นด้วยและเปิดตัวพร้อมกับavdmanager emulator
jchook

คำตอบ:


380

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

  1. สร้างอุปกรณ์เสมือนใหม่ (AVD) สำหรับแพลตฟอร์มที่คุณต้องการ หากคุณต้องใช้บรรทัดคำสั่งในการสร้าง AVD ของคุณคุณสามารถเรียกได้android create avd -n <name> -t <targetID>ว่า targetID เป็นระดับ API ที่คุณต้องการ หากคุณสามารถใช้ GUI เพียงแค่พิมพ์android avdและมันจะเปิดตัวจัดการที่คุณสามารถทำเช่นเดียวกัน คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการจัดการ AVD ผ่าน GUIและผ่านบรรทัดคำสั่ง
  2. เรียกใช้ AVD โดยใช้คำสั่งemulator -avd <name>หรือผ่าน GUI ที่เรียกใช้ก่อนหน้านี้ รอจนกว่าตัวจำลองโหลดอย่างเต็มที่ใช้เวลาพอสมควร คุณสามารถอ่านเกี่ยวกับตัวเลือกเพิ่มเติมที่นี่
  3. ตอนนี้คุณต้องติดตั้งแอปพลิเคชันลงใน AVD ของคุณ โดยปกติในระหว่างการพัฒนาคุณเพียงแค่ใช้สคริปต์ Ant เดียวกันกับที่คุณใช้ในการสร้างโครงการเพียงแค่เลือกinstallเป้าหมาย adb install <path-to-your-APK>อย่างไรก็ตามคุณสามารถติดตั้งโปรแกรมด้วยตนเองโดยใช้คำสั่ง
  4. ตอนนี้เปลี่ยนเป็นอีมูเลเตอร์และเรียกใช้แอปพลิเคชันของคุณเช่นเดียวกับอุปกรณ์ปกติผ่านตัวเรียกใช้งาน adb shell am start -a android.intent.action.MAIN -n <package>/<activity class>หรือเป็นทางเลือกที่คุณสามารถใช้คำสั่งต่อไปนี้: ตัวอย่างเช่นadb shell am start -a android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld. ตามที่ผู้วิจารณ์แนะนำไว้คุณสามารถแทนที่org.sample.helloworld.HelloWorldในบรรทัดด้านบนด้วย just .HelloWorldและมันก็ใช้ได้เหมือนกัน

1
รายการ 4 คะแนนของคุณคือสิ่งที่ฉันกำลังมองหา เมื่อฉันเรียกฉันได้รับadb install <path-to-your-APK> error: device not foundถ้าผมเรียกใช้โปรแกรมจำลองในหนึ่งเปลือกและ adb error: device offlineติดตั้งคำสั่งในอีกฉันจะได้รับ ฉันจะตั้งค่าอุปกรณ์เสมือนจำลองได้อย่างไร
ธีรี่ร์แลม

3
ตกลงนำข้อมูลกลับมาจากคำตอบรุ่นก่อนหน้า :) หากคุณได้รับข้อความว่าอุปกรณ์ออฟไลน์ฉันคิดว่าคุณไม่ได้ปล่อยให้ระบบโหลด มันไม่มีประโยชน์ที่จะลองส่งคำสั่งไปยังโปรแกรมจำลองเมื่อมันแสดงโลโก้ Android คุณต้องรอจนกว่ามันจะแสดง lockscreen ให้คุณ และคุณถูกต้องที่คุณต้องใช้เชลล์อินสแตนซ์อื่นเพื่อส่งคำสั่งไปยังอุปกรณ์ของคุณ โดยวิธีการที่คุณสามารถตรวจสอบสถานะปัจจุบันของอุปกรณ์โดยใช้adb devicesคำสั่ง
Malcolm

1
@ThomasW ขอบคุณฉันได้เพิ่มข้อมูลนี้ลงในคำตอบแล้ว
Malcolm

1
@ L2G หากคุณเรียกใช้สิ่งนี้เป็นสคริปต์คุณก็สามารถทำได้ เมื่อฉันเขียนคำตอบฉันคิดว่าคุณทำทุกอย่างด้วยมือซึ่งแน่นอนว่าคุณสามารถรอได้
Malcolm

4
รีสตาร์ท adb-server โดย: adb kill-server; adb start-serverหากไม่มีสิ่งใดปรากฏขึ้นadb devices
Evandrix

278

แสดงรายการตัวจำลองทั้งหมดของคุณ:

emulator -list-avds

รันหนึ่งในอีมูเลเตอร์ที่แสดงรายการด้วย-avdค่าสถานะ:

emulator -avd @name-of-your-emulator

อยู่ที่ไหนemulatorภายใต้:

${ANDROID_SDK}/tools/emulator

2
หากคุณเรียกใช้จากเทอร์มินัล Linux คุณต้องcdเข้าไปในโฟลเดอร์ $ ANDROID_SDK / tools ไม่เช่นนั้นจะใช้งานไม่ได้
shimatai

4
ขอบคุณ! หากคุณใช้emulatorบ่อยขึ้นทำไมไม่สร้างนามแฝง: nano ~/.bashrc> เพิ่มalias emulator='$ANDROID_HOME/tools/emulator'บันทึก. ~/bashrcและคุณทำเสร็จแล้ว (แทนที่ANDROID_HOMEด้วยตัวแปรที่ถูกต้องที่ใช้หรือเส้นทางแบบคงที่ไปยังโฟลเดอร์ android)
Samuel Elh

3
หากเกิดข้อผิดพลาดต่อไปนี้: ข้อผิดพลาด: ./ android / qt / qt_setup.cpp: 28: ไม่พบไลบรารี่ Qt ที่ ../emulator/lib64/qt/lib การเริ่มต้นอีมูเลเตอร์จาก $ ANDROID_HOME / tools เป็นวิธีแก้ปัญหา github.com/decosoftware/deco-ide/issues/289
tebanep

หากคุณไม่ได้นำทางไปยังtoolsโฟลเดอร์จริงๆมันจะไม่ทำงาน PANIC: Missing emulator engine program for 'x86' CPU.ผมมีข้อผิดพลาด (ฉันใช้งานบน Linux, OpenSUSE) หลังจากที่ฉันไปที่toolsแล้วก็วิ่งไปemulator -avd "{name}"- มันก็ใช้ได้
pesho hristov

100

ฉันคิดว่าวิธีที่ดีที่สุดในการเข้าถึงผ่านเทอร์มินัลคือ:

cd ~/Library/Android/sdk/tools

ในการรัน AVD ที่แน่นอนโดยตรง:

./emulator -avd {AVD_NAME}

หากต้องการแสดงรายการ AVD ของคุณให้ใช้:

./emulator -list-avds

เส้นทางสำหรับ Windows คืออะไร
qwertzguy

9
อ่าเจอแล้ว: C: \ Users \ <user> \ AppData \ Local \ Android \ sdk \ emulator
qwertzguy

1
เพียงคนเดียวที่ทำงานสำหรับฉันขอบคุณ - แต่มีอยู่แล้วเพื่อเพิ่มไปยังเส้นทางของคุณหรือ smth bc cd'ing ที่นั่นทุกครั้งจะสร้างความยุ่งยาก
John D

@JohnD พูดอะไร - ฉันจะรวม./เป็นส่วนหนึ่งของemulatorคำสั่งในเส้นทาง / นามแฝงได้อย่างไร
DaveNOTDavid

ใน Linux ~/Android/Sdk/emulatorเส้นทางสำหรับผมคือ
Tyler Collier

26

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

แทนที่จะเริ่มต้นอีมูเลเตอร์ใหม่ ณ จุดนี้ให้ลองคำสั่งสองคำสั่งด้านล่างซึ่งหยุด & เริ่มบริดจ์ adb อีกครั้ง

adb kill-server

adb start-server


ใน Windows คุณอาจต้องฆ่าภารกิจ adb.exe โดยใช้ตัวจัดการงาน
Carl

25

ที่นี่คุณสามารถตรวจสอบตัวเลือกเพื่อดำเนินการคำสั่งนี้ผ่านทางบรรทัดคำสั่ง:

emulator -avd avd_name [-option [value]] ... [-qemu args]

ตัวอย่างเช่นฉันใช้มันเช่นนี้ด้านล่าง:

emulator -avd ICS_ARM -wipe-data -no-boot-anim -cpu-delay 0

สวัสดี germangti ฉันมีปัญหาเดียวกัน ฉันได้รับ "ABIs ที่ถูกต้อง: ไม่มี ABIs ข้อผิดพลาด: --abi x86 ไม่ถูกต้องสำหรับเป้าหมายที่เลือก" คุณแก้ไขปัญหาได้อย่างไร
Muneer Muhammed

15

เปิด CMD

  1. เปิดพร้อมท์คำสั่ง
  2. พิมพ์เส้นทางของโปรแกรมจำลองในกรณีของฉัน

C: \ ADT-กำ-Windows-x86_64-20140702 \ SDK \ เครื่องมือ ป้อนคำอธิบายรูปภาพที่นี่

  1. เขียน "emulator -avd emulatorname" ในกรณีของฉัน

โปรแกรมจำลอง - avd AdilVD

ป้อนคำอธิบายรูปภาพที่นี่


13

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

"/Applications/Android Studio.app/sdk/tools/emulator" -avd <NAMEOFDEVICE> -netspeed full -netdelay none

คุณสามารถทำให้มันง่ายขึ้นโดยการเพิ่มนามแฝงไปยัง. bash_profile และส่งไปยังงานพื้นหลัง

alias android='/Applications/Android\ Studio.app/sdk/tools/emulator <NAMEOFDEVICE> -netspeed full -netdelay none &'

ให้ Bash ทราบเกี่ยวกับการเปลี่ยนแปลง

source ~/.bash_profile

zsh: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว: NAMEOFDEVICE
Ben Sinclair

2
@ และคุณควรจะแทนที่NAMEOFDEVICEด้วยชื่อจริงของอีมูเลเตอร์ ทำemulator -list-avdsเพื่อรับรายการ avds ที่คุณมีในระบบของคุณ
nabn

9

เปิดพร้อมท์คำสั่งแล้วไปที่ <android-Home>\sdk\tools>emulator -avd <AVD_NAME>

นี่"emulator"คือคำสั่งที่ใช้เปิดอุปกรณ์ Android เสมือนของคุณ


9

หากคุณมี Git Bash คุณสามารถเปิดอีมูเลเตอร์ได้ด้วยการดับเบิลคลิกด้วยการตั้งค่าเริ่มต้น(ทดสอบใน Windows 10 เท่านั้น) :

  1. เปิด Git Bash
  2. วิ่ง cd ~/AppData/Local/Android/sdk/emulator
  3. เรียกใช้./emulator -list-avdsและจดจำชื่อของโปรแกรมจำลอง MY_EMULATORตัวอย่างเช่น.
  4. เปิด Notepad และเพิ่มสองบรรทัดเหล่านี้ (ใส่ชื่ออีมูเลเตอร์ของคุณแทนMY_EMULATOR):

    cd ~/AppData/Local/Android/sdk/emulator; ./emulator -avd MY_EMULATOR

  5. บันทึกไฟล์บางไฟล์เป็นไฟล์ myfile ดวลจุดโทษ คุณสามารถเปลี่ยน "myfile" เป็นเหมาะกับคุณที่ดีที่สุด แต่การขยาย.shเป็นสิ่งจำเป็น

  6. เปิด Git เตะที่ไดเรกทอรีที่คุณเก็บไว้myfile.shchmod +x myfile.shและเรียกใช้ อย่าลืมใส่ชื่อไฟล์ของคุณแทนmyfile

และนั่นมัน! จากนี้ไปทุกครั้งที่คุณต้องการเริ่มโปรแกรมจำลองนั้นเพียงแค่ค้นหาmyfile.shของคุณและดับเบิลคลิกที่มันแล้วรอให้ตัวจำลอง Android ของคุณเปิดใช้!


5

(Linux) ในเทอร์มินัลคุณคัดลอกและวางและเปลี่ยนทั้งสามฟิลด์เป็นสีน้ำเงิน

/home/YouUser/Folder/adt-bundle-linux-x86_64-20140702/sdk/tools/emulator64-x86 -avd Android5.1.1

YouUser = user of session in linux
Folder = path of folfer
Android5.1.1 = You version of android in the emulator,for example (Android4.4.2)

คุณสามารถดูอีมูเลเตอร์ในโฟลเดอร์ home cd /home/Youuser/.android/avd/


5

android create avdคำสั่งเลิก ตอนนี้ขอแนะนำให้ใช้avdmanagerแทนการเปิดตัวเลียนแบบจากบรรทัดคำสั่ง

ขั้นแรกสร้างอีมูเลเตอร์ใหม่หากยังไม่มี:

avdmanager create avd --name "MyEmulator" -k "system-images;android-
26;google_apis;x86"

สิ่งนี้ถือว่าคุณได้ติดตั้งอิมเมจระบบ X86 ที่ตรงกับ API 26 และติดตั้ง Google API แล้ว

emulator @MyEmulatorจากนั้นคุณสามารถเปิดโปรแกรมจำลองด้วย


4

ทุกวันนี้ที่คุณติดตั้ง Android Studio (2.2) ในกรณีของฉันและเพียง 1 ตัวจำลองคุณอาจใช้สายการบินเดียว

export ANDROID_SDK_ROOT=~/Library/Android/sdk/ && emulator '@'`emulator -list-avds`

หากคุณทำสิ่งนี้บ่อยๆให้ทำได้ง่ายขึ้น:

$ echo 'export ANDROID_SDK_ROOT=~/Library/Android/sdk/' >> ~/.profile

เพิ่มนามแฝงไปที่ ~.aliases

alias androidup="emulator '@'`emulator -list-avds`" 

จำได้source ~/.profile ~/.aliasesก่อนที่จะทดสอบ

ครั้งต่อไปเพียง $ androidup


3

รายการชื่อ avd ที่มีอยู่ใน

.android / AVD

/ SDK_PATH / tools / emulator - netdelay none -netspeed full -avd "AVD_NAME"


3

ใน windows ฉันใช้สคริปต์ PowerShell นี้เพื่อเริ่มต้น

$em = $env:USERPROFILE+"\AppData\Local\Android\sdk\tools\emulator.exe"; 
Start-Process $em " -avd Nexus_5X_API_24" -WindowStyle Hidden;

3
  1. เปิด CMD
  2. ในการรับรายการตัวจำลองทั้งหมด (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -list-avds)
  3. เลือกอีมูเลเตอร์ใด ๆ (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> อีมูเลเตอร์ - avd Pixel_2_API_28)

1

บน Mac (และ Linux ฉันคิดว่า) หลังจากที่คุณสร้าง AVD แล้วคุณสามารถสร้างนามแฝงได้: alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'

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

เรียกใช้emulatorด้วยตนเองจะทำให้คุณมีข้อผิดพลาดเพราะเขาคาดหวังว่าในตำแหน่งปัจจุบันของคุณคุณมี: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'เพื่อเริ่มโปรแกรมจำลอง


1

ฉันเขียนเชลล์สคริปต์ง่ายๆนี้โดยใช้ Zenity ที่ให้คุณเลือก avd ที่คุณต้องการเรียกใช้ หากคุณไม่ได้กำหนด ANDROID_HOME ไว้คุณสามารถแทนที่ได้ด้วยเส้นทางแบบเต็มเพื่อจำลอง สิ่งนี้จะง่ายต่อการเลือกแทน Zenity ด้วย แต่ฉันเลือกใช้ Zenity เนื่องจากฉันเรียกใช้จากเมนูแอปพลิเคชัน xfce (แม้ว่าจะเป็น. desktop-file)

#!/bin/sh

opt=$(zenity --title="Choose AVD" --text="Choose which emulator to start" --list \
                   --column="Devices" --separator="\n" `$ANDROID_HOME/emulator/emulator -list-avds`);

$ANDROID_HOME/emulator/emulator -avd $opt

1

เรียกใช้โปรแกรมจำลองแรกที่มี:

~/Library/Android/sdk/tools/emulator -avd `~/Library/Android/sdk/tools/emulator -list-avds | awk '{print $1}'`

ฉันทำสิ่งที่คล้ายกัน:~/Library/Android/sdk/tools/emulator -avd $(~/Library/Android/sdk/tools/emulator -list-avds | head -1)
Kamen Tsvetkov

0

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

ตำแหน่งโปรแกรมจำลอง: / Users / {{ชื่อผู้ใช้}} / Library / Android / sdk / tools

  1. ตรวจสอบ avd ที่มีอยู่: - โปรแกรมจำลอง - รายการ-avds

  2. เริ่มต้นโปรแกรมจำลองพร้อมชุด DNS / ผู้ใช้ / {{ชื่อผู้ใช้}} / ห้องสมุด / Android / sdk / เครื่องมือ / โปรแกรมจำลอง -avd Pixel_API_26 -dns-server 8.8.8.8


0

ดูคำแนะนำด้านล่างสำหรับUbuntu Linuxพร้อมzsh :

  1. เปิดหน้าต่างเทอร์มินัล ( CTRL+ ALT+T )
  2. เรียกใช้คำสั่ง nano ~/.zshrcเพื่อแก้ไขโปรไฟล์ของคุณ
  3. เพิ่มบรรทัดต่อไปนี้ในไฟล์ที่เปิด:
export ANDROID_SDK_HOME="~/Android/Sdk"
alias emulator="$ANDROID_SDK_HOME/emulator/emulator"
  1. บันทึกไฟล์ ( CTRL+ O, CTRL+X )
  2. หาแหล่งโปรไฟล์โดยใช้คำสั่งsource ~/.zshrc หรือออกจากระบบแล้วลงชื่อกลับเข้าใช้ใหม่
  3. ทดสอบโดยรันคำสั่งemulator -helpในเทอร์มินัล

หมายเหตุ : ควรเหมือนกันbashโดยแทนที่.zshrcด้วย.bashrc


0

ฉันมาช้าที่นี่ แต่ต้องการแบ่งปันดังนั้นอาจช่วยให้ฉันและฉันได้เช่นกันในภายหลังจำเป็นต้องใช้ในภายหลัง :) ดังนั้นด้านล่างเป็นวิธีเปิดตัวจำลองจากบรรทัดคำสั่งด้วยคำสั่งเดียวโดยใช้สคริปต์ทุบตี ฉันใช้ MX Linux แต่กระบวนการเหมือนกันในทุกระบบปฏิบัติการ

1- ก่อนตรวจสอบตัวเลียนแบบที่ติดตั้ง

emulator -list-avds

มันจะส่งผลเช่นด้านล่าง

emulator -list-avds
Nexus_4_API_28
Pixel_2_API_28

2- เปิดตัวแก้ไขข้อความธรรมดาหรือรหัสและสร้างไฟล์ใหม่และเขียนดังต่อไปนี้

#!/bin/sh
emulator -avd Nexus_4_API_28

Nexus_4_API_28 เป็นโปรแกรมจำลองที่ฉันต้องการเปิดให้คุณเขียนของคุณที่คุณได้รับจากขั้นตอนแรก

บันทึกไฟล์นี้ด้วยนามสกุล. sh

3- จากนั้นเปลี่ยนการอนุญาตในไฟล์เพื่อให้สามารถเรียกใช้งานได้:

chmod u+x emu.sh

4- ตอนนี้เปิดอีมูเลเตอร์เพียงแค่เรียกใช้ไฟล์สคริปต์ทุบตีนี้โดยใช้คำสั่งต่อไปนี้

./emu.sh

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.