2012-02-08 13 views
27

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

अद्यतन: मैं वास्तव में न बाहरी भंडारण के बारे में परवाह के बाद से हमेशा डिवाइस में उपलब्ध नहीं है और बदला जा सकता है (एसडी कार्ड) और मैं internal storage using this के लिए जांच कर सकता है, लेकिन यह नहीं क्या मैं जानना चाहता हूँ है, क्या मैं करना चाहते हैं पता है कि उपकरण के लिए आंतरिक भंडारण के लिए आवंटित स्मृति आकार है या नहीं?

+4

यदि आपके पास * JSON * फ़ाइल है जिसे आप चिंतित हैं तो बहुत बड़ा हो सकता है, आप इसे गलत कर रहे हैं। – CommonsWare

+2

मैं _oo big_ होने वाली फ़ाइल के बारे में चिंतित नहीं हूं, मुझे चिंता है कि ऐप के लिए छोड़ा गया आंतरिक संग्रहण _too small_ – Jimmy

उत्तर

35

यदि आप अपनी जेसन फ़ाइल के लिए स्थान के रूप में Environment.getExternalStorageDirectory() (या Context.getExternalFilesDir() एपीआई स्तर 8 और ऊपर) का उपयोग करते हैं, तो मेरा मानना ​​है कि आकार बाहरी संग्रहण (आमतौर पर एक एसडी कार्ड) में उपलब्ध स्थान से सीमित होगा। अधिकांश उपकरणों के लिए, मेरा मानना ​​है कि बाहरी फ़ाइल भंडारण के लिए एंड्रॉइड में कोई निश्चित सीमा नहीं है। (आंतरिक भंडारण एक अलग मामला है। डिवाइस निर्माता सभी अनुप्रयोगों के बीच 100 एमबी के रूप में कम प्रतिबंध लगा सकते हैं।)

अद्यतन: ध्यान दें कि compatibility definition for Android 2.3 (धारा 7.6.1) के अनुसार, डिवाइसों में काफी होना चाहिए कुछ स्मृति:

डिवाइस कार्यान्वयन में कम से कम 150 एमबी गैर-अस्थिर भंडारण उपयोगकर्ता डेटा के लिए उपलब्ध होना चाहिए। यही है,/डेटा विभाजन कम से कम 150 एमबी होना चाहिए।

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

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

संपादित: compatibility definition for Android 4.0

डिवाइस कार्यान्वयन से The Must उपयोगकर्ता डेटा के लिए कम से कम 350 एमबी गैर-अस्थिर भंडारण उपलब्ध है। यही है,/डेटा विभाजन कम से कम 350 एमबी होना चाहिए।

compatibility definition for Android 4.3

डिवाइस कार्यान्वयन से करना चाहिए नॉन-वोलाटाइल उपयोगकर्ता डेटा के लिए उपलब्ध भंडारण के कम से कम 512MB की है। यही है,/डेटा विभाजन कम से कम 512 एमबी होना चाहिए।

दिलचस्प बात यह है कि कार्यान्वयन कि कम से कम 1 जीबी प्रदान करना चाहिए, वही रहा है।

+0

प्रश्न अपडेट किया गया है। – Jimmy

+0

@ जिमी - हम यहां कितनी बड़ी फाइल कर रहे हैं? –

+0

फ़ाइल बड़ी नहीं है वास्तव में केबी के जोड़े को कहने देती है लेकिन बात यह है कि ओएस कुछ मामलों में मेरे ऐप के लिए कुछ भी आरक्षित नहीं करेगा, फिर भी छोटी फाइलें एक समस्या होगी। – Jimmy

13

मैंने कभी भी इसे एक ही एप्लिकेशन को सीमित नहीं देखा है, और मैंने ऐप फ़ाइलों में पहले कुछ बड़ी (200 एमबी) वीडियो फ़ाइलों को सहेजने के साथ इसका परीक्षण किया है।

आंतरिक भंडारण के लिए मुझे लगता है कि आपके द्वारा साझा किए जाने वाले सभी अनुप्रयोगों के लिए उपलब्ध आंतरिक संग्रहण की मात्रा केवल सीमित है। जो @Ted Hopp का उल्लेख किया गया है, पुराने और निचले अंत उपकरणों में से कुछ पर छोटा है। लेकिन नए और उच्च अंत उपकरणों पर उन्होंने इसे उचित मात्रा में बांटना शुरू कर दिया है, भले ही डिवाइस में बहुत सी जगह हो, फिर भी इसे अन्य अनुप्रयोगों द्वारा लिया जा सकता है (इसलिए आपको यह जांचने की आवश्यकता है कि इसमें क्या होगा यह परिदृश्य)।

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

तो यदि आप ऐसी जानकारी संग्रहीत कर रहे हैं जो आप चाहते हैं उपयोगकर्ता के पास मैन्युअल रूप से संपादित करने का विकल्प नहीं है, तो आप इसे ध्यान में रखना चाह सकते हैं।

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