2014-09-02 16 views
9

एंड्रॉइड में "मिनी एसडीके, लक्ष्य एसडीके और संकलन" के बीच क्या अंतर है?"मिनी एसडीके, लक्ष्य एसडीके और संकलन" के बीच क्या अंतर है? एंड्रॉइड

"न्यूनतम एसडीके, लक्ष्य एसडीके और संकलन" के बीच क्या अंतर है, जो तब दिखाई देता है जब मैं एक नया एंड्रॉइड एप्लिकेशन प्रोजेक्ट बनाने की कोशिश करता हूं !! इस तरह ..

Minimun एसडीके: एपीआई 14 लक्ष्य एसडीके: एपीआई 17 संकलित के साथ: एपीआई 14

और मेरी पसंद अच्छे हैं ?? या मुझे किसको चुनना चाहिए? क्षमा करें, मैंने एक फोटो डालने की कोशिश की, लेकिन मैं नहीं कर सकता ..

"अपने उत्तरों की प्रतीक्षा कर रहा है" plzzz = D!

+2

मैं वास्तव में पढ़ता हूं लेकिन मुझे यह अच्छी तरह से समझ में नहीं आया: (!! –

उत्तर

12

बस

Minimun एसडीके: एपीआई 14

संदर्भित करता है कि है कि आपके आवेदन केवल API स्तर 14 यानी साथ मोबाइल फोन पर चलेंगे (आईसीएस 4.0) या उच्चतर। आपका ऐप एंड्रॉइड के पिछले संस्करणों जैसे जिंजरब्रेड & फ्रॉयओ पर चलाने में विफल रहेगा।

लक्ष्य एसडीके: एपीआई 17

आप के लिए निर्माण करना चाहते हैं एंड्रॉयड के संस्करण है, जो अपने मामले पर जेलीबीन है को दर्शाता है। जहां तक ​​संभव हो सके नवीनतम रखने की अनुशंसा की जाती है (वर्तमान संदर्भ में एपीआई 20 किटकैट)।

संकलित के साथ: एपीआई 14

Andriod आप पर परीक्षण कर रहे हैं के संस्करण को दर्शाता है। एपीआई 14 के साथ शिकायत का मतलब है कि आप आईसीएस पर अपने ऐप का परीक्षण करने जा रहे हैं।

आप भी इस वीडियो को देख सकते हैं:

https://www.youtube.com/watch?v=Sxo5zMcOCXM>

+0

thaaaaaanks .. यह वही है जो मैं चाहता हूं :))! –

7

एंड्रॉयड: minSdkVersion

एक पूर्णांक एप्लिकेशन को चलाने के लिए आवश्यक न्यूनतम एपीआई स्तर तय किया। एंड्रॉइड सिस्टम उपयोगकर्ता को एपीआई लेवल इस विशेषता में निर्दिष्ट मान से कम होने पर एप्लिकेशन इंस्टॉल करने से रोक देगा। आपको हमेशा यह विशेषता घोषित करनी चाहिए।

एंड्रॉयड: targetSdkVersion

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

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

कई अनुकूलता व्यवहार हैं जो सिस्टम इस विशेषता के लिए निर्धारित मूल्य के आधार पर सक्षम हो सकते हैं। इन व्यवहारों में से कई को Build.VERSION_CODES संदर्भ में संबंधित प्लेटफ़ॉर्म संस्करणों द्वारा वर्णित किया गया है।

प्रत्येक एंड्रॉइड रिलीज के साथ अपने आवेदन को बनाए रखने के लिए, आपको नवीनतम एपीआई स्तर से मेल खाने के लिए इस विशेषता का मूल्य बढ़ाना चाहिए, फिर अपने प्लेटफ़ॉर्म संस्करण पर पूरी तरह से अपने एप्लिकेशन का परीक्षण करना चाहिए। में शुरू: एपीआई स्तर 4

एंड्रॉयड: maxSdkVersion

