पहला आवेदन। फोन पर ऐप चलाने वाले एक असली एंड्रॉइड स्टूडियो डिवाइस पर परीक्षण

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

  1. अपने फोन पर USB डिबगिंग सक्षम करें। आप सेटिंग -\u003e एप्लिकेशन -\u003e डेवलपमेंट मेनू पर जाकर और "USB डीबगिंग" चेक करके ऐसा कर सकते हैं
  2. ड्राइवर को स्थापित करने के लिए प्रतीक्षा करें
  3. अपने फ़ोन को अपने कंप्यूटर से डिस्कनेक्ट करें और फिर से कनेक्ट करें।

यह देखने के लिए कि फ़ोन कंप्यूटर को दिखाई दे रहा है, आपको निम्न कार्य करने होंगे:

यदि आपके लिए यह मामला है, तो आप एक विशेष कार्यक्रम का उपयोग कर सकते हैं: पेडानेट। () आमतौर पर इसका उपयोग कंप्यूटर से फोन से इंटरनेट का उपयोग करने के लिए किया जाता है, लेकिन यह सिर्फ इतना होता है कि इसमें फोन के लिए बड़ी संख्या में ड्राइवर होते हैं। स्थापना के दौरान, मुझे डिवाइस का मॉडल पूछा गया था, और फिर एक सुंदर लाल बालुन एक चेतावनी के साथ पॉप अप हुआ कि ड्राइवर का परीक्षण नहीं किया गया था, और सब कुछ बुरी तरह से समाप्त हो सकता है, लेकिन नहीं - सब कुछ ठीक है, इसे स्थापित किया गया था। उसके बाद, मैंने फिर से चेक (ऊपर की कमांड) चलाया और मेरा फोन उपकरणों की सूची में दिखाई दिया।

ग्रहण से कैसे काम करें? वास्तव में, सब कुछ पहले से ही किया गया है - बस प्रोजेक्ट लॉन्च करें और यह फोन पर खुलता है।

सैंडबॉक्स

सर्वर भगवान 18 सितंबर, 2011 को 03:55 बजे

Android अनुप्रयोग लॉन्चर और डीबगर अवलोकन

  • लकड़ी कमरा *

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

Android वर्चुअल डिवाइस (AVD)
स्थापना:
यह इम्यूलेशन टूल Android SDK में बनाया गया है।

स्थापना:
(ग्रहण में उदाहरण का उपयोग करते हुए)
विंडो\u003e एंड्रॉइड एसडीके और एवीडी मैनेजर\u003e नया
वर्चुअल डिवाइस, प्लेटफ़ॉर्म, मेमोरी कार्ड साइज़, डिस्प्ले टाइप का नाम दर्ज करें ...
AVD पर क्लिक करें।

Daud:
एमुलेटर का पहला लॉन्च बहुत लंबा समय लेता है, खासकर कमजोर उपकरणों पर। उदाहरण के लिए, मैं अपनी नेटबुक पर पहले लॉन्च का इंतजार नहीं कर सकता था, और जब पहली बार इसे कंप्यूटर पर लॉन्च किया, तो मुझे यकीन था कि एमुलेटर एक अनन्त लूप में चला गया था।
एमुलेटर के बाद के लॉन्च थोड़े जोकियर होंगे।
"रन" बटन दबाने और एमुलेटर पर परीक्षण एप्लिकेशन के मुख्य सक्रियण की उपस्थिति के बीच का समय औसत 11 सेकंड पर गुजरता है। माप काफी कुशल कंप्यूटर पर किए गए थे।

फायदे और नुकसान:
+ विभिन्न प्रकार के डिस्प्ले वाले उपकरणों पर Android OS के विभिन्न संस्करणों पर एप्लिकेशन का परीक्षण करने की क्षमता ...
परीक्षण के लिए आवश्यक विभिन्न सेटिंग्स, उदाहरण के लिए, स्क्रीन ओरिएंटेशन को बदलना
+ एसडी कार्ड अनुकरण
- "रन" बटन दबाने और एमुलेटर पर एप्लिकेशन शुरू करने के बीच एक लंबे समय का अंतराल
- एमुलेटर बहुत धीमी गति से काम करता है, उदाहरण के लिए, 1-2 सेकंड के लिए फोन क्या प्रसंस्करण कर रहा था, एमुलेटर 8-10 सेकंड में किया

VirtualBox + Android x86
स्थापना और कॉन्फ़िगरेशन:
  1. VirtualBox डाउनलोड और इंस्टॉल करें।
  2. छवि डाउनलोड करें।
  3. “हम एक वर्चुअल मशीन लिनक्स 2.6 / अन्य लिनक्स, 512 एमबी रैम, ब्रिड्ड नेटवर्क, एचडी 2 जीबी, डिसेबल माउस इंटीग्रेशन बनाते हैं। आईएसओ फाइल कनेक्ट करें और लाइवसीडी विकल्पों में से एक को लोड करें (एक एचडीपीआई और एमडीपीआई विकल्प है) "या इस निर्देश का पालन करें।
  4. कंसोल से बाहर निकलने के लिए Alt-F1 दबाएं और netcfg टाइप करें और एमुलेटर का IP पता याद रखें। GUI पर लौटने के लिए, Alt-F7 दबाएँ।
  5. adb कनेक्ट

