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

Android SDK टूल में, Android डिवाइस का Emulator शामिल होता है. यह एक वर्चुअल डिवाइस है, जो आपके कंप्यूटर पर चलता है. Android Emulator की मदद से, फ़िज़िकल डिवाइस का इस्तेमाल किए बिना Android ऐप्लिकेशन डेवलप और टेस्ट किए जा सकते हैं.

इस पेज पर, कमांड-लाइन की उन सुविधाओं के बारे में बताया गया है जिनका इस्तेमाल Android Emulator के साथ किया जा सकता है. Android Emulator के यूज़र इंटरफ़ेस (यूआई) को इस्तेमाल करने के बारे में जानकारी के लिए, Android Emulator पर ऐप्लिकेशन चलाना लेख पढ़ें.

एम्युलेटर शुरू करना

एम्युलेटर शुरू करने के लिए, emulator कमांड का इस्तेमाल करें. इसके अलावा, अपने प्रोजेक्ट को चलाया जा सकता है या AVD Manager के ज़रिए इसे शुरू किया जा सकता है.

टर्मिनल प्रॉम्प्ट से वर्चुअल डिवाइस शुरू करने के लिए, यहां बुनियादी कमांड-लाइन सिंटैक्स दिया गया है:

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

या

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

उदाहरण के लिए, अगर आपने Mac पर चल रहे Android Studio से एम्युलेटर लॉन्च किया है, तो डिफ़ॉल्ट कमांड लाइन कुछ इस तरह दिखेगी:

/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

इस विकल्प का इस्तेमाल करके, Android की होम डायरेक्ट्री से AVD के नामों की सूची दिखाई जा सकती है. डिफ़ॉल्ट होम डायरेक्ट्री को बदलने के लिए, ANDROID_SDK_HOME एनवायरमेंट वैरिएबल सेट करें. यह वैरिएबल, उपयोगकर्ता के हिसाब से डायरेक्ट्री का रूट तय करता है. इस डायरेक्ट्री में, सभी कॉन्फ़िगरेशन और एवीडी कॉन्टेंट सेव किया जाता है.

वर्चुअल डिवाइस लॉन्च करने से पहले, टर्मिनल विंडो में एनवायरमेंट वैरिएबल सेट किया जा सकता है. इसके अलावा, ऑपरेटिंग सिस्टम में उपयोगकर्ता की सेटिंग के ज़रिए भी इसे सेट किया जा सकता है. उदाहरण के लिए, Linux पर मौजूद आपकी .bashrc फ़ाइल में.

Android Emulator को बंद करने के लिए, एम्युलेटर विंडो बंद करें.

ऐप्लिकेशन इंस्टॉल करना

Android Studio या एम्युलेटर यूज़र इंटरफ़ेस (यूआई) के ज़रिए ऐप्लिकेशन इंस्टॉल करने के अलावा, adb यूटिलिटी का इस्तेमाल करके, अपने ऐप्लिकेशन को वर्चुअल डिवाइस पर इंस्टॉल किया जा सकता है.

अपने ऐप्लिकेशन को इंस्टॉल करने, चलाने, और उसकी जाँच करने के लिए adb का इस्तेमाल करने के लिए, यह सामान्य तरीका अपनाएं:

  1. अपना ऐप्लिकेशन बनाएं और उसे चलाएं में बताए गए तरीके से, अपने ऐप्लिकेशन को APK में बनाएं और पैकेज करें.
  2. पिछले सेक्शन में बताए गए तरीके से, कमांड लाइन से एम्युलेटर शुरू करें. इसके लिए, ज़रूरी स्टार्टअप विकल्पों का इस्तेमाल करें.
  3. adb का इस्तेमाल करके, अपना ऐप्लिकेशन इंस्टॉल करें.
  4. एम्युलेटर पर अपना ऐप्लिकेशन चलाएं और उसकी जांच करें.
    एम्युलेटर के चालू होने पर, ज़रूरत के हिसाब से निर्देश देने के लिए, एम्युलेटर कंसोल का इस्तेमाल किया जा सकता है.

किसी ऐप्लिकेशन को अनइंस्टॉल करने के लिए, उसी तरीके का इस्तेमाल करें जो Android डिवाइस पर किया जाता है.

वर्चुअल डिवाइस, ऐप्लिकेशन और उसके स्टेटस डेटा को रीस्टार्ट करने पर भी सुरक्षित रखता है. यह डेटा, उपयोगकर्ता के डेटा डिस्क पार्टीशन (userdata-qemu.img) में सेव होता है. इस डेटा को मिटाने के लिए, -wipe-data विकल्प के साथ एम्युलेटर शुरू करें या एवीडी मैनेजर में डेटा मिटाएं. उपयोगकर्ता के डेटा के पार्टीशन और अन्य स्टोरेज के बारे में ज़्यादा जानने के लिए, यहां दिया गया सेक्शन देखें.

