मैं कमांड लाइन से एंड्रॉइड एमुलेटर कैसे लॉन्च करूं?


372

मैं मैक पर हूं, टर्मिनल से एंड्रॉइड डेवलपमेंट पर काम कर रहा हूं। मैंने HelloWorld परियोजना को सफलतापूर्वक बनाया है और अब मैं इसे एंड्रॉइड एमुलेटर में कमांड लाइन से चलाने की कोशिश कर रहा हूं। मेरे हैलोवर्ल्ड प्रोजेक्ट के लिए एमुलेटर कौन सी कमांड चलाता है?

मेरे पास पहले से ही मेरे PATH में Android टूल और प्लेटफ़ॉर्म-टूल हैं।

संपादित करें:

मैं कमांड लाइन से अपने हैलोवर्ल्ड प्रोजेक्ट को चलाने के लिए एमुलेटर को कैसे बताऊं? मैंने पहले ही चींटी के साथ प्रोजेक्ट बनाया है।


प्रासंगिक डॉक्स: के साथ बनाएँ avdmanagerऔर लॉन्च करें emulator
19 jchook

जवाबों:


380

मुझे लगता है कि आपने अपनी परियोजना का निर्माण किया है और बस इसे लॉन्च करने की आवश्यकता है, लेकिन आपके पास कोई भी एवीडी नहीं बनाई गई है और सभी कार्यों के लिए कमांड लाइन का उपयोग करना है। आपको निम्न कार्य करने होंगे।

  1. आपको जिस प्लेटफ़ॉर्म की ज़रूरत है, उसके लिए एक नया वर्चुअल डिवाइस (AVD) बनाएं। यदि आपको अपना AVD बनाने के लिए कमांड लाइन का उपयोग करना है, तो आप कॉल कर सकते हैं android create avd -n <name> -t <targetID>कि टारगेट वह एपीआई स्तर है जिसकी आपको आवश्यकता है। यदि आप GUI का उपयोग कर सकते हैं, तो बस टाइप करें android avdऔर यह प्रबंधक को लॉन्च करेगा, जहां आप ऐसा कर सकते हैं। आप GUI के माध्यम से और कमांड लाइन के माध्यम से AVD प्रबंधन के बारे में अधिक पढ़ सकते हैं ।
  2. AVD को कमांड का उपयोग करके emulator -avd <name>या पहले लॉन्च किए गए GUI के माध्यम से चलाएं । एमुलेटर पूरी तरह से लोड होने तक प्रतीक्षा करें, इसमें कुछ समय लगता है। आप यहां अतिरिक्त विकल्पों के बारे में पढ़ सकते हैं ।
  3. अब आपको एप्लीकेशन को अपने AVD में इंस्टॉल करना होगा। आमतौर पर विकास के दौरान आप केवल उसी चींटी स्क्रिप्ट का उपयोग करते हैं जिसका उपयोग आपने प्रोजेक्ट बनाने के लिए किया था, बस 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बस ऊपर की पंक्ति में भी प्रतिस्थापित कर सकते हैं .HelloWorld, और यह भी काम करेगा।

1
आपकी 4 अंक सूची वही है जो मैं खोज रहा हूं। जब मैं दौड़ता हूं adb install <path-to-your-APK>, मुझे मिलता है error: device not found। यदि मैं एक शेल में एमुलेटर चलाता हूं और एडीबी दूसरे में कमांड स्थापित करता है, तो मुझे मिलता है error: device offline। मैं एक अनुकरणीय आभासी डिवाइस कैसे सेट करूं?
थिएरी लैम