Daud:
"रन" बटन दबाने और एमुलेटर पर परीक्षण एप्लिकेशन के मुख्य सक्रियण की उपस्थिति के बीच का समय पता नहीं लगाया गया था, लेकिन व्यक्तिपरक भावनाओं के अनुसार, यह लगभग तुरंत होता है।

फायदे और नुकसान:
"रन" बटन दबाने और एमुलेटर पर एप्लिकेशन लॉन्च करने के बीच + छोटा समय अंतराल
+ स्थानों में फुर्तीला काम
- बल्कि लंबा और कभी-कभी समस्याग्रस्त स्थापना
- एमुलेटर स्थानों में धीरे-धीरे काम करता है, छवि के साथ समस्याएं हैं (विशेषकर एमडीपीआई पर)
- एसडी-कार्ड के अनुकरण के साथ समस्याएं, स्क्रीन ओरिएंटेशन को बदलना, ...
- एंड्रॉइड ओएस के केवल दो (तीन) उपलब्ध संस्करण और केवल दो उपलब्ध डिस्प्ले प्रकार

Android फोन USB के माध्यम से जुड़ा हुआ है
स्थापना और कॉन्फ़िगरेशन:
  1. फोन पर डिबग मोड चालू करें। (सेटिंग्स\u003e एप्लिकेशन\u003e डेवलपमेंट\u003e यूएसबी डिबगिंग)।
  2. हम आपके फ़ोन के लिए ड्राइवर डाउनलोड करते हैं।
  3. हम फोन को पीसी से कनेक्ट करते हैं।
  4. ड्राइवरों को स्थापित करना। डिवाइस मैनेजर में ADB इंटरफ़ेस सेक्शन दिखाई देना चाहिए।
  5. अदब उपकरण। यदि आपका फोन सूची में प्रदर्शित नहीं है, तो ADB ड्राइवर को फिर से स्थापित करें।

Daud:
"रन" बटन दबाने और फोन पर परीक्षण एप्लिकेशन के मुख्य सक्रियण की उपस्थिति के बीच लगभग 5 सेकंड लगते हैं।

फायदे और नुकसान:
+ एप्लिकेशन को देखने की क्षमता जैसा कि उपयोगकर्ता इसे (बहुत ही) देखेगा महत्वपूर्ण बिंदु, खासकर जब एप्लिकेशन का इंटरफ़ेस और डिज़ाइन बनाते हैं)
+ मल्टीटच (यदि फोन पर उपलब्ध है)
+ स्क्रीन अभिविन्यास का परिवर्तन, एक्सीलेरोमीटर (यदि फोन में उपलब्ध है)
- केवल एक ओएस संस्करण और एक प्रदर्शन प्रकार
- भौतिक डेस्कटॉप पर एक अन्य ऑब्जेक्ट दिखाई देगा

निष्कर्ष:
मैंने इनमें से प्रत्येक अनुकरण उपकरण की कोशिश की और इस विकल्प के साथ समाप्त हुआ:
1. फोन का उपयोग करके एप्लिकेशन लिखना और परीक्षण करना;
2. ओएस संस्करण और प्रदर्शन प्रकार के विभिन्न संयोजनों के साथ कई एंड्रॉइड वर्चुअल डिवाइसेस पर एप्लिकेशन का परीक्षण करना।
मुझे आशा है कि पाठक ने एक एमुलेटर का चुनाव किया है या अपने लिए कुछ नया सीखा है।
अपने परीक्षण के साथ गुड लक!

Decompiling और Android अनुप्रयोग डीबग करना

अलेक्जेंडर एंटीपोव

आलेख वर्णन करेगा कि एप्लिकेशन को विघटित करने के बाद प्राप्त जानकारी का उपयोग करके एंड्रॉइड एप्लिकेशन पर डिबगर को कैसे कनेक्ट किया जाए और कहा जाता है।


आलेख वर्णन करेगा कि एप्लिकेशन को विघटित करने के बाद प्राप्त जानकारी का उपयोग करके एंड्रॉइड एप्लिकेशन पर डिबगर को कैसे कनेक्ट किया जाए और कहा जाता है। अच्छी खबर यह है कि डिबगिंग को सुपरसुसर विशेषाधिकारों की आवश्यकता नहीं है। पैठ परीक्षणों के दौरान वर्णित तकनीक बहुत सहायक हो सकती है। मोबाइल एप्लीकेशनक्योंकि हम प्रोग्राम को चलाने के दौरान कोड को "भेद" कर सकते हैं, सूचना प्राप्त कर सकते हैं और लिख सकते हैं जिसकी हमारे पास आमतौर पर पहुंच नहीं है। उदाहरण के लिए, आप एन्क्रिप्शन से पहले ट्रैफ़िक को रोक सकते हैं और फ़्लाय पर चाबियां, पासवर्ड और कोई भी मूल्यवान जानकारी प्राप्त कर सकते हैं। यह लेख उन पेंटरों और मोबाइल ऐप डेवलपर्स के लिए उपयोगी होगा जो एंड्रॉइड प्लेटफॉर्म पर संभावित हमलों का गहन ज्ञान प्राप्त करना चाहते हैं।