ध्यान दें: adb यूटिलिटी, वर्चुअल डिवाइस को एक फ़िज़िकल डिवाइस के तौर पर देखती है. इस वजह से, आपको कुछ सामान्य adb कमांड के साथ -d फ़्लैग का इस्तेमाल करना पड़ सकता है. जैसे, install. -d फ़्लैग की मदद से, यह तय किया जा सकता है कि किसी कमांड को टारगेट करने के लिए, कनेक्ट किए गए कई डिवाइसों में से किस डिवाइस का इस्तेमाल किया जाए. अगर आपने -d नहीं दिया है, तो एम्युलेटर अपनी सूची में मौजूद पहले डिवाइस को टारगेट करता है.

डिफ़ॉल्ट डायरेक्ट्री और फ़ाइलों के बारे में जानकारी

एम्युलेटर, उससे जुड़ी फ़ाइलों का इस्तेमाल करता है. इनमें से एवीडी सिस्टम और डेटा डायरेक्ट्री सबसे अहम हैं. कमांड-लाइन के विकल्प तय करते समय, एम्युलेटर डायरेक्ट्री स्ट्रक्चर और फ़ाइलों के बारे में जानना मददगार होता है. हालांकि, आम तौर पर आपको डिफ़ॉल्ट डायरेक्ट्री या फ़ाइलों में बदलाव करने की ज़रूरत नहीं होती.

Android Emulator, (QEMU) हाइपरवाइज़र का इस्तेमाल करता है.

एवीडी सिस्टम डायरेक्ट्री

सिस्टम डायरेक्ट्री में Android सिस्टम इमेज होती हैं. इनका इस्तेमाल, ऑपरेटिंग सिस्टम को सिम्युलेट करने के लिए एम्युलेटर करता है. इस डायरेक्ट्री में, प्लैटफ़ॉर्म के हिसाब से सिर्फ़ पढ़ने के लिए उपलब्ध फ़ाइलें होती हैं. इन्हें एक ही तरह के सभी एवीडी शेयर करते हैं. इनमें एपीआई लेवल, सीपीयू आर्किटेक्चर, और 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, संख्या वाला एपीआई लेवल या प्रीव्यू रिलीज़ के लिए अक्षर होता है. उदाहरण के लिए, android-V से Android VanillaIceCream की झलक मिलती है. रिलीज़ होने पर, यह एपीआई लेवल 35 बन गया. इसे android-35 के तौर पर दिखाया गया है.
  • variant, सिस्टम इमेज में लागू की गई खास सुविधाओं से जुड़ा नाम है. उदाहरण के लिए, google_apis या android-wear.
  • arch टारगेट सीपीयू आर्किटेक्चर है. उदाहरण के लिए, x86.

AVD के लिए किसी दूसरी सिस्टम डायरेक्ट्री के बारे में बताने के लिए, -sysdir विकल्प का इस्तेमाल करें.

एम्युलेटर, सिस्टम डायरेक्ट्री से इन फ़ाइलों को पढ़ता है:

पहली टेबल. सिस्टम डायरेक्ट्री की ऐसी फ़ाइलें जिन्हें Android Emulator पढ़ता है

फ़ाइल ब्यौरा कोई दूसरी फ़ाइल चुनने का विकल्प
kernel-qemu या kernel-ranchu AVD के लिए बाइनरी कर्नेल इमेज. kernel-ranchu, QEMU एम्युलेटर पर आधारित है. -kernel
ramdisk.img बूट पार्टीशन की इमेज. यह system.img का सबसेट है. इसे सिस्टम इमेज के माउंट होने से पहले, कर्नल लोड करता है. इसमें आम तौर पर, कुछ बाइनरी और इनिशियलाइज़ेशन स्क्रिप्ट होती हैं. -ramdisk
system.img सिस्टम इमेज का शुरुआती वर्शन, जिसे सिर्फ़ पढ़ा जा सकता है. खास तौर पर, सिस्टम लाइब्रेरी और एपीआई लेवल और वैरिएंट से जुड़ा डेटा रखने वाला पार्टीशन. -system
userdata.img डेटा पार्टिशन का शुरुआती वर्शन, जो एम्युलेट किए गए सिस्टम में data/ के तौर पर दिखता है. इसमें एवीडी के लिए, लिखने लायक सभी डेटा शामिल होते हैं. जब नया एवीडी बनाया जाता है या ‑wipe-data विकल्प का इस्तेमाल किया जाता है, तब एम्युलेटर इस फ़ाइल का इस्तेमाल करता है. ज़्यादा जानकारी के लिए, यहां दिए गए सेक्शन में userdata-qemu.img फ़ाइल का ब्यौरा देखें. -initdata
-init-data

एवीडी डेटा डायरेक्ट्री

एवीडी डेटा डायरेक्ट्री को कॉन्टेंट डायरेक्ट्री भी कहा जाता है. यह किसी एक एवीडी इंस्टेंस के लिए होती है. इसमें एवीडी के लिए, बदलाव किया जा सकने वाला सारा डेटा होता है.

डिफ़ॉल्ट जगह यह है, जहां name एवीडी का नाम है:

  • macOS और Linux - ~/.android/avd/name.avd/
  • Windows 10 और इसके बाद के वर्शन - C:\Users\user\.android\name.avd\