3
ठीक है, उत्तर के पिछले संस्करण से जानकारी वापस लाया। :) यदि आपको संदेश मिलता है कि डिवाइस ऑफ़लाइन है, तो मुझे लगता है कि आपने सिस्टम लोड नहीं होने दिया है। एंड्रॉइड लोगो को दिखाने पर एमुलेटर पर कमांड भेजने की कोशिश करना बेकार है, आपको तब तक इंतजार करना होगा जब तक यह आपको लॉकस्क्रीन नहीं दिखाता। और आप सही हैं कि आपको अपने डिवाइस पर कमांड भेजने के लिए एक और शेल इंस्टेंस का उपयोग करना होगा। वैसे, आप adb devicesकमांड का उपयोग करके उपकरणों की वर्तमान स्थिति की जांच कर सकते हैं ।
मैल्कम

1
@ThomasW धन्यवाद, मैंने इस जानकारी को उत्तर में जोड़ दिया है।
मैल्कम

1
@ L2G यदि आप इसे स्क्रिप्ट के रूप में चलाते हैं, तो हाँ, आप ऐसा कर सकते हैं। जब मैंने उत्तर लिखा, मैंने मान लिया कि आप हाथ से सब कुछ करते हैं, इस स्थिति में, निश्चित रूप से, आप स्वयं प्रतीक्षा कर सकते हैं।
माल्कॉम

4
adb-server को फिर से शुरू करें: adb kill-server; adb start-serverअगर कुछ नहीं दिखाता हैadb devices
7

278

अपने सभी एमुलेटरों की सूची बनाएँ:

emulator -list-avds

-avdध्वज के साथ सूचीबद्ध एमुलेटरों में से एक को चलाएं :

emulator -avd @name-of-your-emulator

कहां emulatorहै:

${ANDROID_SDK}/tools/emulator

2
यदि आप लिनक्स टर्मिनल से चलते हैं, तो आपको cd$ ANDROID_SDK / टूल्स फोल्डर में होना चाहिए या यह काम नहीं करेगा।
शिमताई

4
धन्यवाद! यदि आप emulatorअधिक बार उपयोग करते हैं तो एक उपनाम क्यों न बनाएं: nano ~/.bashrc> जोड़ें alias emulator='$ANDROID_HOME/tools/emulator', सहेजें, . ~/bashrcऔर आपका काम हो गया। ( ANDROID_HOMEउपयोग किए गए सही चर या एंड्रॉइड फ़ोल्डर के स्थैतिक पथ के साथ बदलें )।
सैमुअल एल्ह

3
यदि निम्न त्रुटि उठाई गई है: ERROR:। / Android / qt / qt_setup.cpp: 28: Qt लाइब्रेरी को नहीं मिला ../emulator/lib64/qt/lib, $ ANDROV_HOME / टूल्स से एमुलेटर शुरू करना एक वर्क अराउंड है। github.com/decosoftware/deco-ide/issues/289
tebanep

यदि आप वास्तव में toolsफ़ोल्डर में नेविगेट नहीं करते हैं - तो यह वास्तव में काम नहीं करेगा। मुझे त्रुटि मिली PANIC: Missing emulator engine program for 'x86' CPU.। (मैं लिनक्स पर हूँ, OpenSUSE।) के बाद मैं करने के लिए नेविगेट toolsऔर फिर बस भाग गया emulator -avd "{name}"- फिर यह काम किया।
पेशो hristov

100

मुझे लगता है कि टर्मिनल के माध्यम से इस तक पहुंचने का सबसे अच्छा तरीका है:

cd ~/Library/Android/sdk/tools

सीधे एक निश्चित AVD चलाने के लिए:

./emulator -avd {AVD_NAME}

अपने AVDs उपयोग की सूची के लिए:

./emulator -list-avds

विंडोज के लिए रास्ता क्या है?
qwertzguy

9
आह यह पाया गया: C: \ Users \ <user> \ AppData \ Local \ Android \ sdk \ emulator
qwertzguy

1
केवल एक ही जो मेरे लिए काम करता है, thx - लेकिन वहाँ वैसे भी इसे उर पथ या smt bc cd'ing में जोड़ने के लिए है हर बार थोड़े परेशानी होती है
John D

