2012-03-07 10 views
13

मैं एंड्रॉइड प्रोग्रामिंग के लिए नया हूं और इस बारे में अपने सिर को लपेटने की कोशिश कर रहा हूं कि चीजें कैसे काम करती हैं।ऐप हटा दिए जाने पर स्क्लाइट डेटाबेस का क्या होता है

एंड्रॉइड ऐप में स्क्लाइट डेटाबेस बनाते समय, डेटाबेस कहां संग्रहीत किया जाता है? ऐप हटा दिए जाने पर इसे हटा दिया जाता है? वेब विकास पृष्ठभूमि से आने वाले लोगों के लिए एंड्रॉइड प्रोग्रामिंग को समझने में इसके बारे में कोई भी जानकारी बहुत उपयोगी होगी।

+0

यह http://developer.android.com/guide/topics/data/data-storage.html –

उत्तर

19

एसक्यूलाइट डेटाबेस केवल फाइलें हैं, और इन्हें किसी अन्य फ़ाइल की तरह माना जाता है: वे एप्लिकेशन के निजी डेटा क्षेत्र (/data/data/$PACKAGENAME/databases) में संग्रहीत (डिफ़ॉल्ट रूप से) संग्रहीत होते हैं। वे एप्लिकेशन के निजी डेटा क्षेत्र में बाकी सब कुछ के साथ हटा दिए जाते हैं।

यदि आप चाहें तो एसडी कार्ड पर डेटाबेस बना सकते हैं। वे, निश्चित रूप से, स्थापना रद्द नहीं किया जाएगा।

+4

वास्तव में पढ़ें, यदि आप स्थान के लिए 'getExternalFilesDir() 'का उपयोग करते हैं, तो भी उन्हें हटा दिया जाएगा। IOW, यह निर्भर करता है कि बाहरी संग्रहण पर आप डेटाबेस डालते हैं। – CommonsWare

+0

आपके उत्तर के लिए धन्यवाद, डेविड। तो बस यह अधिकार प्राप्त करने के लिए, वे एक फ़ाइल में बजाय MSSQL या MySQL के मामले में फ़ाइलों के रूप में संग्रहीत हैं? – Zishan

+0

मुझे नहीं पता कि एमएसएसएलएल या MySQL क्या करता है, लेकिन SQLite प्रत्येक डेटाबेस को एप्लिकेशन के नियंत्रण में एक फ़ाइल के रूप में संग्रहीत करता है। कोई केंद्रीय डेटाबेस भंडारण नहीं है। यह sqlite3 कमांड लाइन उपकरण प्राप्त करने और इसके साथ खेलने के लायक है कि यह कैसे काम करता है (और यह भी डिबगिंग के लिए उपयोगी है)। –

0

डेटाबेस /data/data/app.package.name/databases में स्थित है। आप इस फ़ोल्डर को केवल एमुलेटर या रूट डिवाइस पर एक्सेस कर सकते हैं (उदाहरण के लिए एक सुपर उपयोगकर्ता के साथ फ़ाइल एक्सप्लोरर के साथ)।

जब आप किसी ऐप सभी रिश्तेदार datas नष्ट हो जाती हैं या हटाएं (डेटाबेस शामिल है)

0

जब तक (आप) के द्वारा अन्यथा न कहा गया, क्षुधा /data/data/<appname> के तहत अपने datas रखने के लिए, और SQLite-डेटाबेस /data/data/<appname>/databases में हैं। किसी ऐप को अनइंस्टॉल करते समय, /data/data/<appname> का संपूर्ण निर्देशिका पेड़ हटा दिया जाएगा, जिसमें आपके डेटाबेस भी शामिल हैं।

+0

निर्देशिका '/ डेटा/डेटा/ऐपनाम/डेटाबेस' नहीं है - यह '/ data/data/app.package.name/डेटाबेस है –

0

आम तौर पर, डेटाबेस

/data/data/package.name.of.your.app/databases 

में संग्रहीत किया जाएगा लेकिन यह इस पर निर्भर होना एक अच्छी बात नहीं है।

File dbFile = getDatabasePath(db_name); 

और, हाँ, सामान्य रूप से पूरी निर्देशिका /data/data/package.name.of.your.app आप ऐप्स को अनइंस्टॉल अगर हटा दिया जाएगा: यह यह इस तरह के रूप ContextWrapper पर getDatabasePath का उपयोग कर, खोजने के लिए काफी बेहतर है।

0

डीबी, प्राथमिकताएं, कैश फ़ाइलें, टेम्प फ़ाइलें सभी स्थान मेमोरी में /data/data/app.package.name/ स्थान पर संग्रहीत हैं।

जब आप अपनी ऐप को अनइंस्टॉल करते हैं, तो इस ऐप के लिए संपूर्ण फ़ोन मेमोरी फ़ोल्डर पूरी तरह से हटा दिया जाएगा।

संबंधित मुद्दे