किसी दूसरी एवीडी डेटा डायरेक्ट्री के बारे में बताने के लिए, -datadir विकल्प का इस्तेमाल करें.

यहां दी गई टेबल में, इस डायरेक्ट्री में मौजूद सबसे अहम फ़ाइलों की सूची दी गई है:

टेबल 2. AVD के डेटा डायरेक्ट्री में मौजूद ज़रूरी फ़ाइलें

फ़ाइल ब्यौरा कोई दूसरी फ़ाइल चुनने का विकल्प
userdata-qemu.img

डेटा पार्टीशन का कॉन्टेंट, जो एम्युलेट किए गए सिस्टम में data/ के तौर पर दिखता है. नया AVD बनाते समय या AVD को फ़ैक्ट्री डिफ़ॉल्ट सेटिंग पर रीसेट करने के लिए -wipe-data विकल्प का इस्तेमाल करते समय, एम्युलेटर इस फ़ाइल को बनाता है. इसके लिए, वह सिस्टम डायरेक्ट्री में मौजूद userdata.img फ़ाइल को कॉपी करता है.

हर वर्चुअल डिवाइस इंस्टेंस, उपयोगकर्ता और सेशन के हिसाब से डेटा सेव करने के लिए, उपयोगकर्ता के डेटा की इमेज का इस्तेमाल करता है. उदाहरण के लिए, यह इमेज का इस्तेमाल करके, किसी यूनीक उपयोगकर्ता के इंस्टॉल किए गए ऐप्लिकेशन का डेटा, सेटिंग, डेटाबेस, और फ़ाइलें सेव करती है. हर उपयोगकर्ता के पास अलग ANDROID_SDK_HOME डायरेक्ट्री होती है. इसमें उस उपयोगकर्ता के बनाए गए एवीडी के लिए डेटा डायरेक्ट्री सेव होती हैं. हर एवीडी में एक userdata-qemu.img फ़ाइल होती है.

-data
cache.img कैश पार्टीशन इमेज, जो इम्यूलेट किए गए सिस्टम में cache/ के तौर पर दिखती है. जब पहली बार कोई एवीडी बनाया जाता है या -wipe-data विकल्प का इस्तेमाल किया जाता है, तो यह फ़ील्ड खाली होता है. यह कुकी, डाउनलोड की गई फ़ाइलों को कुछ समय के लिए सेव करती है. इसे डाउनलोड मैनेजर और कभी-कभी सिस्टम भरता है. उदाहरण के लिए, ब्राउज़र इसका इस्तेमाल डाउनलोड किए गए वेब पेजों और इमेज को कैश मेमोरी में सेव करने के लिए करता है. ऐसा तब होता है, जब एम्युलेटर चल रहा हो. वर्चुअल डिवाइस को बंद करने पर, फ़ाइल मिट जाती है. -cache विकल्प का इस्तेमाल करके, फ़ाइल को सेव किया जा सकता है. -cache
sdcard.img

(ज़रूरी नहीं) एसडी कार्ड के पार्टीशन की इमेज. इससे वर्चुअल डिवाइस पर एसडी कार्ड को सिम्युलेट किया जा सकता है. AVD मैनेजर में या mksdcard टूल का इस्तेमाल करके, एसडी कार्ड की इमेज फ़ाइल बनाई जा सकती है. यह फ़ाइल, आपके डेवलपमेंट कंप्यूटर पर सेव होती है और इसे स्टार्टअप के समय लोड करना ज़रूरी है.

AVD Manager में AVD तय करते समय, आपके पास अपने-आप मैनेज होने वाली एसडी कार्ड फ़ाइल या mksdcard टूल से बनाई गई फ़ाइल का इस्तेमाल करने का विकल्प होता है. AVD मैनेजर में, AVD से जुड़ी sdcard.img फ़ाइल देखी जा सकती है. -sdcard विकल्प, AVD में तय की गई एसडी कार्ड फ़ाइल को बदल देता है. ध्यान दें कि एसडी कार्ड का यह विकल्प, Apple Silicon वाले Mac पर काम नहीं करेगा.

वर्चुअल डिवाइस के चालू होने पर, एम्युलेटर यूज़र इंटरफ़ेस (यूआई) या adb यूटिलिटी का इस्तेमाल करके, सिम्युलेट किए गए एसडी कार्ड को ब्राउज़ किया जा सकता है. साथ ही, इस पर फ़ाइलें भेजी जा सकती हैं. इसके अलावा, इस पर मौजूद फ़ाइलों को कॉपी और हटाया जा सकता है. चल रहे वर्चुअल डिवाइस से, सिम्युलेट किए गए एसडी कार्ड को नहीं हटाया जा सकता.

एसडी कार्ड फ़ाइल में फ़ाइलें कॉपी करने के लिए, इमेज फ़ाइल को लूप डिवाइस के तौर पर माउंट करें. इसके बाद, फ़ाइलें कॉपी करें. इसके अलावा, फ़ाइलों को सीधे इमेज में कॉपी करने के लिए, mtools पैकेज जैसी किसी यूटिलिटी का इस्तेमाल करें.