क्या @ जॉन ने कहा - मैं एक पथ / उपनाम में कमांड के ./भाग के रूप में कैसे शामिल करूंगा emulator?
डेविनोटविड

लिनक्स में मेरे लिए रास्ता है ~/Android/Sdk/emulator
टायलर कोलियर 3

26

बस यहां जोड़ने के लिए, जब भी आपको "त्रुटि: डिवाइस ऑफ़लाइन" मिलता है, तो इसका मतलब है कि एमुलेटर स्टार्टअप में समय लगने के कारण एमुलेटर और एडीबी ब्रिज के साथ संबंध टूट गया है।

इस बिंदु पर पुन: प्रारंभ करने वाले के बजाय दो आदेशों के नीचे प्रयास करें जो फिर से अदब पुल को रोकता है और शुरू करता है।

adb मार-सर्वर

adb start-server


विंडोज में, आपको टास्क मैनेजर का उपयोग करके adb.exe कार्य को मारने की आवश्यकता हो सकती है।
कार्ल

25

यहां आप कमांड-लाइन के माध्यम से इस कमांड को निष्पादित करने के विकल्पों की जांच कर सकते हैं:

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

उदाहरण के लिए, मैं इसे नीचे इस तरह उपयोग करता हूं:

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

हाय जर्मनी, मैं एक ही मुद्दा है। मुझे "मान्य ABIs: कोई ABIs नहीं मिल रहा है। त्रुटि: चयनित लक्ष्य के लिए अमान्य-abi x86।" आपने मुद्दा कैसे तय किया है?
मुनीर मुहम्मद

15

CMD खोलें

  1. ओपन कमांड प्रॉम्प्ट
  2. मेरे मामले में एमुलेटर का रास्ता टाइप करें

C: \ ADT-बंडल-windows-x86_64-20140702 \ एसडीके \ उपकरण यहां छवि विवरण दर्ज करें

  1. मेरे मामले में "emulator -avd emulatorname" लिखें

एमुलेटर -एड एडिलवीडी

यहां छवि विवरण दर्ज करें


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 &'

बैश को बदलावों के बारे में बताएं।

source ~/.bash_profile

zsh: ऐसी कोई फ़ाइल या निर्देशिका नहीं: NAMEOFDEVICE
बेन सिनक्लेयर

2
@ और आप NAMEOFDEVICEएमुलेटर के वास्तविक नाम से प्रतिस्थापित करने वाले हैं । emulator -list-avdsअपने सिस्टम में आपके पास मौजूद अवधियों की एक सूची प्राप्त करने के लिए क्या करें।
नबंर

9

कमांड प्रॉम्प्ट खोलें और पर जाएं <android-Home>\sdk\tools>emulator -avd <AVD_NAME>

यहां "emulator"आपके एंड्रॉइड वर्चुअल डिवाइस को खोलने के लिए कमांड का उपयोग किया गया है ।


9

यदि आपके पास गिट बैश है तो आप अपने एमुलेटर को डबल-क्लिक के साथ खोल सकते हैं, जिसमें कुछ प्रारंभिक सेटअप (केवल विंडोज 10 में परीक्षण किया गया है) :

  1. गेट बैश खोलें।
  2. Daud cd ~/AppData/Local/Android/sdk/emulator
  3. रन ./emulator -list-avdsऔर एमुलेटर के नाम पर ध्यान दें। MY_EMULATORउदाहरण के लिए।
  4. नोटपैड खोलें और इन दो पंक्तियों को जोड़ें (इसके बजाय अपने एमुलेटर का नाम डालें MY_EMULATOR):

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

  5. फाइल को कहीं न कहीं मायफाइल के रूप में सेव करें। । आप "माईफाइल" को आप सबसे अच्छे के रूप में बदल सकते हैं, लेकिन विस्तार .sh की जरूरत है।

  6. जहाँ आप myfile.sh को स्टोर करते हैं और चलाएं उस डायरेक्टरी में Git Bash खोलें chmod +x myfile.shMyfile के बजाय अपनी फ़ाइल का नाम रखना याद रखें ।