पर्यावरण आवश्यकताओं का परीक्षण करें:

  • ऑपरेटिंग सिस्टम: विंडोज / मैक ओएस एक्स / लिनक्स
  • जावा (संस्करण 1.7 अनुशंसित)
  • आईडीई (ग्रहण, IntelliJ आईडिया, एंड्रॉइड स्टूडियो)
  • Android SDK (https://developer.android.com/sdk/index.html?hl\u003di)
  • एपीकेटूल (https://code.google.com/p/android-apktool/)/APK Studio (http://apkstudio.codexx.com)
  • Android डिवाइस / एमुलेटर

यह आलेख निम्न कॉन्फ़िगरेशन का उपयोग करेगा: Windows 8, Android Studio और IntelliJ IDEA। डिवाइस: एंड्रॉयड 4.4.4 के साथ नेक्सस 4। मैं इन उपकरणों को एक्सेस करने के लिए इसे आसान और तेज़ बनाने के लिए PATH पर्यावरण चर में सभी उपयोगिताओं को जोड़ने की सलाह देता हूं।

लेख में प्रयुक्त Android एप्लिकेशन पैकेज (एपीके) को यहां से डाउनलोड किया जा सकता है: com.netspi.egruber.test.pk .

डिवाइस सेटअप

नीचे दिए गए निर्देश आपको अपने डिवाइस को प्रयोग के लिए तैयार करने में मदद करेंगे।

डेवलपर विकल्प अनुभाग को सक्रिय करना

सबसे पहले, USB के माध्यम से डिबगिंग को Android डिवाइस (USB डीबगिंग विकल्प) पर सक्षम किया जाना चाहिए, जो आपको उपकरण से उपकरण का उपयोग करके "संवाद" करने की अनुमति देगा android डायलिंग एसडीके। हालाँकि, इससे पहले आपको डेवलपर विकल्प अनुभाग को सक्रिय करना होगा। डिवाइस पर, सेटिंग\u003e फोन के बारे में जाएं और बिल्ड नंबर आइटम पर कई बार क्लिक करें, जिसके बाद एक संदेश दिखाई देना चाहिए जो बताता है कि डेवलपर विकल्प अनुभाग सक्रिय है।

चित्र 1: डेवलपर विकल्प अनुभाग को सक्रिय करने के लिए, आपको कई बार बिल्ड नंबर पर क्लिक करना होगा

यूएसबी डिबगिंग सक्षम

USB डीबगिंग को सक्षम करने के लिए, सेटिंग\u003e डेवलपर विकल्पों पर जाएं और USB डीबगिंग के बगल में स्थित बॉक्स को चेक करें।

चित्र 2: USB डीबगिंग विकल्प को सक्षम करना

डिवाइस को कनेक्ट करना और एडीबी लॉन्च करना

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

डिवाइस को सूची में दिखाई देना चाहिए।

चित्र 3: जुड़े उपकरणों की सूची

यदि डिवाइस को सूची में प्रदर्शित नहीं किया गया है, तो सबसे संभावित कारण गलत है स्थापित ड्राइवर (विंडोज पर)। डिवाइस के आधार पर, ड्राइवर को एंड्रॉइड एसडीके या निर्माता की वेबसाइट पर पाया जा सकता है।

डिबगिंग के लिए आवेदन की जाँच

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

पहला रास्ता दौड़ना है Android डिवाइस मॉनिटरएंड्रॉइड एसडीके (टूल फ़ोल्डर में) शामिल है। में विंडोज फ़ाइल कहा जाता है। जब आप Android डिवाइस मॉनिटर खोलते हैं, तो डिवाइस डिवाइसेस सेक्शन में दिखाई देगा।

चित्र 4: Android डिवाइस मॉनिटर अनुप्रयोग

यदि डिवाइस पर किसी भी एप्लिकेशन को डिबग किया जा सकता है, तो वह एप्लिकेशन सूची में भी दिखाई देगा। मैंने एक परीक्षण कार्यक्रम बनाया है, लेकिन सूची खाली है क्योंकि कार्यक्रम को डीबग नहीं किया जा सकता है।

डिबगिंग के लिए अपने आवेदन का परीक्षण करने का दूसरा तरीका एंड्रॉइड एप्लिकेशन पैकेज (एपीके) से AndroidManifest.xml फ़ाइल की जांच करना है। एपीके एक ज़िप आर्काइव है जिसमें एंड्रॉइड डिवाइस पर एप्लिकेशन चलाने के लिए आवश्यक सभी जानकारी होती है।

जब भी आवेदन लोड किए जाते हैं गूगल प्ले स्टोर, ऐप पैकेज भी डाउनलोड किया गया है। सभी डाउनलोड किए गए एपीके आमतौर पर / डेटा / ऐप फ़ोल्डर में डिवाइस पर संग्रहीत होते हैं। यदि आपके पास सुपरयुसर अधिकार नहीं हैं, तो आप / data / app निर्देशिका से फ़ाइलों की सूची प्राप्त नहीं कर सकते। यद्यपि, यदि आप एपीके फ़ाइल का नाम जानते हैं, तो आप उपयोगिता का उपयोग करके इसे कॉपी कर सकते हैं एशियाई विकास बैंक... एपीके फ़ाइल का नाम खोजने के लिए, निम्न कमांड दर्ज करें:

दिखाई देगा कमांड लाइन उपकरण। फिर निम्न कमांड दर्ज करें:

pm सूची संकुल -f

डिवाइस पर सभी पैकेजों की एक सूची प्रदर्शित की जाएगी।

चित्रा 5: डिवाइस पर संकुल की सूची

सूची को देखते हुए, हम परीक्षण आवेदन पाते हैं।

चित्रा 6: उत्पन्न परीक्षण आवेदन का पैकेज (सफेद में हाइलाइट किया गया)

अब आपको पैकेज फ़ाइल की प्रतिलिपि बनाने की आवश्यकता है। शेल खोलें और निम्न कमांड दर्ज करें:

adb पुल / डेटा / ऐप / [.apk फ़ाइल]

चित्र 7: डिवाइस से सिस्टम में एपीके फ़ाइल की प्रतिलिपि बनाएँ

अब आपको पैकेज फ़ाइल खोलने और AndroidManifest.xml की सामग्री की जांच करने की आवश्यकता है। दुर्भाग्यवश, हम आर्काइव को अनपैक नहीं कर सकते क्योंकि एपीके फाइल बाइनरी फॉर्मेट में एनकोडेड है। डिकोडिंग के लिए, उपयोगिता का सबसे अधिक उपयोग किया जाता है apktoolहालांकि मैं उपयोग कर रहा हूं एपीके स्टूडियोक्योंकि इस एप्लिकेशन के पास एक अनुकूल GUI है। बाकी लेख एपीके स्टूडियो के बारे में बात करेंगे।

एपीके स्टूडियो में, छोटे हरे आइकन पर क्लिक करें, परियोजना को एक नाम दें और एपीके फ़ाइल का पथ निर्दिष्ट करें। फिर प्रोजेक्ट को सहेजने के लिए निर्दिष्ट करें।

चित्र 8: एपीके स्टूडियो में एक नया प्रोजेक्ट बनाना

एपीके खुलने के बाद, AndroidManifest.xml फ़ाइल चुनें और एप्लिकेशन टैग विकल्प देखें। यदि एंड्रॉइड: डीबग करने योग्य ध्वज मौजूद नहीं है (या मौजूद है लेकिन गलत पर सेट है), तो एप्लिकेशन डीबग नहीं किया जा सकता है।

चित्र 9: AndroidManifest.xml फ़ाइल की सामग्री

AndroidManifest.xml फ़ाइल को संशोधित करना

एपीकेटीटी उपयोगिता या एपीके स्टूडियो का उपयोग करके, हम फाइलों को संशोधित कर सकते हैं और सामग्री को पैकेज में वापस पैक कर सकते हैं। अब हम AndroidManifest.xml फ़ाइल को संशोधित करेंगे ताकि एप्लिकेशन को डीबग किया जा सके। एंड्रॉइड जोड़ें: एप्लिकेशन टैग के अंदर डीबग करने योग्य \u003d "सत्य" लाइन।

चित्र 10: एप्लिकेशन टैग की सामग्री को बदलना

ध्वज जोड़ने के बाद, हथौड़ा आइकन पर क्लिक करें और पैकेज को फिर से इकट्ठा करें। पुनर्निर्मित पैकेज बिल्ड / एपीके डायरेक्ट्री में होगा।

चित्रा 11: पैकेज पुनर्निर्माण सफलतापूर्वक पूरा हुआ

पुनर्निर्माण के बाद, पैकेज पर हस्ताक्षर किए जाते हैं और डिवाइस पर फिर से इंस्टॉल किए जा सकते हैं (सभी एंड्रॉइड एप्लिकेशन पर हस्ताक्षर किए जाने चाहिए)। अधिकांश एप्लिकेशन हस्ताक्षर करने के लिए उपयोग किए गए प्रमाणपत्र को सत्यापित नहीं करते हैं। अन्यथा, आपको इस चेक को करने वाले कोड को बदलने की आवश्यकता है।

अब आपको पुनर्निर्माण पैकेज स्थापित करने की आवश्यकता है। सबसे पहले, निम्न कमांड का उपयोग करके पुराने एप्लिकेशन को हटा दें:

adb pm अनइंस्टॉल

फिर हम नया पैकेज स्थापित करते हैं:

adb स्थापित [.apk फ़ाइल]

आप एकल कमांड के साथ पैकेज को अनइंस्टॉल और इंस्टॉल कर सकते हैं:

adb इंस्टॉल -r [.apk फ़ाइल]

चित्र 12: पुनर्निर्माण पैकेज स्थापित करना

जांचें कि डिवाइस पर पुन: इंस्टॉल किया गया एप्लिकेशन सही ढंग से शुरू होता है। यदि सब कुछ काम करता है, तो एंड्रॉइड डिवाइस मॉनिटर पर वापस जाएं, जहां परीक्षण एप्लिकेशन दिखाई देना चाहिए।

चित्र 13: पुनर्निर्माण का आवेदन अब डीबग किया जा सकता है

विकास का माहौल बनाना (IDE)

अब आप एक डिबगर को फिर से बनाने वाले एप्लिकेशन पर हुक कर सकते हैं, लेकिन सबसे पहले आपको विकास के माहौल में एक प्रोजेक्ट बनाने की जरूरत है (यह लेख IntelliJ IDEA का उपयोग करता है)। हम एक नया प्रोजेक्ट बनाते हैं। अनुप्रयोग नाम फ़ील्ड में, एक मनमाना नाम निर्दिष्ट करें। पैकेज नाम फ़ील्ड में, उस नाम को निर्दिष्ट करें जो पुनर्निर्माण पैकेज के फ़ोल्डर पदानुक्रम से मेल खाता है।

चित्र 14: IntelliJ IDEA में एक नया प्रोजेक्ट बनाना

आमतौर पर एपीके फ़ाइल का नाम फ़ोल्डर संरचना के समान होता है, हालांकि यदि आप अनिश्चित हैं, तो एपीके स्टूडियो उस डायरेक्टरी पदानुक्रम को उस फ़ोल्डर की जांच करें जहां एप्लिकेशन फाइलें स्थित हैं। मेरे मामले में, नाम और फ़ोल्डर संरचना बिल्कुल समान हैं (com.netspi.egruber.test)।

चित्र 15: टेस्ट एप्लिकेशन डायरेक्टरी पदानुक्रम

हैलो वर्ल्ड एक्टिविटी चेकबॉक्स अचयनित करें और प्रोजेक्ट को पूरा करें (अन्य सभी विकल्प डिफ़ॉल्ट बने रहें)। नई परियोजना कुछ इस तरह दिखनी चाहिए:

चित्र 16: एक नई परियोजना के फ़ोल्डर्स और फ़ाइलों का पदानुक्रम

प्रोजेक्ट बनाने के बाद, आपको एपीके फ़ाइल से सोर्स कोड जोड़ने की आवश्यकता है ताकि डिबगर को प्रतीकों, विधियों, चर आदि के नाम "पता" हो, अच्छी खबर यह है कि एंड्रॉइड एप्लिकेशन गुणवत्ता के लगभग कोई नुकसान के साथ विघटित हो सकते हैं (स्रोत कोड से मेल खाएगा मूल के साथ)। विघटन के बाद, स्रोत कोड को विकास पर्यावरण (IDE) में आयात किया जाता है।

एक आवेदन पैकेज से स्रोतों को प्राप्त करना

सबसे पहले आपको अपनी एपीके को जार फाइल में बदलना होगा। तब हम जावा डिकम्पॉइलर का उपयोग करके एप्लिकेशन का स्रोत कोड प्राप्त करेंगे। हम उपयोगिता का उपयोग करके जार में रूपांतरण करेंगे dex2jar... Dex2jar में d2j-dex2jar.bat फाइल है जिसका उपयोग एपीके को जार में बदलने के लिए किया जाता है। कमांड सिंटैक्स बहुत सरल है:

d2j-dex2jar.bat [.apk फ़ाइल]

चित्र 17: एपीके को जार में बदलें

फिर परिणामी फ़ाइल को JD-GUI में खोलें या खींचें (यह एक जावा डिकंपाइलर है)।

चित्र 18: जार फ़ाइल की संरचना

जार फ़ाइल उसके अंदर पठनीय स्रोत के साथ जावा फ़ाइलों के साथ एक पदानुक्रमित संरचना के रूप में दिखाई देनी चाहिए। फ़ाइल\u003e सभी स्रोतों को जिप संग्रह में पैक करने के लिए सभी स्रोतों को सहेजें।

चित्र 19: विघटित फ़ाइल के स्रोत ग्रंथों को सहेजना

स्रोतों को सहेजने के बाद, संग्रह को एक अलग निर्देशिका में अनपैक करें।

चित्र 20: अनपैक्ड आर्काइव

अब आपको IDE में पहले बनाई गई परियोजना में दोनों निर्देशिकाओं को आयात करने की आवश्यकता है। IntelliJ में, src फ़ोल्डर में जाएं और वहां अनपैक्ड आर्काइव (दो डायरेक्टरीज़) के कंटेंट को कॉपी करें।

चित्र 21: दोनों फ़ोल्डर src डायरेक्टरी में कॉपी किए गए

इंटेलीज पर लौटते हुए, हम अद्यतन परियोजना को देखते हैं।

चित्र 22: परियोजना में स्रोत कोड दिखाई दिया

यदि हम सूची से किसी भी आइटम पर क्लिक करते हैं, तो हम मूल पाठ देखेंगे। जैसा कि आप नीचे स्क्रीनशॉट (LoginActivity class का सोर्स कोड) में देख सकते हैं, सोर्स कोड ProGuard का उपयोग करके बाधित है।

चित्र 23: लॉगिनएक्टिविटी वर्ग का अनुमानित स्रोत

डिबगर कनेक्शन

अब जब स्रोत कोड परियोजना में दिखाई दिया है, तो हम तरीकों और चर पर ब्रेकपॉइंट सेट करना शुरू कर सकते हैं। जब ब्रेकपॉइंट पहुंच जाते हैं, तो एप्लिकेशन बंद हो जाएगा। एक उदाहरण के रूप में, मैंने विधि (मोटे कोड में सही) पर एक ब्रेकपॉइंट सेट किया है जो पाठ क्षेत्र में दर्ज जानकारी के प्रसंस्करण के लिए जिम्मेदार है।

चित्र 24: एक अव्यवस्थित पद्धति का एक विराम बिंदु होता है

जैसे ही ब्रेकपॉइंट दिखाई देता है, डिवाइस पर डिबगर को ऊपरी दाएं कोने में स्क्रीन के साथ आइकन पर क्लिक करके कनेक्ट करें (आपके आईडीई पर, आइकन अलग हो सकता है)।

चित्र 25: डिबगर को किसी प्रक्रिया से जोड़ना

चित्र 26: डिबगर को जोड़ने के लिए प्रक्रियाओं की सूची

एक प्रक्रिया का चयन करने के बाद, डिबगर डिवाइस से कनेक्ट हो जाएगा।

चित्र 27: डिबगर डिवाइस पर चलने वाली एक प्रक्रिया से जुड़ा हुआ है

पाठ बॉक्स में, मैं 42 नंबर दर्ज करूंगा (यदि आपको याद है, तो संबंधित विधि पर एक विराम बिंदु है)।

चित्र 28: टेक्स्ट बॉक्स में 42 नंबर दर्ज करें

"एंटर कोड" बटन दबाने के बाद, एप्लिकेशन निष्पादन ब्रेकपॉइंट पर बाधित हो जाएगा, क्योंकि डिबगर डिवाइस के "जागरूक" तरीके से कहा जाता है। संकलित Android एप्लिकेशन में किसी भी जावा डिबग वायर प्रोटोकॉल (JDWP) के लिए डिबग जानकारी (जैसे चर नाम) उपलब्ध है-असंगत डिबगर। यदि डिबगिंग अनुप्रयोग में सक्षम है, तो एक JDWP- संगत डिबगर (जावा विकास वातावरण में शामिल अधिकांश डिबगर इस श्रेणी में आते हैं) एंड्रॉइड एप्लिकेशन की वर्चुअल मशीन से कनेक्ट हो सकते हैं, और फिर डीबग कमांड पढ़ और निष्पादित कर सकते हैं।

चित्रा 29: ब्रेकप्वाइंट ट्रिगर

नीचे दिया गया स्क्रीनशॉट वह संख्या दिखाता है जिसे हमने पहले टेक्स्ट बॉक्स में दर्ज किया था।

चित्र 30: कक्षा के वर्तमान उदाहरण के चर की सूची

निष्कर्ष

हम न केवल एप्लिकेशन में डेटा पढ़ सकते हैं, बल्कि अपना खुद का भी डाल सकते हैं। यह उपयोगी हो सकता है अगर, उदाहरण के लिए, हम कोड निष्पादन के प्रवाह को बाधित करना चाहते हैं और एल्गोरिथ्म के कुछ हिस्सों को बायपास करें। डिबगर की मदद से, हम बेहतर तरीके से एप्लिकेशन के तर्क को समझ सकते हैं और विश्लेषण कर सकते हैं कि औसत उपयोगकर्ता के लिए क्या दुर्गम है। उदाहरण के लिए, उपयोग किए गए एन्क्रिप्शन कार्यों और गतिशील कुंजियों को देखने के लिए यह बहुत मददगार हो सकता है। इसके अलावा, यह कभी-कभी उपयोगी होता है कि डिबगिंग यह जानने के लिए कि फ़ाइल सिस्टम या डेटाबेस के साथ कैसे कार्य करता है, यह समझने के लिए कि एप्लिकेशन द्वारा किस जानकारी को सहेजा जा रहा है। इस तरह के जोड़तोड़ सुपरसुसर विशेषाधिकारों के बिना किसी भी एंड्रॉइड डिवाइस पर उपलब्ध हैं।

कब android बना रहा हूँ अनुप्रयोगों, अधिकांश डेवलपर्स विभिन्न एमुलेटर का उपयोग करते हैं। यह सुविधाजनक है, क्योंकि आपको डेस्क ड्रॉयर में विभिन्न उपकरणों का एक गुच्छा स्टोर करने की आवश्यकता नहीं है, डिवाइस को कंप्यूटर से कनेक्ट करने में कोई सिरदर्द नहीं है, टेबल पर तारों का कोई ढेर नहीं है। हम माउस पर क्लिक करते हैं और कंप्यूटर स्क्रीन पर हमारे प्रोग्राम का काम देखते हैं। सरल और सुरुचिपूर्ण। हालांकि, एक एमुलेटर एक फोन नहीं है। वह अपनी क्षमताओं में सीमित है। यदि आपका एप्लिकेशन किसी विशिष्ट हार्डवेयर सुविधाओं का उपयोग करता है, जैसे कि कैमरा-संबंधी, ब्लूटूथ या USB कनेक्शन, फोन कॉल प्राप्त करते समय काम करते हैं, उच्च संभावना के साथ हम कह सकते हैं कि आप वास्तविक डिवाइस पर डिबगिंग के बिना नहीं कर सकते। सौभाग्य से, ग्रहण के पास वह सब कुछ है जो आपको यह करने की आवश्यकता है।

फोन कनेक्ट करना और प्रोग्राम लॉन्च करना

इससे पहले कि आप अपने फ़ोन को USB डेटा केबल से अपने कंप्यूटर से कनेक्ट करें, कुछ तैयारियाँ हैं जिन्हें आपको करने की आवश्यकता है। मुद्दा यह है कि ग्रहण डिफ़ॉल्ट रूप से एमुलेटर के साथ काम करने के लिए कॉन्फ़िगर किया गया है, और हमें डिबग मोड कॉन्फ़िगरेशन को समायोजित करने की आवश्यकता है। यह आसान है। मेनू आइटम चलाएँ\u003e डिबग कॉन्फ़िगरेशन और फिर DroidDebug चुनें। परिनियोजन लक्ष्य चयन मोड अनुभाग में लक्ष्य टैब पर, रेडियो बटन को मैन्युअल पर सेट करें और लागू करें पर क्लिक करें। इस प्रकार, प्लेटफ़ॉर्म चयन का मैनुअल मोड सक्षम है। अब, जब आप एप्लिकेशन शुरू करते हैं, तो एक संवाद बॉक्स दिखाई देगा जहां आप एक एमुलेटर या कनेक्ट किए गए फोन में से एक का चयन कर सकते हैं।

फोन को डिबग मोड में काम करने के लिए, इसे तदनुसार कॉन्फ़िगर भी किया जाना चाहिए। पर किया जा रहा है होम स्क्रीन, आपको मेनू बटन पर क्लिक करने और "सेटिंग" एप्लिकेशन ढूंढने की आवश्यकता है। इस एप्लिकेशन में, एप्लिकेशन सेक्शन और फिर डेवलपमेंट खोलें। खुलने वाली स्क्रीन में, आइटम "USB के माध्यम से डिबगिंग" (USD डीबगिंग) के बगल में स्थित बॉक्स को चेक करें। क्रियाओं का यह क्रम अधिकांश फोन पर काम करता है, लेकिन यह बहुत संभव है कि आपके डिवाइस पर UBS डिबगिंग मोड कहीं और चालू हो।

अपने फ़ोन को अपने कंप्यूटर से कनेक्ट करें और ग्रहण में डीबग बटन पर क्लिक करें। दिखाई देने वाले संवाद बॉक्स में, आपको दो सूचियाँ दिखाई देंगी: "एक चल रहे Android डिवाइस को चुनें" और "एक नया एंड्रॉइड वर्चुअल डिवाइस लॉन्च करें"। उनमें से पहला कंप्यूटर से जुड़े फोन को सूचीबद्ध करता है, दूसरा - एमुलेटर। पहली सूची से अपना फोन चुनें। ग्रहण फोन पर डीबग किए जा रहे एप्लिकेशन को इंस्टॉल करेगा और उसे लॉन्च करेगा। आप अपने प्रोग्राम को डीबग कर सकते हैं।

DDMS (Dalvik Debug Monitor Service) फोन की स्थिति की निगरानी

फोन की स्थिति के बारे में सभी जानकारी एक विशेष उपकरण के माध्यम से उपलब्ध है जिसे DDMS मॉनिटरिंग सर्विस (Dalvik Debug Monitor Service) कहा जाता है। इसे लॉन्च करने के लिए, ग्रहण के ऊपरी दाएं कोने में Android छवि वाले बटन पर क्लिक करें।

DDMS विंडो में कई पैनल होते हैं। डिवाइसेस फलक उपलब्ध एमुलेटर और कनेक्टेड फोन की एक सूची प्रदर्शित करता है। इसमें वर्तमान में चल रही प्रक्रियाओं की एक सूची भी शामिल है। प्रत्येक प्रक्रिया अपनी वर्चुअल मशीन में चलती है। थ्रेड्स एक अलग थ्रेड्स टैब में प्रदर्शित होते हैं। फ़ाइल एक्सप्लोरर टैब को फोन के फाइल सिस्टम के साथ काम करने के लिए डिज़ाइन किया गया है। इसके साथ, आप अपने कंप्यूटर से फ़ाइलों को अपने फोन पर कॉपी कर सकते हैं और इसके विपरीत। स्क्रीन कैप्चर बटन का उपयोग करके, आप फोन स्क्रीन का स्क्रीनशॉट ले सकते हैं। ग्रीन बग बटन आपको डिबगर को चयनित प्रक्रिया में संलग्न करने की अनुमति देता है। इस सुविधा का उपयोग करने के लिए, आपके पास इस प्रक्रिया के लिए एक खुला स्रोत कोड होना चाहिए।

इसके अलावा उल्लेखनीय है LogCat लॉगिंग उपयोगिता और संबंधित पैनल, जो त्रुटियों को खोजने में बहुत उपयोगी हो सकता है। लॉग के साथ काम विशेष android.util.Log वर्ग के माध्यम से किया जाता है। सबसे अधिक इस्तेमाल की जाने वाली विधियाँ हैं:

Log.e () - लॉगिंग त्रुटियों के लिए,
Log.w () - लॉगिंग चेतावनियों के लिए,
Log.i () - सूचना संदेश लॉग करने के लिए,
Log.d () - डिबग लॉगिंग के लिए,
Log.v () - वर्बोज़ प्रविष्टियों को लॉग करने के लिए,

इन विधियों को मापदंडों के रूप में दो तारों को पारित करने की आवश्यकता है। पहला एक टैग है, जिसका उपयोग लॉगकैट में खोज और फ़िल्टर करने के लिए किया जा सकता है। दूसरी वास्तविक जानकारी है जिसे लॉग किया गया है।

अंतिम अपडेट: 09.03.2017

पिछले विषय में बनाई गई मानक परियोजना में पहले से ही कुछ कार्यक्षमता है। सच है, यह कार्यक्षमता लगभग कुछ भी नहीं करती है, केवल स्ट्रिंग को प्रदर्शित करती है "हैलो वर्ल्ड!"

स्टूडियो में, डिफ़ॉल्ट रूप से, activity_main.xml फ़ाइल खुली होनी चाहिए, जिसमें एप्लिकेशन की GUI परिभाषा होती है।

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

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

आइए इस फ़ाइल में TextView तत्व की परिभाषा को बदलें, जो एक मोबाइल डिवाइस की स्क्रीन पर पाठ जानकारी प्रदर्शित करने के लिए जिम्मेदार है। वास्तविक प्रदर्शित पाठ Android: पाठ विशेषता का उपयोग करके सेट किया गया है। इसलिए, हम सभी कोड को गतिविधि_main.xml फ़ाइल में निम्नानुसार बदल देंगे:

फ़ाइल को सहेजने के बाद, हम ग्राफिक दृश्य पर स्विच कर सकते हैं और देख सकते हैं कि ग्राफिक डिजाइनर स्वचालित रूप से अपडेट हो जाएगा और उस रेखा को प्रदर्शित करेगा जिसे हमने अभी परिभाषित किया है।

फोन पर डेवलपर मोड

हम एप्लिकेशन को चलाने और परीक्षण करने के लिए एमुलेटर या वास्तविक उपकरणों का उपयोग कर सकते हैं। लेकिन आदर्श रूप से वास्तविक उपकरणों पर परीक्षण करना सबसे अच्छा है।

उपयोग के लिए मोबाइल डिवाइस एक कामकाजी मशीन पर परीक्षण करने के लिए, आपको एक ड्राइवर स्थापित करना होगा। अगर Google का स्मार्टफोन Nexus 5/6 / 5x / 6P या है Google पिक्सेल, तो इसका समर्थन करने के लिए, आपको एसडीके प्रबंधक के माध्यम से Google Usb चालक पैकेज स्थापित करना होगा। यदि डिवाइस का निर्माता एक अन्य विक्रेता है, तो आपको इस विक्रेता द्वारा आपूर्ति किए गए यूएसबी चालक को स्थापित करने की आवश्यकता है। यदि ओएस विंडोज 10 है, तो, एक नियम के रूप में, सिस्टम स्वयं अपडेट सेंटर के माध्यम से ड्राइवर को ढूंढ सकता है और इसे स्थापित कर सकता है।

डिफ़ॉल्ट रूप से, डेवलपर विकल्प स्मार्टफ़ोन पर छिपे होते हैं। उन्हें उपलब्ध कराने के लिए, आपको जाने की आवश्यकता है सेटिंग्स\u003e फोन के बारे में और सात बार दबाएं निर्माण संख्या.

पिछली स्क्रीन पर लौटें और वहां आपको एक उपलब्ध वस्तु दिखाई देगी डेवलपर विकल्प (डेवलपर के लिए).

आइटम पर चलते हैं डेवलपर्स के लिए और USB डीबगिंग सक्षम करें:

एप्लिकेशन लॉन्च

एंड्रॉइड ओएस के साथ एक डिवाइस कनेक्ट करें (यदि हम एक वास्तविक डिवाइस पर परीक्षण कर रहे हैं) और टूलबार पर हरे तीर पर क्लिक करके प्रोजेक्ट को चलाएं।

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

डिवाइस का चयन करें और ओके बटन पर क्लिक करें। और लॉन्च करने के बाद, हम डिवाइस स्क्रीन पर अपना एप्लिकेशन देखेंगे।