एम्युलेटर, फ़ाइल को बाइट के पूल के तौर पर इस्तेमाल करता है. इसलिए, एसडी कार्ड का फ़ॉर्मैट मायने नहीं रखता.

-wipe-data विकल्प से इस फ़ाइल पर कोई असर नहीं पड़ता. अगर आपको फ़ाइल मिटानी है, तो उसे मिटाएं. इसके बाद, AVD Manager या mksdcard टूल का इस्तेमाल करके उसे फिर से बनाएं. फ़ाइल का साइज़ बदलने पर भी, फ़ाइल मिट जाती है और एक नई फ़ाइल बन जाती है.

-sdcard

एम्युलेटर के इस्तेमाल की गई डायरेक्ट्री और फ़ाइलों की सूची बनाएं

फ़ाइलें कहां सेव हैं, यह दो तरीकों से पता लगाया जा सकता है:

  • कमांड लाइन से एम्युलेटर शुरू करते समय, -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. कमांड-लाइन के आम तौर पर इस्तेमाल किए जाने वाले विकल्प

कमांड-लाइन विकल्प ब्यौरा
Quick Boot
-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, डेवलपमेंट कंप्यूटर पर ओएस के इस्तेमाल किया गया नाम है. दूसरा नाम, ओएस के हिसाब से अलग-अलग होता है.

SDK टूल 25.2.4 के बाद से, AVD का नाम देना ज़रूरी है.

डिस्क इमेज और मेमोरी
-memory size

यह विकल्प, फ़िज़िकल रैम का साइज़ तय करता है. यह 1536 से 8192 एमबी तक हो सकता है. उदाहरण के लिए:

emulator @Pixel8_API_34 -memory 2048

यह वैल्यू, एवीडी सेटिंग को बदल देती है.

-sdcard filepath यह एसडी कार्ड के पार्टीशन की इमेज फ़ाइल का नाम और पाथ तय करता है. जैसे:

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

अगर फ़ाइल नहीं मिलती है, तो भी एम्युलेटर लॉन्च हो जाता है. हालांकि, इसमें एसडी कार्ड नहीं होता है. इस कमांड से, एसडी कार्ड की इमेज नहीं है वाली चेतावनी मिलती है.

अगर आपने इस विकल्प के बारे में नहीं बताया है, तो डेटा डायरेक्ट्री में डिफ़ॉल्ट रूप से sdcard.img होता है. हालांकि, अगर एवीडी में कोई अलग विकल्प बताया गया है, तो उसे डिफ़ॉल्ट माना जाएगा. इमुलेट किए गए एसडी कार्ड के बारे में ज़्यादा जानने के लिए, AVD डेटा डायरेक्ट्री देखें.

-wipe-data यह उपयोगकर्ता के डेटा को मिटाता है और शुरुआती डेटा फ़ाइल से डेटा कॉपी करता है. इस विकल्प से, वर्चुअल डिवाइस का डेटा मिट जाता है और वह उसी स्थिति में वापस आ जाता है जिसमें वह पहली बार तय किया गया था. इंस्टॉल किए गए सभी ऐप्लिकेशन और सेटिंग हटा दी जाती हैं. उदाहरण के लिए:

emulator @Pixel8_API_34 -wipe-data

डिफ़ॉल्ट रूप से, उपयोगकर्ता डेटा फ़ाइल userdata-qemu.img होती है और शुरुआती डेटा फ़ाइल userdata.img होती है. ये दोनों फ़ाइलें, डेटा डायरेक्ट्री में मौजूद होती हैं. -wipe-data विकल्प से sdcard.img फ़ाइल पर कोई असर नहीं पड़ता. उपयोगकर्ता के डेटा के बारे में ज़्यादा जानने के लिए, डिफ़ॉल्ट डायरेक्ट्री और फ़ाइलों के बारे में जानकारी सेक्शन देखें.

डीबग करें
-debug tags इस कुकी से, एक या उससे ज़्यादा टैग के लिए डीबग मैसेज दिखाने की सुविधा चालू या बंद होती है. एक से ज़्यादा टैग को स्पेस, कॉमा या कॉलम से अलग करें. उदाहरण के लिए:

$ 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 मैसेज दिखाए जा सकते हैं. साथ ही, उन्हें टर्मिनल विंडो में लिखा जा सकता है. उदाहरण के लिए, यहां दिया गया निर्देश सभी कॉम्पोनेंट से गड़बड़ी के मैसेज पाने की सुविधा चालू करता है:

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 - साइलेंट

नीचे दिए गए उदाहरण में, सूचना देने वाले लॉग लेवल पर जीएसएम कॉम्पोनेंट के मैसेज दिखाए गए हैं:

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

इससे पता चलता है कि एवीडी में तय किए गए वर्चुअल डिवाइस को शुरू करते समय, कौनसी फ़ाइलें और सेटिंग चुनी गई हैं. यह विकल्प, -debug-init को तय करने जैसा ही है.