एक पूर्णांक अधिकतम एपीआई स्तर है जिस पर आवेदन को चलाने के लिए डिज़ाइन किया गया है में तय किया। एंड्रॉइड 1.5, 1.6, 2.0, और 2.0.1 में, सिस्टम इंस्टॉल करते समय इस विशेषता के मान की जांच करता है और सिस्टम अपडेट के बाद एप्लिकेशन को फिर से सत्यापित करते समय।किसी भी मामले में, यदि एप्लिकेशन की maxSdkVersion विशेषता सिस्टम द्वारा उपयोग किए गए API स्तर से कम है, तो सिस्टम एप्लिकेशन को स्थापित करने की अनुमति नहीं देगा। सिस्टम अपडेट के बाद पुन: सत्यापन के मामले में, यह प्रभावी रूप से डिवाइस से आपके एप्लिकेशन को हटा देता है।

अधिक जानकारी के

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

+0

आपने "संकलन" के बारे में जवाब नहीं दिया। – Kidburla

1

संक्षेप में के लिए इस लिंक के माध्यम से जाने के लिए कृपया, यहाँ minSDK से एक अलग targetSDK की घोषणा करने के लिए उद्देश्य है: इसका मतलब है कि आप की तुलना में एक उच्च स्तर एसडीके की विशेषताओं का उपयोग कर रहे हैं अपने न्यूनतम, लेकिन आपके पास पिछड़ा संगतता सुनिश्चित किया गया है। दूसरे शब्दों में, कल्पना करें कि आप एक ऐसी सुविधा का उपयोग करना चाहते हैं जिसे हाल ही में पेश किया गया था, लेकिन यह आपके आवेदन के लिए महत्वपूर्ण नहीं है। फिर आप लक्ष्य एसडीके को उस संस्करण में सेट करेंगे जहां यह नई सुविधा पेश की गई थी और कम से कम कुछ कम ताकि प्रत्येक व्यक्ति आपके ऐप का उपयोग कर सके।

उदाहरण देने के लिए, मान लें कि आप एक ऐप लिख रहे हैं जो इशारा पहचान का व्यापक उपयोग करता है। हालांकि, प्रत्येक आदेश जिसे एक इशारा द्वारा पहचाना जा सकता है उसे बटन या मेनू से भी किया जा सकता है। इस मामले में, इशारे एक 'शांत अतिरिक्त' हैं लेकिन इसकी आवश्यकता नहीं है। इसलिए आप लक्ष्य एसडीके को 7 ("एक्लेयर" सेट करेंगे जब जेस्चरडिटेक्शन लाइब्रेरी पेश की गई थी), और न्यूनतम एसडीके स्तर 3 ("कपकेक") ताकि वास्तव में पुराने फोन वाले लोग भी आपके ऐप का उपयोग कर सकें। आपको बस इतना करना होगा कि आपके ऐप ने एंड्रॉइड के संस्करण की जांच की है, यह इशारा लाइब्रेरी का उपयोग करने से पहले चल रहा था, अगर इसका अस्तित्व नहीं था तो इसका उपयोग करने से बचने के लिए। (माना जाता है कि यह एक दिनांकित उदाहरण है क्योंकि शायद ही कभी किसी के पास v1.5 फोन है, लेकिन एक समय था जब v1.5 के साथ संगतता बनाए रखना वास्तव में महत्वपूर्ण था।)

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

इस सुविधा का उपयोग करने के तरीके के बारे में Android developer's blog से वास्तव में एक अच्छा लेख है, और विशेष रूप से, ऊपर वर्णित कोड "इसका उपयोग करने से पहले सुविधा जांचें" कोड को कैसे डिज़ाइन किया जाए।

ओपी को: मैंने इसे मुख्य रूप से भविष्य में इस प्रश्न पर ठोकर खाने वाले किसी भी व्यक्ति के लाभ के लिए लिखा है, क्योंकि मुझे पता है कि आपका प्रश्न बहुत समय पहले पूछा गया था। here is the Post

0

एंड्रॉयड: minSdkVersion एक पूर्णांक एप्लिकेशन को चलाने के लिए आवश्यक न्यूनतम एपीआई स्तर तय किया। एंड्रॉइड सिस्टम उपयोगकर्ता को एपीआई लेवल इस विशेषता में निर्दिष्ट मान से कम होने पर एप्लिकेशन इंस्टॉल करने से रोक देगा। आपको हमेशा यह विशेषता घोषित करनी चाहिए। सावधानी: यदि आप इस विशेषता की घोषणा नहीं करते हैं, तो सिस्टम "1" का डिफ़ॉल्ट मान मानता है, जो इंगित करता है कि आपका एप्लिकेशन एंड्रॉइड के सभी संस्करणों के साथ संगत है। यदि आपका एप्लिकेशन सभी संस्करणों के साथ संगत नहीं है (उदाहरण के लिए, यह एपीआई स्तर 3 में पेश किए गए एपीआई का उपयोग करता है) और आपने उचित minSdkVersion घोषित नहीं किया है, तो जब 3 से कम एपीआई स्तर वाले सिस्टम पर स्थापित किया जाता है, तो एप्लिकेशन क्रैश हो जाएगा अनुपलब्ध एपीआई तक पहुंचने का प्रयास करते समय रनटाइम। इस कारण से, minSdkVersion विशेषता में उचित API स्तर घोषित करने के लिए निश्चित रहें।

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

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

