कुछ कारक हैं जो इसे प्रभावित कर सकते हैं:
एक ऐप को स्पष्ट रूप से घोषित करना चाहिए कि यह एसडी कार्ड पर स्थापित किया जाना बेहतर / संभव है।
एपीआई स्तर 8 के साथ शुरुआत करके, आप अपने आवेदन को बाहरी भंडारण पर स्थापित करने की अनुमति दे सकते हैं (उदाहरण के लिए, डिवाइस का एसडी कार्ड)। यह एक वैकल्पिक सुविधा है जिसे आप अपने आवेदन के लिए android:installLocation
घोषणा विशेषता के साथ घोषित कर सकते हैं । यदि आप इस विशेषता को घोषित नहीं करते हैं, तो आपका आवेदन केवल आंतरिक संग्रहण पर स्थापित किया जाएगा और इसे बाहरी संग्रहण में नहीं ले जाया जा सकता है ।
(जोर मेरा)
API 7 (Froyo) या लोअर का उपयोग करने के लिए एक ऐप सेट किया गया है, जो SD कार्ड पर ऐप इंस्टॉल करने का समर्थन नहीं करता है (भले ही यह जिंजरब्रेड या नए उपकरणों पर स्थापित हो)
आपके एप्लिकेशन की बाहरी संग्रहण पर स्थापित करने की क्षमता केवल API स्तर 8 (Android 2.2) या उससे अधिक चलाने वाले उपकरणों पर उपलब्ध है। मौजूदा स्तर जो कि एपीआई स्तर 8 से पहले बनाए गए थे, हमेशा आंतरिक भंडारण पर स्थापित होंगे और बाहरी भंडारण (यहां तक कि एपीआई स्तर 8 वाले उपकरणों पर भी) में स्थानांतरित नहीं किए जा सकते । हालाँकि, यदि आपका एप्लिकेशन 8 से कम API स्तर का समर्थन करने के लिए डिज़ाइन किया गया है, तो आप API स्तर 8 या अधिक वाले उपकरणों के लिए इस सुविधा का समर्थन करना चुन सकते हैं और अभी भी 8 से कम API स्तर का उपयोग करने वाले उपकरणों के साथ संगत हो सकते हैं।
(जोर मेरा)
एसडी कार्ड पर कुछ ऐप इंस्टॉल करने लायक नहीं होने के कारण निम्नलिखित हैं:
जब उपयोगकर्ता अपने कंप्यूटर के साथ फ़ाइलों को साझा करने के लिए यूएसबी मास स्टोरेज को सक्षम करता है (या अन्यथा बाहरी स्टोरेज को अनमाउंट या रिमूव करता है), बाहरी स्टोरेज पर इंस्टॉल किया गया कोई एप्लिकेशन और वर्तमान में मारा जा रहा है। सिस्टम प्रभावी रूप से एप्लिकेशन से अनजान हो जाता है जब तक कि मास स्टोरेज अक्षम नहीं हो जाता है और डिवाइस पर बाहरी स्टोरेज रिमूव हो जाता है। एप्लिकेशन को मारने और उपयोगकर्ता के लिए उपलब्ध नहीं होने के अलावा, यह कुछ प्रकार के अनुप्रयोगों को अधिक गंभीर तरीके से तोड़ सकता है। आपके आवेदन के लिए अपेक्षा के अनुसार लगातार व्यवहार करने के लिए, आपको अपने एप्लिकेशन को बाहरी संग्रहण पर स्थापित करने की अनुमति नहीं देनी चाहिए, यदि यह बाहरी सुविधाओं के अनमाउंट होने का हवाला देते हुए उद्धृत परिणामों के कारण निम्न में से किसी भी सुविधा का उपयोग करता है:
सेवाएं
Service
जब बाहरी संग्रहण हटा दिया जाता है तो आपका रनिंग मारा जाएगा और पुनः आरंभ नहीं किया जाएगा। [...]
अलार्म सेवा
आपके साथ पंजीकृत अलार्म AlarmManager
रद्द कर दिया जाएगा। [...]
इनपुट विधि इंजन
आपका IME डिफ़ॉल्ट IME द्वारा बदल दिया जाएगा। [...]
लाइव वॉलपेपर
आपके चल रहे लाइव वॉलपेपर को डिफ़ॉल्ट लाइव वॉलपेपर द्वारा बदल दिया जाएगा। [...]
ऐप विजेट्स
आपका ऐप विजेट होम स्क्रीन से हटा दिया जाएगा। जब बाहरी संग्रहण को रिमूव किया जाता है, तो आपका ऐप विजेट उपयोगकर्ता को तब तक चयन करने के लिए उपलब्ध नहीं होगा जब तक कि सिस्टम होम एप्लिकेशन को रीसेट नहीं करता (आमतौर पर सिस्टम रिबूट तक नहीं)।
एकाउंट मैनेजर्स
AccountManager
तब तक बनाए गए आपके खाते गायब हो जाएंगे, जब तक कि बाहरी संग्रहण का भुगतान नहीं किया जाएगा।
सिंक एडेप्टर
आपकी AbstractThreadedSyncAdapter
और इसकी सभी सिंक फ़ंक्शनलिटी तब तक काम नहीं करेगी, जब तक कि बाहरी स्टोरेज को रिमूव नहीं किया जाता है।
डिवाइस प्रबन्धक
आपकी DeviceAdminReceiver
और उसकी सभी व्यवस्थापक क्षमताएं अक्षम हो जाएंगी, जिससे डिवाइस की कार्यक्षमता के लिए अप्रत्याशित परिणाम हो सकते हैं, जो बाहरी भंडारण के बाद जारी रह सकता है।
"बूट पूर्ण" के लिए प्रसारण प्राप्तकर्ता सुन रहे हैं
ACTION_BOOT_COMPLETED
डिवाइस में माउंट होने से पहले बाहरी स्टोरेज को सिस्टम ब्रॉडकास्ट करता है। यदि आपका एप्लिकेशन बाहरी संग्रहण पर स्थापित है, तो यह कभी भी प्रसारण प्राप्त नहीं कर सकता है।
यदि आपका आवेदन ऊपर सूचीबद्ध किसी भी सुविधा का उपयोग करता है, तो आपको अपने आवेदन को बाहरी भंडारण पर स्थापित करने की अनुमति नहीं देनी चाहिए ।
(कुछ हिस्सों को फिर से तैयार किया गया है। वे बता रहे हैं कि एसडी कार्ड के रीमेक किए जाने के बाद डेवलपर्स को अपने ऐप को ठीक से काम करने के लिए क्या करना है।)
नोट : यह उत्तर "कुछ ऐप्स को SD कार्ड में क्यों नहीं ले जाया जा सकता है" सामान्य जानकारी के रूप में कार्य करता है
स्रोत: एंड्रॉइड डेवलपर्स: ऐप इंस्टॉल लोकेशन ।