नेटवर्क
-dns-server servers यह विकल्प, तय किए गए डीएनएस सर्वर का इस्तेमाल करता है. servers, कॉमा लगाकर अलग किए गए ज़्यादा से ज़्यादा चार डीएनएस सर्वर के नामों या आईपी पतों की सूची है. जैसे:
emulator @Pixel8_API_34 -dns-server 192.0.2.0,
192.0.2.255

डिफ़ॉल्ट रूप से, एम्युलेटर उन डीएनएस सर्वर का पता लगाने की कोशिश करता है जिनका इस्तेमाल किया जा रहा है. साथ ही, यह एम्युलेट किए गए फ़ायरवॉल नेटवर्क में खास उपनाम सेट अप करता है, ताकि Android सिस्टम सीधे सर्वर से कनेक्ट हो सके. डीएनएस सर्वर की कोई दूसरी सूची तय करने के लिए, -dns-server विकल्प का इस्तेमाल करें.

-http-proxy proxy यह विकल्प, तय की गई एचटीटीपी/एचटीटीपीएस प्रॉक्सी के ज़रिए सभी टीसीपी कनेक्शन बनाता है. अगर आपके एम्युलेटर को प्रॉक्सी सर्वर के ज़रिए इंटरनेट ऐक्सेस करना है, तो इस विकल्प या 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 - जीएसएम/सीएसडी (कम से कम 150, ज़्यादा से ज़्यादा 550).
  • hscsd - एचएससीएसडी (कम से कम 80, ज़्यादा से ज़्यादा 400).
  • gprs - GPRS (कम से कम 35, ज़्यादा से ज़्यादा 200).
  • edge - EDGE/EGPRS (कम से कम 80, ज़्यादा से ज़्यादा 400).
  • umts - यूएमटीएस/3G (कम से कम 35, ज़्यादा से ज़्यादा 200).
  • hsdpa - HSDPA (कम से कम 0, ज़्यादा से ज़्यादा 0).
  • lte - एलटीई (कम से कम 0, ज़्यादा से ज़्यादा 0).
  • evdo - EVDO (कम से कम 0, ज़्यादा से ज़्यादा 0).
  • none - कोई देरी नहीं, डिफ़ॉल्ट (कम से कम 0, ज़्यादा से ज़्यादा 0).
  • num - इससे इंतज़ार के सटीक समय के बारे में पता चलता है.
  • min:max - इससे हर एक के लिए कम से कम और ज़्यादा से ज़्यादा इंतज़ार का समय तय किया जाता है.

उदाहरण के लिए:

emulator @Pixel8_API_34 -netdelay gsm

एम्युलेटर, नेटवर्क थ्रॉटलिंग के साथ-साथ कनेक्शन की ज़्यादा लेटेंसी को भी सपोर्ट करता है. इसे स्किन कॉन्फ़िगरेशन या ‑netspeed और -netdelay विकल्पों की मदद से तय किया जा सकता है.

-netfast नेटवर्क थ्रॉटलिंग की सुविधा बंद करता है. उदाहरण के लिए:

emulator @Pixel8_API_34 -netfast

यह विकल्प, -netspeed full -netdelay none को तय करने जैसा ही है. इन विकल्पों के लिए, ये डिफ़ॉल्ट वैल्यू हैं.

-netspeed speed

यह कुकी, नेटवर्क की स्पीड का इम्यूलेशन सेट करती है. यह नेटवर्क पर अपलोड और डाउनलोड की ज़्यादा से ज़्यादा स्पीड के बारे में बताता है. इसके लिए, केबीपीएस में इनमें से कोई एक speed वैल्यू इस्तेमाल की जाती है:

  • gsm - जीएसएम/सीएसडी (अप: 14.4, डाउन: 14.4).
  • hscsd - एचएससीएसडी (अप: 14.4, डाउन: 57.6).
  • gprs - GPRS (अपलोड: 28.8, डाउनलोड: 57.6).
  • edge - EDGE/EGPRS (अपलोड: 473.6, डाउनलोड: 473.6).
  • umts - यूएमटीएस/3G (अपलोड: 384.0, डाउनलोड: 384.0).
  • hsdpa - HSDPA (अपलोड: 5760.0, डाउनलोड: 13,980.0).
  • lte - एलटीई (अपलोड: 58,000, डाउनलोड: 1,73,000).
  • evdo - EVDO (अपलोड: 75,000, डाउनलोड: 2,80,000).
  • full - कोई सीमा नहीं, डिफ़ॉल्ट (ऊपर: 0.0, नीचे: 0.0).
  • num - इससे अपलोड और डाउनलोड, दोनों की स्पीड के बारे में पता चलता है.
  • up:down - इससे अपलोड और डाउनलोड की अलग-अलग स्पीड के बारे में पता चलता है.

उदाहरण के लिए:

emulator @Pixel8_API_34 -netspeed edge

एम्युलेटर, नेटवर्क थ्रॉटलिंग के साथ-साथ कनेक्शन की ज़्यादा लेटेंसी को भी सपोर्ट करता है. इसे स्किन कॉन्फ़िगरेशन या ‑netspeed और -netdelay विकल्पों की मदद से तय किया जा सकता है.

