यूज़र इंटरफ़ेस (यूआई)/ऐप्लिकेशन एक्सरसाइज़र मंकी

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

खास जानकारी

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

बंदर के पास कई विकल्प हैं, लेकिन वे चार मुख्य विकल्पों में बंट गए हैं श्रेणियां:

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

जब बंदर दौड़ता है, तो वह इवेंट जनरेट करता है और उन्हें सिस्टम के पास भेज देता है. यह देखता है सिस्टम की जांच की जा रही है और वह इन तीन स्थितियों को देखता है, जिनके साथ यह खास तौर पर काम करता है:

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

आपके चुने गए 'कितने शब्दों में जानकारी दी जाए' सेटिंग के आधार पर, आपको इसकी प्रोग्रेस की रिपोर्ट भी दिखेंगी दिखाई गई चीज़ों के बारे में बात करते हैं.

बंदर का इस्तेमाल

अपनी डेवलपमेंट मशीन पर कमांड लाइन या स्क्रिप्ट का इस्तेमाल करके, Monkey को लॉन्च किया जा सकता है. बंदर एम्युलेटर/डिवाइस के एनवायरमेंट में चलता है, इसलिए आपको इसे शेल से लॉन्च करना होगा उस एनवायरमेंट के मुताबिक होने चाहिए. ऐसा करने के लिए, हर निर्देश adb shell को पहले से दिखाया जा सकता है. या शेल में जाकर बंदर के निर्देश सीधे तौर पर टाइप करना होगा.

इसका बेसिक सिंटैक्स यह है:

$ adb shell monkey [options] <event-count>

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

$ adb shell monkey -p your.package.name -v 500

निर्देश के विकल्पों के बारे में जानकारी

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

