साझा प्राथमिकताएँ कहाँ संग्रहीत हैं?


147

जहां एक ग्रहण परियोजना में एक साझा प्राथमिकताएं फ़ाइल का सामना कर सकता है?


मुझे पता है कि साझा प्राथमिकता.एक्सएमएल डेटा में संग्रहीत है, लेकिन इसे स्थापित होने से पहले कहाँ संग्रहीत किया जाता है; इनसाली प्रारूप?
शरथ 3589

जवाबों:


241

SharedPreferences ऐप डेटा फ़ोल्डर में एक xml फ़ाइल में संग्रहीत किया जाता है, अर्थात

/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

या डिफ़ॉल्ट प्राथमिकताएँ:

/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PACKAGE_NAME_preferences.xml

रनटाइम के दौरान जोड़े गए SharedPreferences ग्रहण परियोजना में संग्रहीत नहीं हैं।

नोट: एक्सेस करने के /data/data/<package_name>लिए सुपरसुसर विशेषाधिकारों की आवश्यकता होती है


3
डिफ़ॉल्ट साझा प्राथमिकताएं फ़ाइल वास्तव में होगी /data/data/<package>/shared_prefs/<package>_preferences.xml:।
इजारुक

@inazaruk यह वास्तव में पूर्ण पैकेज नाम है, हालांकि मुझे उपकरणों पर /<package>_preferences.xmlऔर उनके मिश्रित उपयोग दिखाई देते हैं /<package>.xml। शायद यह ऐप के एपीआई स्तर पर निर्भर करता है?
अलिदम

1
ध्यान दें कि मैं डिफ़ॉल्ट साझा प्राथमिकताओं के बारे में ले रहा था । ऐसा लगता है कि फ़ाइलनाम उनके लिए हमेशा समान था। प्रारंभिक कार्य के लिए देखें PreferenceManager.java, getDefaultSharedPreferencesयहाँ कार्य करें: android.git.kernel.org/?p=platform/frameworks/… । और इसे नवीनतम संस्करण में PrefencesManager.javeभी नहीं बदला गया था : android.git.kernel.org/?p=platform/frameworks/…
inazaruk

सिस्टम से रास्ता पाने का कोई तरीका, और हार्ड-कोड नहीं? ContextImpl.java इसे निजी getPreferencesDir func में लागू करता है, यह किसी भी समय रनटाइम पर प्राप्त करना उपयोगी होगा।
प्वाइंटर नल

आप नए FILE (Reference.getFilesDir ()। GetParent (), "shared_prefs") का उपयोग कर सकते हैं। यह नेक्सस 5 पर काम करता है, अन्य मैन्युफैक्चरर्स के बारे में निश्चित नहीं है।
gswierczynski

9

वरीयताएँ या तो कोड में सेट की जा सकती हैं या उन्हें res / xml / वरीयताओं में पाया जा सकता है। xml। आप एंड्रॉइड एसडीके वेबसाइट पर वरीयताओं के बारे में अधिक पढ़ सकते हैं।


4
आपको इसे बनाना होगा - जब तक आपने एंड्रॉइड प्रोजेक्ट बनाया है, तब तक आप "रिस" डायरेक्टरी पर राइट क्लिक कर सकते हैं और 'xml' नामक एक नया फ़ोल्डर जोड़ सकते हैं। अन्य "विशेष" फ़ोल्डर्स एनीमेशन, ड्रॉएबल, लेआउट, मेनू, कच्चे और मान हैं।
जसकव

6

बस आप में से कुछ को बचाने के लिए ...

मेरी गैलेक्सी S v.2.3.3 पर साझा प्राथमिकताएँ संग्रहीत नहीं हैं:/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

लेकिन अब इसमें स्थित हैं: /dbdata/databases/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

मेरा मानना ​​है कि उन्होंने इसे 2.3 में बदल दिया


1
क्या यह 2.2 में समान है? मैं अपनी परियोजना में कहीं भी ग्रहण / परियोजना स्थान पर डेटा फ़ाइल नहीं ढूंढ सकता / सकती हूं।
प्रमोद

@pramod ग्रहण में नहीं - यह वास्तविक डिवाइस फ़ाइल संरचना पर पथ है।
रिचर्ड ले मेसियर

@ प्रमोद इसे फ़ाइल एक्सप्लोरर दृश्य में देखते हैं और वहां/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml
अखिल जैन

2
/dbdata/मेरी जेबी डिवाइस पर मौजूद नहीं है
rekire

6

मैंने इस तरह से नीचे साझा प्राथमिकताओं का रास्ता निकालने की कोशिश की। यह मेरे लिए काम कर रहा है।

File f = getDatabasePath("MyPrefsFile.xml");

if (f != null)
    Log.i("TAG", f.getAbsolutePath());

5

डेटा आपके एप्लिकेशन के निजी डेटा क्षेत्र में, डिवाइस पर संग्रहीत होता है। यह एक ग्रहण परियोजना में नहीं है।


3

साझा प्राथमिकताएं वे महत्वपूर्ण / मूल्य जोड़े हैं जिन्हें हम संग्रहीत कर सकते हैं। वे आंतरिक प्रकार के भंडारण हैं जिसका अर्थ है कि हमें इसे संग्रहीत करने के लिए बाहरी डेटाबेस बनाने की आवश्यकता नहीं है। इसे देखने के लिए, 1) मेनू बार में व्यू पर जाएं। टूल विंडोज का चयन करें। 2) डिवाइस फ़ाइल एक्सप्लोरर पर क्लिक करें। 3) डिवाइस फाइल एक्सप्लोरर राइट हैंड साइड में खुलता है। 4) डेटा फ़ोल्डर ढूंढें और उस पर क्लिक करें। 5) डेटा फ़ोल्डर में, आप एक और डेटा फ़ोल्डर का चयन कर सकते हैं। 6) इस डेटा फ़ोल्डर में अपने पैकेज का नाम खोजने की कोशिश करें। Ex: com.example.com 7) उसके बाद share_prefs पर क्लिक करें और .xml फ़ाइल खोलें।

उम्मीद है की यह मदद करेगा!


1

उपयोग http://facebook.github.io/stetho/ साथ क्रोम उपकरण का निरीक्षण पुस्तकालय को अपने ऐप्लिकेशन के स्थानीय भंडारण तक पहुँचने के लिए। आप स्थानीय भंडारण -> <अपने ऐप के पैकेज नाम> के तहत साझाकरण फ़ाइल पा सकते हैं

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.