-port port यह विकल्प, कंसोल और adb के लिए इस्तेमाल किए जाने वाले टीसीपी पोर्ट नंबर को सेट करता है. उदाहरण के लिए:

emulator @Pixel8_API_34 -port 5556

आपकी मशीन पर चल रहे पहले वर्चुअल डिवाइस इंस्टेंस के लिए, डिफ़ॉल्ट वैल्यू 5554 होती है. वर्चुअल डिवाइस आम तौर पर, आस-पास के दो पोर्ट का इस्तेमाल करता है: एक कंसोल पोर्ट और एक adb पोर्ट. किसी मशीन पर चल रहे पहले वर्चुअल डिवाइस का कंसोल, कंसोल पोर्ट 5554 और adb पोर्ट 5555 का इस्तेमाल करता है. इसके बाद के इंस्टेंस में, पोर्ट नंबर दो से बढ़ जाते हैं. उदाहरण के लिए, 5556/5557, 5558/5559 वगैरह. यह रेंज 5554 से 5682 तक होती है. इससे एक साथ 64 वर्चुअल डिवाइसों का इस्तेमाल किया जा सकता है.

पोर्ट असाइनमेंट अक्सर -ports port,{port + 1} के तौर पर तय किए जाते हैं. {port + 1} मुफ़्त होना चाहिए और इसे adb के लिए रिज़र्व किया गया है. अगर कंसोल या adb पोर्ट में से किसी का इस्तेमाल पहले से किया जा रहा है, तो एम्युलेटर शुरू नहीं होगा.

‑port विकल्प से यह पता चलता है कि वर्चुअल डिवाइस कौनसे पोर्ट और सीरियल नंबर का इस्तेमाल कर रहा है. साथ ही, अगर आपकी दी गई वैल्यू में कोई समस्या है, तो यह विकल्प आपको इसकी सूचना देता है. एम्युलेटर के यूज़र इंटरफ़ेस (यूआई) में, विंडो के टाइटल में कंसोल पोर्ट नंबर देखा जा सकता है. साथ ही, सहायता > इसके बारे में को चुनकर, adb पोर्ट नंबर देखा जा सकता है.

ध्यान दें कि अगर port की वैल्यू सम नहीं है और 5554 से 5584 के बीच है, तो वर्चुअल डिवाइस शुरू हो जाएगा. हालांकि, adb devices कमांड का इस्तेमाल करने पर यह दिखेगा नहीं. ऐसा तब होगा, जब adb server, एम्युलेटर के बाद शुरू होता है. इसलिए, हमारा सुझाव है कि आप सम संख्या वाले कंसोल पोर्ट नंबर का इस्तेमाल करें.

-ports
console-port,adb-port
इस नीति की मदद से, कंसोल और 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

इस विकल्प का इस्तेमाल करके, एम्युलेटर के वर्चुअल इथरनेट लैन के ज़रिए भेजे गए सभी नेटवर्क पैकेट कैप्चर करना शुरू करें. इसके बाद, ट्रैफ़िक का विश्लेषण करने के लिए, Wireshark जैसे टूल का इस्तेमाल किया जा सकता है.

ध्यान दें कि यह विकल्प सभी इथरनेट पैकेट कैप्चर करता है. यह टीसीपी कनेक्शन तक सीमित नहीं है.

सिस्टम
-accel mode यह सेटिंग, एम्युलेटर वीएम की स्पीड बढ़ाने की सुविधा को कॉन्फ़िगर करती है. उदाहरण के लिए:

emulator @Pixel8_API_34 -accel auto

तेज़ी से काम करने वाला एम्युलेटर, सिर्फ़ x86 और x86_64 सिस्टम इमेज के लिए काम करता है. Linux पर, यह KVM पर निर्भर करता है. Windows और Mac पर, यह Intel CPU और Intel HAXM ड्राइवर पर निर्भर करता है. अगर x86 या x86_64 डिवाइस का इस्तेमाल नहीं किया जा रहा है, तो इस विकल्प को नज़रअंदाज़ कर दिया जाता है.

mode के लिए मान्य वैल्यू ये हैं:

  • auto - यह अपने-आप तय करता है कि हार्डवेयर से तेज़ी लाने की सुविधा काम करती है या नहीं. अगर यह सुविधा काम करती है, तो इसका इस्तेमाल किया जाता है (डिफ़ॉल्ट).
  • off - इससे ऐक्सेलरेटर पूरी तरह से बंद हो जाता है. यह मुख्य रूप से डीबग करने के लिए काम आता है.
  • on - इससे ऐक्सेलरेशन बढ़ता है. अगर KVM या HAXM इंस्टॉल नहीं है या इसका इस्तेमाल नहीं किया जा सकता, तो एम्युलेटर शुरू नहीं होगा और गड़बड़ी का मैसेज दिखेगा.

ज़्यादा जानकारी के लिए, Android Emulator के लिए हार्डवेयर ऐक्सेलरेटेड रेंडरिंग कॉन्फ़िगर करना लेख पढ़ें.