कैटगरी विकल्प ब्यौरा
सामान्य सेटिंग --help इस्तेमाल से जुड़ी आसान गाइड प्रिंट करता है.
-v कमांड लाइन पर हर -v, शब्दों की ज़्यादा जानकारी का लेवल बढ़ा देगा. लेवल 0 (डिफ़ॉल्ट) शुरू होने की सूचना, टेस्ट पूरा होने, और आखिरी नतीजे. पहले लेवल में, टेस्ट के बारे में ज़्यादा जानकारी दी जाती है, जैसे कि अलग-अलग इवेंट आपकी गतिविधियाँ. दूसरा लेवल सेटअप के बारे में ज़्यादा जानकारी देता है. जैसे, चुनी गई गतिविधियां या जिनके लिए नहीं चुना गया है टेस्टिंग हो रही है.
इवेंट -s <seed> सूडो-रैंडम नंबर जनरेटर के लिए सीड वैल्यू. अगर तुम उसी बीज के साथ बंदर को फिर से चलाओ मान है, तो यह इवेंट का एक जैसा क्रम जनरेट करेगा.
--throttle <milliseconds> इवेंट के बीच तय समय को शामिल करता है. बंदर की रफ़्तार कम करने के लिए आप इस विकल्प का इस्तेमाल कर सकते हैं. अगर इसके बारे में नहीं बताया गया है, तो कोई देरी नहीं होती और इवेंट जल्द से जल्द जनरेट होते हैं.
--pct-touch <percent> टच इवेंट के प्रतिशत में बदलाव करें. (टच इवेंट, स्क्रीन पर एक ही जगह पर होने वाले डाउन-अप इवेंट होते हैं.)
--pct-motion <percent> मोशन इवेंट के प्रतिशत में बदलाव करें. (मोशन इवेंट में स्क्रीन पर कहीं भी एक डाउन इवेंट होता है. यह एक रैंडम-रैंडम सीरीज़ होती है और कोई अप इवेंट.)
--pct-trackball <percent> ट्रैकबॉल इवेंट के प्रतिशत में बदलाव करें. (ट्रैकबॉल इवेंट में एक या एक से ज़्यादा रैंडम मूवमेंट होते हैं. कभी-कभी तो एक क्लिक भी हो जाता है.)
--pct-nav <percent> "बेसिक" के प्रतिशत में बदलाव करें नेविगेशन इवेंट. (दिशात्मक इनपुट डिवाइस से इनपुट के रूप में नेविगेशन इवेंट में ऊपर/नीचे/बाएं/दाएं शामिल होते हैं.)
--pct-majornav <percent> "मुख्य" मेट्रिक के प्रतिशत में बदलाव करें नेविगेशन इवेंट. (ये नेविगेशन इवेंट, आम तौर पर आपके यूज़र इंटरफ़ेस (यूआई) में कार्रवाइयां करने की वजह से होंगे. जैसे 5-वे पैड में बीच वाला बटन, बैक बटन या मेन्यू बटन.)
--pct-syskeys <percent> "सिस्टम" के प्रतिशत में बदलाव करें मुख्य इवेंट. (ये ऐसी कुंजियां हैं जिन्हें सिस्टम आम तौर पर इस्तेमाल करने के लिए रिज़र्व करता है, जैसे कि होम, वापस जाएं, कॉल शुरू करें, कॉल खत्म करना या आवाज़ कम या ज़्यादा करने का कंट्रोल.)
--pct-appswitch <percent> लॉन्च की गतिविधि के प्रतिशत में बदलाव करें. किसी भी क्रम में बंदर, startActivity() कॉल जारी करेगा, ताकि आपके पैकेज में सभी गतिविधियों का कवरेज.
--pct-anyevent <percent> अन्य तरह के इवेंट के प्रतिशत में बदलाव करें. यह बाकी सभी तरह के इवेंट के लिए बेहद अहम है. जैसे, कीप्रेस और कम इस्तेमाल किए जाने वाले इवेंट बटन, आदि.
कंस्ट्रेंट -p <allowed-package-name> इस तरीके से एक या एक से ज़्यादा पैकेज तय करने पर, मंकी सिर्फ़ सिस्टम को अनुमति देगा गतिविधियों पर विज़िट करने की सुविधा मिलती है. अगर आपके ऐप्लिकेशन को तो आपको वे पैकेज भी चुनने होंगे. अगर आप कोई पैकेज तय नहीं करते हैं, तो बंदर सिस्टम को गतिविधियां लॉन्च करने की अनुमति देगा सभी पैकेज में उपलब्ध है. एक से ज़्यादा पैकेज तय करने के लिए, -p विकल्प का कई बार इस्तेमाल करें — एक -p का विकल्प होता है.
-c <main-category> अगर इस तरह एक या एक से ज़्यादा कैटगरी बताई जाती हैं, तो बंदर सिर्फ़ सिस्टम की मदद से, उन गतिविधियों पर जाएं जो किसी खास कैटगरी में दी गई हैं. अगर आपने किसी कैटगरी की जानकारी नहीं दी, तो बंदर कैटगरी के साथ लिस्ट की गई गतिविधियां चुनेगा Intent.CATEGORY_LAUNCHER या Intent.CATEGORY_MONKEY. कई कैटगरी बताने के लिए, -c का इस्तेमाल करें विकल्प कई बार — हर कैटगरी के लिए एक -c विकल्प.
डीबग करना --dbg-no-events तय किए जाने पर बंदर, टेस्ट गतिविधि में शुरुआती लॉन्च करेगा, लेकिन कोई और इवेंट जनरेट नहीं करेगा. बेहतर नतीजों के लिए, मंकी को -v, एक या उससे ज़्यादा पैकेज कंस्ट्रेंट, और नॉन-ज़ीरो थ्रॉटल के साथ जोड़कर बंदर को अपने पास रखें 30 सेकंड या उससे ज़्यादा समय तक चलता रहेगा. इससे एक ऐसा एनवायरमेंट मिलता है जिसमें पैकेज को मॉनिटर किया जा सकता है आपके ऐप्लिकेशन द्वारा शुरू किए गए ट्रांज़िशन.
--hprof अगर इसे सेट किया जाता है, तो यह विकल्प बंदर के ठीक पहले और बाद में प्रोफ़ाइलिंग रिपोर्ट जनरेट करेगा इवेंट क्रम. यह डेटा/अलग-अलग तरह की बड़ी (~5Mb) फ़ाइलें जनरेट करेगा, इसलिए सावधानी से इस्तेमाल करें. इसके लिए प्रोफ़ाइल बनाने से जुड़ी रिपोर्ट का विश्लेषण करने के बारे में जानकारी पाने के लिए, अपने ऐप्लिकेशन की प्रोफ़ाइल बनाएं परफ़ॉर्मेंस.
--ignore-crashes आम तौर पर, ऐप्लिकेशन बंद होने या किसी तरह का अनुभव होने पर बंदर बंद हो जाएगा बिना क्रिया के अपवाद. यह विकल्प चुनने पर बंदर, घटनाएँ भेजना जारी रखेगा गिनती पूरी होने तक सिस्टम में रखा जाएगा.
--ignore-timeouts आम तौर पर, ऐप्लिकेशन के टाइम आउट जैसी किसी गड़बड़ी का सामना करने पर बंदर बंद हो जाएगा जैसे कि "ऐप्लिकेशन काम नहीं कर रहा है" डायलॉग. यह विकल्प चुनने पर बंदर, गिनती पूरी होने तक सिस्टम को इवेंट भेजें.
--ignore-security-exceptions आम तौर पर, ऐप्लिकेशन में अनुमति से जुड़ी किसी भी तरह की गड़बड़ी होने पर बंदर बंद हो जाएगा, उदाहरण के लिए, अगर यह कोई ऐसी गतिविधि लॉन्च करने की कोशिश करता है जिसके लिए खास अनुमतियों की ज़रूरत है. अगर आप तय करते हैं कि इस विकल्प को चुनने पर, बंदर सिस्टम को इवेंट भेजना जारी रखेगा, जब तक कि संख्या पूरा हुआ.
--kill-process-after-error आम तौर पर, जब किसी गड़बड़ी की वजह से बंदर बंद हो जाता है, तो वह ऐप्लिकेशन जो बंद हो जाता है उसे छोड़ दिया जाता है दौड़ने. जब यह विकल्प सेट हो जाता है, तो यह सिस्टम को उस प्रक्रिया को रोकने का संकेत देगा जिसमें गड़बड़ी होती है हुआ. ध्यान दें, सामान्य (सफल) पूरी होने के बाद, लॉन्च की गई प्रोसेस रोकी नहीं जाती हैं और अंतिम इवेंट के बाद डिवाइस को बस अंतिम स्थिति में छोड़ दिया जाता है.
--monitor-native-crashes Android सिस्टम के नेटिव कोड में होने वाले क्रैश के लिए स्मार्टवॉच और उनकी रिपोर्ट. अगर --kill-process- After-error सेट है, तो सिस्टम रुक जाएगा.
--wait-dbg Monkey को तब तक एक्ज़ीक्यूट करने से रोकता है, जब तक कि उससे कोई डीबगर अटैच नहीं हो जाता.