कई अनुकूलता व्यवहार हैं जो सिस्टम इस विशेषता के लिए निर्धारित मूल्य के आधार पर सक्षम हो सकते हैं। इन व्यवहारों में से कई को Build.VERSION_CODES संदर्भ में संबंधित प्लेटफ़ॉर्म संस्करणों द्वारा वर्णित किया गया है।

प्रत्येक एंड्रॉइड रिलीज के साथ अपने आवेदन को बनाए रखने के लिए, आपको नवीनतम एपीआई स्तर से मेल खाने के लिए इस विशेषता का मूल्य बढ़ाना चाहिए, फिर अपने प्लेटफ़ॉर्म संस्करण पर पूरी तरह से अपने एप्लिकेशन का परीक्षण करना चाहिए।

में शुरू: एपीआई स्तर 4

एंड्रॉयड: maxSdkVersion एक पूर्णांक अधिकतम एपीआई स्तर है जिस पर आवेदन को चलाने के लिए डिज़ाइन किया गया है में तय किया। एंड्रॉइड 1.5, 1.6, 2.0, और 2.0.1 में, सिस्टम इंस्टॉल करते समय इस विशेषता के मान की जांच करता है और सिस्टम अपडेट के बाद एप्लिकेशन को फिर से सत्यापित करते समय। किसी भी मामले में, यदि एप्लिकेशन की maxSdkVersion विशेषता सिस्टम द्वारा उपयोग किए गए API स्तर से कम है, तो सिस्टम एप्लिकेशन को स्थापित करने की अनुमति नहीं देगा। सिस्टम अपडेट के बाद पुन: सत्यापन के मामले में, यह प्रभावी रूप से डिवाइस से आपके एप्लिकेशन को हटा देता है।

इसे समझने के लिए कैसे इस विशेषता, निम्न उदाहरण सिस्टम अपडेट के बाद आपके आवेदन को प्रभावित करने पर विचार कर सकते हैं:

उसके मेनिफ़ेस्ट में maxSdkVersion घोषित = "5" एप्लिकेशन के लिए Google पर प्रकाशित हुआ है खेलते हैं। एक उपयोगकर्ता जिसका डिवाइस एंड्रॉइड 1.6 (एपीआई लेवल 4) डाउनलोड कर रहा है और ऐप इंस्टॉल करता है। कुछ हफ्तों के बाद, उपयोगकर्ता को एंड्रॉइड 2.0 (एपीआई लेवल 5) में ओवर-द-एयर सिस्टम अपडेट प्राप्त होता है। अद्यतन स्थापित होने के बाद, सिस्टम एप्लिकेशन के maxSdkVersion की जांच करता है और इसे सफलतापूर्वक पुनः सत्यापित करता है। आवेदन सामान्य के रूप में कार्य करता है। हालांकि, कुछ समय बाद, डिवाइस को एंड्रॉइड 2.0.1 (एपीआई लेवल 6) में एक और सिस्टम अपडेट प्राप्त हुआ। अद्यतन के बाद, सिस्टम अब एप्लिकेशन को फिर से मान्य नहीं कर सकता क्योंकि सिस्टम का अपना एपीआई लेवल (6) अब एप्लिकेशन द्वारा समर्थित अधिकतम (5) से अधिक है। सिस्टम एप्लिकेशन को डिवाइस से इसे हटाने में, उपयोगकर्ता को दृश्यमान होने से रोकता है।