-accel-check यह कुकी, यह जांच करती है कि एमुलेटर वीएम ऐक्सेलरेटर के लिए ज़रूरी हाइपरवाइज़र (HAXM या KVM) इंस्टॉल है या नहीं. उदाहरण के लिए:

emulator -accel-check

ज़्यादा जानकारी के लिए, यह देखना कि हाइपरवाइज़र इंस्टॉल है या नहीं लेख पढ़ें.

-engine engine

यह एम्युलेटर इंजन के बारे में बताता है:

  • auto - यह इंजन को अपने-आप चुनता है (डिफ़ॉल्ट).
  • classic - यह पुराने QEMU 1 इंजन का इस्तेमाल करता है (अब इसका इस्तेमाल नहीं किया जाता).
  • qemu2 - इसमें QEMU 2 इंजन का नया वर्शन इस्तेमाल किया जाता है.

उदाहरण के लिए:

emulator @Pixel8_API_34 -engine auto

ऑटो-डिटेक्शन को ऐसी वैल्यू चुननी चाहिए जिससे किसी एवीडी का इम्यूलेशन करते समय सबसे अच्छी परफ़ॉर्मेंस मिले. -engine विकल्प का इस्तेमाल सिर्फ़ डीबग करने और तुलना करने के लिए करें.

-gpu mode यह जीपीयू इम्यूलेशन मोड चुनता है. उदाहरण के लिए:

emulator @Pixel8_API_34 -gpu swiftshader_indirect

ज़्यादा जानकारी के लिए, ग्राफ़िक्स ऐक्सलरेशन कॉन्फ़िगर करना लेख पढ़ें.

-no-accel x86 या x86_64 सिस्टम इमेज का इस्तेमाल करते समय, यह विकल्प एमुलेटर वीएम ऐक्सेलरेटर को बंद कर देता है. इसका इस्तेमाल सिर्फ़ डीबग करने के लिए किया जाता है. यह -accel off को तय करने जैसा ही है. उदाहरण के लिए:

emulator @Pixel8_API_34 -no-accel

ज़्यादा जानकारी के लिए, Android Emulator के लिए हार्डवेयर ऐक्सेलरेटेड रेंडरिंग कॉन्फ़िगर करना लेख पढ़ें.

-nojni
-no-jni
यह Android Dalvik या ART रनटाइम में, एक्सटेंडेड Java नेटिव इंटरफ़ेस (जेएनआई) की जांच को बंद करता है. उदाहरण के लिए:

emulator @Pixel8_API_34 -nojni

वर्चुअल डिवाइस शुरू करने पर, एक्सटेंडेड जेएनआई जांचें डिफ़ॉल्ट रूप से चालू होती हैं. ज़्यादा जानकारी के लिए, JNI के बारे में सुझाव देखें.

-selinux {disabled|permissive} यह Linux ऑपरेटिंग सिस्टम पर, Security-Enhanced Linux (SELinux) सुरक्षा मॉड्यूल को disabled या permissive मोड पर सेट करता है. उदाहरण के लिए:

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 ऐप्लिकेशन बनाते हैं और उन्हें खास एवीडी पर चलाते हैं. प्लैटफ़ॉर्म डेवलपर Android सिस्टम पर काम करते हैं और इसे एमुलेटर में चलाते हैं. इसके लिए, पहले से बनाए गए किसी एवीडी की ज़रूरत नहीं होती.

चौथी टेबल. कमांड-लाइन के बेहतर विकल्प

उन्नत विकल्प संक्षिप्त विवरण
-bootchart timeout

यह कुकी, बूटचार्टिंग की सुविधा चालू करती है. इसमें टाइमआउट की अवधि सेकंड में होती है. कुछ Android सिस्टम इमेज में, बूटचार्टिंग की सुविधा को इंटिग्रेट करने वाला बदला हुआ init सिस्टम होता है. इस विकल्प की मदद से, सिस्टम को बूटचार्टिंग के लिए टाइम आउट की अवधि दी जा सकती है. अगर आपके init सिस्टम में बूटचार्टिंग की सुविधा चालू नहीं है, तो इस विकल्प से कुछ नहीं होगा. यह विकल्प मुख्य रूप से प्लैटफ़ॉर्म डेवलपर के लिए फ़ायदेमंद है. यह बाहरी ऐप्लिकेशन डेवलपर के लिए फ़ायदेमंद नहीं है.

उदाहरण के लिए:

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 एमबी का साइज़ सेट होता है. आम तौर पर, ज़्यादातर ऐप्लिकेशन डेवलपर को इस विकल्प की ज़रूरत नहीं होती. हालांकि, अगर उन्हें बहुत बड़ी फ़ाइलें डाउनलोड करनी हैं, जो डिफ़ॉल्ट कैश मेमोरी से बड़ी हैं, तो उन्हें इस विकल्प की ज़रूरत पड़ सकती है. कैश फ़ाइल के बारे में ज़्यादा जानने के लिए, 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