और बस! अब से, हर बार आपको उस एमुलेटर को शुरू करने की आवश्यकता है, बस अपने myfile.sh को ढूंढें और उस पर डबल क्लिक करें और लॉन्च करने के लिए अपने एंड्रॉइड एमुलेटर की प्रतीक्षा करें!


5

(लिनक्स) आप टर्मिनल में कॉपी और पेस्ट करें और नीले में तीन क्षेत्रों को बदल दें

/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)

आप एमुलेटर को फ़ोल्डर में देख सकते हैं 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 स्टूडियो स्थापित है (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

उपलब्ध अवध नाम की सूची

.android / avd

/ SDK_PATH / उपकरण / एमुलेटर -नेटेल्ले कोई नहीं-etspeed पूरा -avd "http://D_NAME"


3

विंडोज़ में, मैं इसे शुरू करने के लिए इस पॉवरशेल स्क्रिप्ट का उपयोग करता हूं।

$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> emulator -avd Pixel_2_API_28)

1

मैक (और लिनक्स पर मुझे लगता है), आपने अपना AVD बनाने के बाद, आप एक उपनाम बना सकते हैं: alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'

नोट : उपनाम का निष्पादन आपके टर्मिनल को लॉक नहीं करेगा, यदि आप चाहते हैं कि, बस अंतिम 'और' को हटा दें ।

emulatorइसे चलाएं स्वयं आपको एक त्रुटि देगा क्योंकि वह अपेक्षा करता है कि, आपकी वर्तमान स्थिति में, आपके पास: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'एमुलेटर शुरू करना है।


1

मैंने ज़ैनिटी का उपयोग करते हुए यह सरल शेल स्क्रिप्ट लिखी है, जिससे आप चुन सकते हैं कि आप किस एवीडी को चलाना चाहते हैं। यदि आपके पास ANDROID_HOME परिभाषित नहीं है, तो आप उसे केवल एमुलेटर के लिए पूर्ण पथ के साथ बदल सकते हैं। यह ज़ेनिटी के बजाय चुनिंदा के साथ करना आसान होगा, लेकिन मैंने ज़ेनिटी का विकल्प चुना क्योंकि मैं इसे xfce-application मेनू (हालांकि .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)
कामेन त्सेवकोव

0

डीएनएस की मदद से कमांड लाइन से एमुलेटर शुरू करना

एमुलेटर कार्यक्रम स्थान: / उपयोगकर्ता / {{उपयोगकर्ता नाम}} / पुस्तकालय / एंड्रॉयड / एसडीके / उपकरण

  1. मौजूदा avd की जाँच करें: - emulator -list-avds

  2. डीएनएस सेट / उपयोगकर्ताओं / {{उपयोगकर्ता नाम}} / लाइब्रेरी / Android / sdk / उपकरण / एमुलेटर -avd Pixel_API_26 -dns-server 8.8.8 के साथ एमुलेटर प्रारंभ करें


0

नीचे देखें zsh के साथ Ubuntu लिनक्स के लिए निर्देश :

  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

मुझे देर हो चुकी है, यहाँ है, लेकिन शेयर करना चाहता हूँ तो हो सकता है कि यह किसी और मेरी भी मदद करे जब कभी बाद में जरूरत पड़े :), तो नीचे कमांड लाइन से एमुलेटर खोलने का तरीका है, जो bash script का उपयोग करके एक कमांड के साथ है। मैं एमएक्स लिनक्स का उपयोग कर रहा हूं लेकिन सभी ऑपरेटिंग सिस्टम पर प्रक्रिया समान है

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- अब एमुलेटर को खोलें और इस bash स्क्रिप्ट फाइल को निम्नलिखित कमांड के साथ निष्पादित करें

./emu.sh

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.