Android पर निजी डेटा तक पहुँचें

आधिकारिक डेवलपर प्रलेखन के अनुसार, यहां Android पर डेटा स्टोरेज के विकल्प हैं:

  • साझा प्राथमिकताएं - कुंजी-मूल्य जोड़े में निजी आदिम डेटा संग्रहीत करें।
  • इंटरनल स्टोरेज - डिवाइस मेमोरी पर निजी डेटा स्टोर करें।
  • बाहरी संग्रहण - साझा बाहरी संग्रहण पर सार्वजनिक डेटा संग्रहीत करें।
  • SQLite डेटाबेस - एक निजी डेटाबेस में संरचित डेटा को स्टोर करें।
  • नेटवर्क कनेक्शन - अपने स्वयं के नेटवर्क सर्वर के साथ वेब पर डेटा स्टोर करें।

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

निजी फ़ाइलों तक पहुँचें

एक एमुलेटर या रूटेड डिवाइस पर

यदि आप एमुलेटर या रूटेड डिवाइस चला रहे हैं। आपके पास डिवाइस के निजी भंडारण तक पहुंच होनी चाहिए। आप Android Studio GUI से या कमांड लाइन के माध्यम से फ़ाइलों तक पहुँच सकते हैं:

  • GUI - एंड्रॉइड स्टूडियो में, मेनू से एंड्रॉइड डिवाइस मॉनिटर लॉन्च करें: टूल / एंड्रॉइड / एंड्रॉइड डिवाइस मॉनिटर। फ़ाइल एक्सप्लोरर टैब पर नेविगेट करें, फिर डेटा / डेटा / <आपके ऐप पैकेज का नाम> /। वह फ़ाइल ढूंढें जिसे आप ढूंढ रहे हैं, और आप फ़ाइल को वहां से धकेल सकते हैं और खींच सकते हैं।
  • कमांड लाइन - आप फ़ाइल को डिवाइस पर पुश कर सकते हैं या फ़ाइल को डिवाइस से adb के माध्यम से खींच सकते हैं:
adb पुल रिमोट- dir लोकल-dir <- डिवाइस से लोकल मशीन में कॉपी करें
adb पुश लोकल-डीर रिमोट-डीआईआर <- लोकल मशीन से डिवाइस पर कॉपी करें

एक गैर-निहित डिवाइस पर

यदि आप एमुलेटर या रूटेड डिवाइस पर नहीं चल रहे हैं। कमांड लाइन से:

अदब का खोल
रन-के रूप में <ऐप-पैकेज-नाम> एफ
सीडी डेटा / डेटा / ...

अब आप डिवाइस के आंतरिक संग्रहण पर फ़ाइलों तक पहुंच सकते हैं। शेल से बाहर निकलने के लिए, बाहर निकलें टाइप करें।

बाहर निकलें <- adb शेल से बाहर निकलें

Sqlite डेटाबेस फ़ाइल

एक बार जब आप किसी एमुलेटर, रूट किए गए डिवाइस पर या एडीबी शेल / रन के रूप में [पैकेज नाम] पर SQLite डेटाबेस फ़ाइल का उपयोग करने में सक्षम होते हैं, तो डिवाइस पर स्कीमा और आपके SQLite डेटाबेस का निरीक्षण करने के लिए कुछ विकल्प हैं।

GUI उपकरण के माध्यम से SQLite db का निरीक्षण करें

फ़ाइल को पहले डिवाइस से खींचें, फिर स्कीमा और सामग्री देखने के लिए GUI सॉफ़्टवेयर का उपयोग करें। मैं SQLite ब्राउज़र का उपयोग करता हूं जो आपको डेटाबेस स्कीमा, तालिका सामग्री, साथ ही कुछ सरल SQL स्क्रिप्ट निष्पादित करने की अनुमति देता है।

Sqlite3 कमांड लाइन टूल के माध्यम से SQLite db का निरीक्षण करें

मेरे लिए आसान विकल्प यह है कि आप adb शेल से डेटाबेस का निरीक्षण करने के लिए sqlite3 कमांड लाइन टूल का उपयोग करें -

अदब का खोल
सीडी डेटा / डेटा / <अपने पैकेज-नाम> / डेटाबेस /
sqlite3 
.tables
.schema 

वैकल्पिक रूप से आप डिवाइस से डेटाबेस फ़ाइल खींचने के बाद, शेल के भीतर स्थानीय रूप से sqlite3 का उपयोग कर सकते हैं:

adb पुल 
sqlite3 

ऐप डेटा को मिटा देना

इसलिए जब आप Android पर SharedPreferences या SQLite db के साथ काम करते हैं, तो आपको अक्सर डेटा को मिटा देने और शुरू करने की आवश्यकता होती है। तो यहाँ कुछ विकल्प हैं:

  • ऐप को अनइंस्टॉल और रीइंस्टॉल करें
  • डिवाइस सेटिंग्स / एप्स पर जाएं / अपना एप ढूंढें और उस पर क्लिक करें / स्टोरेज / क्लियर डाटा

आपके विकास और डिबगिंग प्रक्रिया की सहायता करने के लिए एक बहुत आसान तरीका है: ADB Idea नामक एक एंड्रॉइड स्टूडियो प्लग-इन स्थापित करें। प्लग-इन इंस्टॉल करने के लिए, Android Studio / Preferences / प्लगइन्स पर जाएं, ब्राउज़ रिपॉजिटरी पर क्लिक करें और "ADB Idea" खोजें। एंड्रॉइड स्टूडियो को इंस्टॉल और पुनरारंभ करें और आपको टूल / एंड्रॉइड / एडीबी आइडिया के तहत प्लग-इन विकल्प दिखाई देगा। कोशिश करो। मुझे यह प्लगइन सुपर उपयोगी लगता है जब मुझे ऐप डेटा को मिटाने की आवश्यकता होती है।

एक पुस्तकालय का उपयोग करें

लाइब्रेरी का उपयोग करके एंड्रॉइड डिवाइसों पर निजी फ़ाइलों तक पहुंचने और निरीक्षण करने के लिए अन्य विकल्प हैं।

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

यदि आप डेटाबेस और शेयर्डप्रिफरेंस के अलावा नेटवर्क कनेक्शन का निरीक्षण करना चाहते हैं, तो स्टेथो को फेसबुक से विकसित एक ओपन सोर्स डिबगिंग टूल का उपयोग करें। स्टेथो का उपयोग करते समय, आपके ऐप को डिबग मोड में होना चाहिए लेकिन रूट एक्सेस की कोई आवश्यकता नहीं है। यह एक शक्तिशाली उपकरण है जो आपको Chrome डेवलपर टूल का उपयोग करके अपने ऐप को डीबग करने की अनुमति देता है।