यह 64-बिट प्लैटफ़ॉर्म पर 32-बिट एम्युलेटर का इस्तेमाल करता है. कभी-कभी, यह विकल्प टेस्टिंग या डीबग करने के लिए काम आता है. उदाहरण के लिए, एक समस्या यह थी कि कभी-कभी 64-बिट Windows पर एम्युलेटर नहीं चलता था, लेकिन 32-बिट पर चलता था. इस विकल्प की मदद से, समस्या को डीबग करने के लिए तुलना की जा सकती थी. यहां एक उदाहरण दिया गया है:

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

डिस्क इमेज के बारे में सहायता पाएं. इस विकल्प में, ऐप्लिकेशन और प्लैटफ़ॉर्म डेवलपर, दोनों के लिए काम की जानकारी मिलती है. उदाहरण के लिए:

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

वर्ण device के बारे में जानकारी देता है. कुछ एम्युलेटर विकल्पों के लिए, device पैरामीटर ज़रूरी होता है. उदाहरण के लिए:

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

यह कुकी, ऐप्लिकेशन डेवलपर के लिए काम की डिस्क इमेज के बारे में मदद करती है. इस विकल्प से, 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

इस विकल्प को चुनने पर, एम्युलेटर स्नैपशॉट स्टोरेज से एवीडी की स्थिति को लोड नहीं कर पाता. इससे पूरा बूट होता है.

उदाहरण के लिए:

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

यह विकल्प, एम्युलेटर को बंद करने पर एवीडी की स्थिति को स्नैपशॉट स्टोरेज में सेव करने से रोकता है. इसका मतलब है कि सभी बदलाव मिट जाएंगे.

उदाहरण के लिए:

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

स्नैपशॉट वापस लाने पर, एवीडी के समय को तुरंत ठीक करने की कोशिश नहीं करता. यह विकल्प, जांच के दौरान काम आ सकता है. इससे समय में अचानक बदलाव नहीं होता. एवीडी को अब भी हर 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, प्रॉपर्टी का नाम होना चाहिए. इसे ज़्यादा से ज़्यादा 32 वर्णों में qemu_prop के तौर पर लेबल किया गया हो. इसमें कोई स्पेस नहीं होना चाहिए. साथ ही, 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 (macOS पर Command-C) दबाएं.

उदाहरण के लिए:

emulator @Pixel8_API_34 -shell
-snapshot name

यह स्नैपशॉट स्टोरेज फ़ाइल में मौजूद किसी स्नैपशॉट का नाम बताता है. इसका इस्तेमाल, अपने-आप शुरू होने और सेव होने की कार्रवाइयों के लिए किया जाता है.

पूरे बूट सीक्वेंस को लागू करने के बजाय, एम्युलेटर पहले से सेव किए गए स्नैपशॉट से एक्ज़ीक्यूशन फिर से शुरू कर सकता है. आम तौर पर, यह प्रोसेस काफ़ी तेज़ होती है. यह विकल्प देने पर, एम्युलेटर उस नाम के स्नैपशॉट को स्नैपशॉट इमेज से लोड करता है. साथ ही, बंद होने पर उसे उसी नाम से सेव करता है.

इस विकल्प का इस्तेमाल न करने पर, डिफ़ॉल्ट रूप से पूरा बूट सीक्वेंस इस्तेमाल किया जाता है. अगर बताया गया स्नैपशॉट मौजूद नहीं है, तो एम्युलेटर पूरी बूट सीक्वेंस को पूरा करता है. साथ ही, सेव करने की कार्रवाई करता है.

स्नैपशॉट स्टोरेज फ़ाइल और डिफ़ॉल्ट फ़ाइल तय करने के बारे में जानकारी पाने के लिए, -snapstorage विकल्प देखें.

emulator @Pixel8_API_34 -snapshot snapshot2

ध्यान रखें कि स्नैपशॉट लोड करने के दौरान, सिस्टम के सभी कॉन्टेंट, उपयोगकर्ता के डेटा, और एसडी कार्ड की इमेज को उस कॉन्टेंट से बदल दिया जाता है जो स्नैपशॉट बनाते समय मौजूद था. अगर आपने इस जानकारी को किसी दूसरे स्नैपशॉट में सेव नहीं किया है, तो इसके बाद किए गए सभी बदलाव मिट जाएंगे.

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

वर्चुअल डिवाइस लॉन्च करने से पहले, टर्मिनल विंडो में एनवायरमेंट वैरिएबल सेट किए जा सकते हैं. इसके अलावा, ऑपरेटिंग सिस्टम में उपयोगकर्ता की सेटिंग के ज़रिए भी इसे सेट किया जा सकता है. उदाहरण के लिए, इसे Linux पर अपनी .bashrc फ़ाइल में सेट करें.

डीबग टैग की सूची

-debug विकल्पों के लिए टैग की सूची प्रिंट करने के लिए, यह कमांड डालें:

emulator -help-debug-tags

-debug विकल्पों की मदद से, टैग के हिसाब से किसी खास एम्युलेटर कॉम्पोनेंट से डीबग मैसेज पाने की सुविधा चालू या बंद की जा सकती है.