चालू हर वर्चुअल डिवाइस में एक कंसोल होता है. इसकी मदद से, डिवाइस के एनवायरमेंट को क्वेरी किया जा सकता है और उसे कंट्रोल किया जा सकता है. उदाहरण के लिए, कंसोल का इस्तेमाल करके पोर्ट रीडायरेक्शन, नेटवर्क की विशेषताओं, और टेलीफ़ोनी इवेंट को मैनेज किया जा सकता है. ऐसा तब किया जा सकता है, जब आपका ऐप्लिकेशन एम्युलेटर पर चल रहा हो.
इन कमांड को चलाने के लिए, आपके पास पहले से ही कोई एम्युलेटर चालू होना चाहिए. एम्युलेटर चलाने के बारे में ज़्यादा जानकारी के लिए, Android Emulator पर ऐप्लिकेशन चलाना और कमांड लाइन से एम्युलेटर शुरू करना लेख पढ़ें.
कंसोल सेशन शुरू और बंद करना
कंसोल को ऐक्सेस करने और टर्मिनल विंडो से कमांड डालने के लिए, telnet का इस्तेमाल करके कंसोल पोर्ट से कनेक्ट करें और अपना ऑथेंटिकेशन टोकन डालें. जब भी कंसोल पर OK दिखता है, तब यह कमांड स्वीकार करने के लिए तैयार होता है. कोई सामान्य प्रॉम्प्ट नहीं है.
चल रहे वर्चुअल डिवाइस के कंसोल से कनेक्ट करने के लिए:
- टर्मिनल विंडो खोलें और यह निर्देश डालें:
- कंसोल में
OKदिखने के बाद,OKनिर्देश डालें.auth auth_token - कंसोल से कनेक्ट होने के बाद, कंसोल कमांड डालें.
- कंसोल सेशन से बाहर निकलने के लिए,
quitयाexitडालें.
telnet localhost console-port
जब एम्युलेटर को अलग विंडो में चलाया जाता है, तब एम्युलेटर विंडो के टाइटल में कंसोल पोर्ट नंबर दिखता है. हालांकि, जब इसे टूल विंडो में चलाया जाता है, तब यह नंबर नहीं दिखता. उदाहरण के लिए, कंसोल पोर्ट 5554 का इस्तेमाल करने वाले एम्युलेटर के लिए विंडो का टाइटल Pixel8_API_34:5554 हो सकता है. इसके अलावा, adb devices कमांड से, चालू वर्चुअल डिवाइसों और उनके कंसोल पोर्ट नंबर की सूची प्रिंट होती है. ज़्यादा जानकारी के लिए, डिवाइसों के लिए क्वेरी करना लेख पढ़ें.
ध्यान दें: एम्युलेटर, 5554 से 5585 तक के पोर्ट पर कनेक्शन के लिए सुनता है और सिर्फ़ localhost से कनेक्शन स्वीकार करता है.
कंसोल कमांड डालने से पहले, एम्युलेटर कंसोल को पुष्टि करनी होती है. auth_token में मौजूद कॉन्टेंट, आपकी होम डायरेक्ट्री में मौजूद .emulator_console_auth_token फ़ाइल के कॉन्टेंट से मेल खाना चाहिए.
अगर वह फ़ाइल मौजूद नहीं है, तो telnet localhost console-port
कमांड उस फ़ाइल को बनाती है. इस फ़ाइल में, पुष्टि करने के लिए रैंडम तरीके से जनरेट किया गया टोकन होता है. पुष्टि करने की सुविधा बंद करने के लिए, .emulator_console_auth_token फ़ाइल से टोकन मिटाएं. अगर फ़ाइल मौजूद नहीं है, तो एक खाली फ़ाइल बनाएं.
कंसोल कमांड की सूची देखने और किसी खास कमांड के बारे में जानने के लिए, help, help command या help-verbose डालें.
यहां एक उदाहरण सेशन दिया गया है:
$ telnet localhost 5554
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/Users/me/.emulator_console_auth_token'
OK
auth 123456789ABCdefZ
Android Console: type 'help' for a list of commands
OK
help-verbose
Android console command help:
help|h|? Prints a list of commands
help-verbose Prints a list of commands with descriptions
ping Checks if the emulator is alive
automation Manages emulator automation
event Simulates hardware events
geo Geo-location commands
gsm GSM related commands
cdma CDMA related commands
crash Crashes the emulator instance
crash-on-exit Simulates crash on exit for the emulator instance
kill Terminates the emulator instance
restart Restarts the emulator instance
network Manages network settings (ethernet and cellular only)
power Power related commands
quit|exit Quits control session
redir Manages port redirections
sms SMS related commands
avd Controls virtual device execution
qemu QEMU-specific commands
sensor Manages emulator sensors
physics Manages physical model
finger Manages emulator finger print
debug Controls the emulator debug output tags
rotate Rotates the screen clockwise by 90 degrees
screenrecord Records the emulator's display
fold Folds the device
unfold Unfolds the device
multidisplay Configures the multi-display
nodraw turn on/off NoDraw mode. (experimental)
resize-display resize the display resolution to the preset size
virtualscene-image customize virtualscene image for virtulscene camera
proxy manage network proxy server settings
phonenumber set phone number for the device
try 'help <command>' for command-specific help
OK
exit
Connection closed by foreign host.
एम्युलेटर कमांड रेफ़रंस
यहां दी गई टेबल में, एम्युलेटर कंसोल के कमांड, उनके पैरामीटर, और वैल्यू के बारे में बताया गया है:
पहली टेबल. एम्युलेटर कंसोल कमांड
| सामान्य निर्देश | ब्यौरा |
|---|---|
avd {stop|start|status|name}
|
यह वर्चुअल डिवाइस को क्वेरी करता है, कंट्रोल करता है, और मैनेज करता है. जैसे:
|
avd snapshot {list|save name|load name|delete
name}
|
यह कुकी, स्नैपशॉट में डिवाइस की स्थिति को सेव करती है और उसे वापस लाती है. ऐसा इन तरीकों से किया जाता है:
यहां दिए गए उदाहरण में, avd snapshot save firstactivitysnapshot |
fold
|
अगर डिवाइस फ़ोल्ड किया जा सकता है और फ़िलहाल वह खुला है, तो उसे फ़ोल्ड करके उसकी छोटी स्क्रीन का कॉन्फ़िगरेशन दिखाता है. |
unfold
|
अगर डिवाइस को फ़ोल्ड किया जा सकता है और फ़िलहाल वह फ़ोल्ड है, तो उसे अनफ़ोल्ड करके बड़ी स्क्रीन कॉन्फ़िगरेशन दिखाता है. |
kill
|
वर्चुअल डिवाइस को बंद कर देता है. |
ping
|
इस कुकी से यह पता चलता है कि वर्चुअल डिवाइस चल रहा है या नहीं. |
rotate
|
इस विकल्प से, AVD को घड़ी की उल्टी दिशा में 45 डिग्री के इंक्रीमेंट में घुमाया जाता है. |
| एम्युलेटर क्रैश हो जाता है | ब्यौरा |
crash
|
ऐप्लिकेशन चलाने के दौरान, एम्युलेटर क्रैश हो जाता है. |
crash-on-exit |
ऐप्लिकेशन बंद होने पर, एम्युलेटर क्रैश हो जाता है. |
| टैग डीबग करना | ब्यौरा |
debug tags ...
|
इससे एम्युलेटर के कुछ हिस्सों से डीबग मैसेज पाने की सुविधा चालू या बंद होती है.
tags पैरामीटर की वैल्यू, डीबग टैग की उस सूची में से होनी चाहिए जो
यहां दिए गए उदाहरण में, debug radio |
| पोर्ट रीडायरेक्शन | ब्यौरा |
redir list
|
पोर्टिंग के लिए मौजूदा रीडायरेक्शन की जानकारी देता है. |
redir add protocol:host-port:guest-port
|
यह कमांड, पोर्ट रीडायरेक्शन की नई सुविधा जोड़ती है. इसके लिए, यह तरीका अपनाएं:
|
redir del protocol:host-port
|
यह कुकी, पोर्ट रीडायरेक्शन को मिटाती है.
|
| भौगोलिक जगह | ब्यौरा |
|
यह एम्युलेटर में चल रहे ऐप्लिकेशन को, जगह की जानकारी सेट करता है. इसके लिए, एम्युलेटर को जीपीएस फ़िक्स भेजा जाता है. वर्चुअल डिवाइस के चालू होते ही, इनमें से कोई एक |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
यह एम्युलेटर को जीपीएस की सामान्य जानकारी भेजता है.
longitude और latitude को दशमलव डिग्री में बताएं. जगह की जानकारी का पता लगाने के लिए, 1 से 12 तक की किसी संख्या का इस्तेमाल करके, satellites की संख्या तय करें. साथ ही, altitude को मीटर में और velocity को नॉट में तय करें.
|
geo nmea sentence
|
यह फ़ंक्शन, NMEA 0183 वाक्य को ऐसे इम्यूलेट किए गए डिवाइस पर भेजता है जैसे उसे इम्यूलेट किए गए जीपीएस मॉडेम से भेजा गया हो. sentence को '$GP' से शुरू करें.
फ़िलहाल, सिर्फ़ '$GPGGA' और '$GPRCM' वाक्यों का इस्तेमाल किया जा सकता है. यहां दिए गए उदाहरण में, जीपीएस रिसीवर के लिए समय, पोज़िशन, और फ़िक्स डेटा पाने वाला GPGGA (ग्लोबल पोज़िशनिंग सिस्टम फ़िक्स डेटा) वाक्य दिखाया गया है:
geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx |
| हार्डवेयर के फ़र्ज़ी इवेंट | ब्यौरा |
event types
|
सभी फ़र्ज़ी इवेंट टाइप की सूची दिखाता है. जिन इवेंट के लिए कोड उपलब्ध हैं उनकी संख्या, दाईं ओर कोष्ठक में दी गई है.
event types
event <type> can be an integer or one of the following aliases:
EV_SYN
EV_KEY (405 code aliases)
EV_REL (2 code aliases)
EV_ABS (27 code aliases)
EV_MSC
EV_SW (4 code aliases)
EV_LED
EV_SND
EV_REP
EV_FF
EV_PWR
EV_FF_STATUS
EV_MAX
OK
|
event send types [types ...]
|
एक या उससे ज़्यादा फ़र्ज़ी इवेंट टाइप भेजता है. |
event codes type
|
इस फ़ंक्शन से, तय किए गए फ़र्ज़ी इवेंट टाइप के लिए इवेंट कोड की सूची मिलती है. |
event send type[:code]:[value] [...]
|
यह कुकी, एक या उससे ज़्यादा फ़र्ज़ी इवेंट भेजती है. इनमें कोड और कोड वैल्यू शामिल हो सकती हैं.
कौनसा इवेंट भेजना है, यह जानने के लिए पावर बटन दबाने पर ये इवेंट जनरेट होते हैं:
adb shell getevent -lt
/dev/input/event12: EV_KEY KEY_POWER DOWN
/dev/input/event12: EV_SYN SYN_REPORT 00000000
/dev/input/event12: EV_KEY KEY_POWER UP
/dev/input/event12: EV_SYN SYN_REPORT 00000000
EV_KEY इवेंट भेजें:
event send EV_KEY:KEY_POWER:0
OK
event send EV_KEY:KEY_POWER:1
OK
|
event text message
|
यह फ़ंक्शन, वर्णों की ऐसी स्ट्रिंग भेजता है जो कीबोर्ड पर बटन दबाने की प्रोसेस को सिम्युलेट करती है. मैसेज, UTF-8 स्ट्रिंग होना चाहिए. यूनिकोड पोस्ट को डिवाइस के मौजूदा कीबोर्ड के हिसाब से रिवर्स-मैप किया जाता है. साथ ही, इस्तेमाल न किए जा सकने वाले वर्णों को हटा दिया जाता है. |
| पावर स्टेट कंट्रोल | ब्यौरा |
power display
|
इस लाइट की मदद से, बैटरी और चार्जर की स्थिति का पता चलता है. |
power ac {on|off}
|
इस कुकी से, एसी चार्जिंग की स्थिति को on या off पर सेट किया जाता है.
|
power status {unknown|charging|discharging|not-charging|full}
|
बैटरी की स्थिति को तय किए गए स्टेटस के हिसाब से बदलता है. |
power present {true|false}
|
इससे बैटरी की मौजूदगी की स्थिति सेट की जाती है. |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
बैटरी की परफ़ॉर्मेंस का स्टेटस सेट करता है. |
power capacity percent
|
बची हुई बैटरी की क्षमता को 0 से 100 प्रतिशत के बीच सेट करता है. |
| नेटवर्क कनेक्शन की स्थिति (सिर्फ़ ईथरनेट और मोबाइल नेटवर्क) |
ब्यौरा |
network status
|
यह कुकी, नेटवर्क की स्थिति, मौजूदा देरी, और स्पीड की विशेषताओं की जांच करती है. |
network delay latency
|
यह विकल्प, नेटवर्क की नकल करने के दौरान होने वाली देरी को बदलता है. एम्युलेटर की मदद से, नेटवर्क की अलग-अलग लेटेन्सी लेवल को सिम्युलेट किया जा सकता है. इससे, आपको अपने ऐप्लिकेशन को ऐसी स्थितियों में टेस्ट करने में मदद मिलती है जो आम तौर पर ऐप्लिकेशन के चलने के दौरान होती हैं. एम्युलेटर शुरू होने पर, लेटेंसी का लेवल या रेंज सेट की जा सकती है. इसके अलावा, ऐप्लिकेशन के एम्युलेटर में चलने के दौरान, कंसोल का इस्तेमाल करके लेटेंसी को बदला जा सकता है. नेटवर्क latency का फ़ॉर्मैट इनमें से कोई एक होता है (संख्याएं मिलीसेकंड में होती हैं): नेटवर्क लेटेंसी का फ़ॉर्मैट:
एम्युलेटर के चालू होने पर लेटेन्सी सेट करने के लिए, emulator -netdelay gprs emulator -netdelay 40,100 एम्युलेटर के चालू होने के दौरान नेटवर्क में होने वाली देरी में बदलाव करने के लिए, कंसोल से कनेक्ट करें. इसके बाद, network delay gprs network delay 40 100 |
network speed speed |
इस एम्युलेटर की मदद से, नेटवर्क ट्रांसफ़र की अलग-अलग दरों को सिम्युलेट किया जा सकता है.
एम्युलेटर के चालू होने पर, डेटा ट्रांसफ़र करने की दर या सीमा सेट की जा सकती है. इसके अलावा, ऐप्लिकेशन के एम्युलेटर में चलने के दौरान, कंसोल का इस्तेमाल करके भी दर बदली जा सकती है. नेटवर्क नेटवर्क की स्पीड का फ़ॉर्मैट:
एम्युलेटर के चालू होने पर नेटवर्क की स्पीड सेट करने के लिए, emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 एम्युलेटर के चालू होने के दौरान नेटवर्क की स्पीड में बदलाव करने के लिए, कंसोल से कनेक्ट करें. इसके बाद, network speed 14.4 80 |
network capture {start|stop} file |
यह फ़ाइल में पैकेट भेजता है. यहां दी गई सूची में, पैरामीटर और पैरामीटर की वैल्यू के बारे में बताया गया है:
|
| टेलीफ़ोनी एम्युलेशन | ब्यौरा |
| Android Emulator में, जीएसएम और सीडीएमए के अपने एमुलेटेड मॉडेम शामिल होते हैं. इनकी मदद से, Emulator में टेलीफ़ोनी फ़ंक्शन को सिम्युलेट किया जा सकता है. उदाहरण के लिए, जीएसएम की मदद से इनकमिंग फ़ोन कॉल का सिम्युलेशन किया जा सकता है. साथ ही, डेटा कनेक्शन बनाए और बंद किए जा सकते हैं. CDMA की मदद से, सदस्यता का सोर्स और पसंदीदा रोमिंग सूची दी जाती है. Android सिस्टम, सिम्युलेट किए गए कॉल को ठीक उसी तरह हैंडल करता है जैसे वह असल कॉल को हैंडल करता है. एम्युलेटर पर कॉल ऑडियो की सुविधा काम नहीं करती. | |
gsm {call|accept|cancel|busy} phonenumber
|
gsm पैरामीटर ये हैं:
|
gsm {data|voice} state
|
data state कमांड से, GPRS डेटा कनेक्शन की स्थिति बदल जाती है. वहीं, data voice state कमांड से, GPRS वॉइस कनेक्शन की स्थिति बदल जाती है. ये बदलाव इस तरह होते हैं:
|
gsm hold
|
कॉल की स्थिति को hold में बदलता है. कॉल की स्थिति को hold में सिर्फ़ तब बदला जा सकता है, जब उसकी मौजूदा स्थिति active या waiting हो.
|
gsm list
|
इसमें सभी इनबाउंड और आउटबाउंड कॉल और उनकी स्थितियां दिखती हैं. |
gsm status
|
यह कुकी, जीएसएम वॉइस/डेटा की मौजूदा स्थिति की रिपोर्ट करती है. ये वैल्यू, voice और data कमांड के लिए बताई गई वैल्यू होती हैं.
|
gsm signal {rssi|ber}
|
यह अपडेट के अगले 15 सेकंड के लिए, रिपोर्ट किए गए सिग्नल की मज़बूती (आरएसएसआई) और बिट एरर रेट (बीईआर) को बदलता है. यहां दी गई सूची में, पैरामीटर और उनकी वैल्यू के बारे में बताया गया है:
|
gsm signal-profile num
|
यह सिग्नल की मज़बूती की प्रोफ़ाइल सेट करता है.
num, 0 से 4 के बीच की कोई संख्या है.
|
cdma ssource source
|
यह मौजूदा सीडीएमए सदस्यता सोर्स सेट करता है. इसमें source, नेटवर्क पर आधारित एक अनुमति वाली सूची है. इसमें सीडीएमए कैरियर के सदस्य और उनकी वैल्यू शामिल होती हैं. ये वैल्यू इस तरह होती हैं:
|
cdma prl_version version
|
यह कमांड, पसंदीदा रोमिंग सूची (पीआरएल) के मौजूदा वर्शन को डंप करती है. वर्शन नंबर, PRL डेटाबेस के लिए होता है. इसमें सिस्टम चुनने और उसे हासिल करने की प्रोसेस के दौरान इस्तेमाल की गई जानकारी होती है. |
| एम्युलेटर पर सेंसर मैनेज करना | ब्यौरा |
ये निर्देश, इस बारे में जानकारी देते हैं कि एवीडी में कौनसे सेंसर उपलब्ध हैं. sensor कमांड का इस्तेमाल करने के अलावा, ऐक्सिलरोमीटर और अन्य सेंसर टैब में जाकर, एम्युलेटर में वर्चुअल सेंसर स्क्रीन पर सेटिंग देखी और बदली जा सकती हैं.
|
|
sensor status |
इसमें सभी सेंसर और उनकी स्थिति की जानकारी होती है. यहां sensor status कमांड के आउटपुट का उदाहरण दिया गया है:
|
sensor get sensor-name
|
sensor-name के लिए सेटिंग मिलती हैं. यहां दिए गए उदाहरण में, ऐक्सिलरेशन सेंसर की वैल्यू मिलती है:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348
कोलन(:) से अलग की गई |
sensor set sensor-name value-x:value-y:value-z
|
sensor-name के लिए वैल्यू सेट करता है. यहां दिए गए उदाहरण में, ऐक्सिलरेशन सेंसर को x, y, और z वैल्यू पर सेट किया गया है. इन वैल्यू को कोलन से अलग किया गया है.
sensor set acceleration 2.23517e-07:9.77631:0.812348 |
| एसएमएस इम्यूलेशन | ब्यौरा |
sms send sender-phone-number textmessage
|
इससे, सिम्युलेट किया गया इनकमिंग एसएमएस जनरेट होता है. यहां दी गई सूची में, पैरामीटर और उनकी वैल्यू के बारे में बताया गया है:
नीचे दिए गए उदाहरण में, 4085555555 फ़ोन नंबर पर "hi there" मैसेज भेजा गया है: sms send 4085555555 hi there कंसोल, एसएमएस मैसेज को Android फ़्रेमवर्क को भेजता है. यह फ़्रेमवर्क, मैसेज को एम्युलेटर पर मौजूद उस ऐप्लिकेशन को भेजता है जो एसएमएस मैनेज करता है. जैसे, Messages ऐप्लिकेशन. अगर 10 नंबर पास किए जाते हैं, तो ऐप्लिकेशन उन्हें फ़ोन नंबर के तौर पर फ़ॉर्मैट करता है. लंबी या छोटी संख्या वाली स्ट्रिंग, उसी तरह दिखती हैं जिस तरह आपने उन्हें भेजा था.
|
| फ़िंगरप्रिंट सिम्युलेशन | ब्यौरा |
finger touch fingerprint-id
|
यह सेंसर को छूने वाली उंगली की तरह काम करता है. |
finger remove
|
यह फ़िंगरप्रिंट हटाने की प्रोसेस को सिम्युलेट करता है.
इन कमांड का इस्तेमाल करने के बारे में निर्देशों के लिए, फ़िंगरप्रिंट सिम्युलेशन और पुष्टि के बारे में यहां दिया गया सेक्शन देखें. |
फ़िंगरप्रिंट सिम्युलेशन और पुष्टि
पहली इमेज. फ़िंगरप्रिंट से पुष्टि करने की स्क्रीन.
अपने ऐप्लिकेशन के लिए, फ़िंगरप्रिंट की पुष्टि करने की सुविधा को सिम्युलेट और पुष्टि करने के लिए, finger कमांड का इस्तेमाल करें. इसके लिए, आपके पास SDK टूल 24.3 या उसके बाद का वर्शन और Android 6.0 (एपीआई लेवल 23) या उसके बाद का वर्शन होना चाहिए.
फ़िंगरप्रिंट की पुष्टि करने की सुविधा को सिम्युलेट करने और उसकी पुष्टि करने के लिए, यह तरीका अपनाएं:
- अगर आपके पास फ़िंगरप्रिंट आईडी नहीं है, तो एम्युलेटर में नया फ़िंगरप्रिंट रजिस्टर करें. इसके लिए, सेटिंग > सुरक्षा > फ़िंगरप्रिंट को चुनें. इसके बाद, रजिस्टर करने के निर्देशों का पालन करें.
- अपने ऐप्लिकेशन को फ़िंगरप्रिंट से पुष्टि करने की सुविधा स्वीकार करने के लिए सेट अप करें. यह सेटअप करने के बाद, आपके डिवाइस पर फ़िंगरप्रिंट की पुष्टि करने वाली स्क्रीन दिखेगी.
- जब आपका ऐप्लिकेशन, फ़िंगरप्रिंट से पुष्टि करने वाली स्क्रीन दिखाता है, तब कंसोल पर जाएं और
finger touchकमांड डालें. इसके बाद, बनाया गया फ़िंगरप्रिंट आईडी डालें. यह उंगली से किए गए टच को सिम्युलेट करता है. - इसके बाद, उंगली हटाने का सिम्युलेट करने के लिए,
finger removeकमांड डालें.आपका ऐप्लिकेशन इस तरह से जवाब दे जैसे किसी व्यक्ति ने फ़िंगरप्रिंट सेंसर को छुआ हो और फिर अपनी उंगली हटा ली हो.