चेतावनी: इस विशेषता को घोषित करने की अनुशंसा नहीं की जाती है। सबसे पहले, एंड्रॉइड प्लेटफ़ॉर्म के नए संस्करणों पर रिलीज़ होने पर आपके एप्लिकेशन की तैनाती को अवरुद्ध करने के साधन के रूप में विशेषता सेट करने की आवश्यकता नहीं है। डिजाइन द्वारा, मंच के नए संस्करण पूरी तरह पिछड़े-संगत हैं। आपके आवेदन को नए संस्करणों पर ठीक से काम करना चाहिए, बशर्ते यह केवल मानक एपीआई का उपयोग करे और विकास सर्वोत्तम प्रथाओं का पालन करें। दूसरा, ध्यान दें कि कुछ मामलों में, विशेषता घोषित करने के परिणामस्वरूप सिस्टम एप्लिकेशन को उच्च API स्तर पर सिस्टम अपडेट के बाद आपके एप्लिकेशन को हटा दिया जा सकता है।अधिकांश डिवाइस जिन पर आपका एप्लिकेशन इंस्टॉल होने की संभावना है, वे हवा पर आवधिक सिस्टम अपडेट प्राप्त करेंगे, इसलिए आपको इस विशेषता को सेट करने से पहले अपने आवेदन पर उनके प्रभाव पर विचार करना चाहिए।

में शुरू: एपीआई स्तर एंड्रॉयड के 4

भावी संस्करण (एंड्रॉयड 2.0.1 परे) नहीं रह गया है की जाँच करें या स्थापना के दौरान maxSdkVersion विशेषता लागू करने या पुन: सत्यापित करने होंगे। Google Play एक फ़िल्टर के रूप में विशेषता का उपयोग जारी रखेगा, हालांकि, उपयोगकर्ताओं को डाउनलोड के लिए उपलब्ध एप्लिकेशन के साथ पेश करते समय।

इस बारे में अधिक देखें, यहाँ क्लिक करें: use sdk

3

इसे सरल रखने के लिए संभव के रूप में मैं निम्नलिखित तरीके से इन तीनों शब्दों में व्याख्या कर सकते हैं की कोशिश कर रहा:

मिन आवश्यक एसडीके: शो न्यूनतम एंड्रॉइड संस्करण वाला डिवाइस जिसे आप अपने ऐप को समर्थन देना चाहते हैं। तो उदाहरण के लिए, यदि आप एपीआई 11 का चयन करते हैं: ड्रॉप डाउन सूची में हनी कंघी। यह दिखाएगा कि आपका ऐप किसी भी एंड्रॉइड डिवाइस पर हनी कंघी से कम एंड्रॉइड संस्करण वाले समर्थन/समर्थन नहीं करेगा।

लक्ष्य एसडीके: इसे हमेशा जितना संभव हो उतना उच्च रखा जाना चाहिए क्योंकि यह आपके द्वारा लक्षित या आपके ऐप का परीक्षण करने वाले अधिकतम एंड्रॉइड संस्करण को बताता है। इसलिए, यदि आप अपना मिनीआरईसीएसडीके >> 11 (शहद कंघी) और लक्ष्य एसडीके >> 21 (लॉलीपॉप) रखते हैं, तो इससे पता चलता है कि आपका ऐप हनीकॉम से लॉलीपॉप तक सभी एंड्रॉइड संस्करणों पर चलाएगा क्योंकि कोई भी संगतता समस्या नहीं है क्योंकि आपने अपना लक्ष्य एसडीके सेट किया है> > 21 लॉलीपॉप संस्करण।

संकलित करें: इसमें एंड्रॉइड के साथ कुछ भी डिवाइस का समर्थन करने के लिए कुछ भी नहीं है। आप विकास के उद्देश्य के लिए अपने ऐप को संकलित और चलाने के लिए अपने एसडीके प्रबंधक का उपयोग करके स्थापित किसी भी एंड्रॉइड संस्करण को चुन सकते हैं।

आपके मामले में: मिनट SDK वर्शन: 14 लक्ष्य एसडीके: 17 साथ संकलन: 14

आपकी डिवाइस एपीआई स्तर 17 के लिए सभी Android संस्करण होने एपीआई स्तर 14 (आइस क्रीम सैंडविच) का समर्थन करेंगे (जेली बीन 4.2)। और आप विकास के लिए अपने ऐप को संकलित और चलाने के लिए एपीआई स्तर 14 (आईसीएस) का उपयोग कर रहे हैं।

उम्मीद है कि इससे मदद मिलती है।

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