2015-11-26 3 views
6

मुझे इस बात का चिंता है कि मुझे compileSdkVersion, minSdkVersion, और targetSdkVersion को सेट करना चाहिए।मैं compileSdkVersion, minSdkVersion, और targetSdkVersion के लिए क्या सेट करना चाहिए?

  1. सब से पहले मेरी चिंता का विषय है कि अगर मैं सेट compileSdkVersion 23 होने के लिए जो अभी नवीनतम है, पुराने उपकरण इसे चलाने के लिए सक्षम हो जाएगा है?

  2. मुझे यह कैसे पता चलेगा कि मेरे minSdkVersion को यह सुनिश्चित करने के लिए क्या होना चाहिए कि कम एपीआई या संस्करण चलाने वाला फ़ोन इसे एक्सेस करने में असमर्थ हो (मैं न्यूनतम एसडीके बहुत अधिक सेट नहीं करना चाहता क्योंकि यह फोन को अवरुद्ध करेगा जो संभावित रूप से ऐप चला सकता है)?

  3. मुझे अपना targetSdkVersion कैसे सेट करना चाहिए?

उत्तर

9

मैं compileSdkVersion सेट 23 होने के लिए जो अभी नवीनतम है, पुराने उपकरण इसे चलाने के लिए सक्षम हो जाएगा?

हां। compileSdkVersion पर अपने आप से कोई संबंध नहीं है कि कौन से डिवाइस आपके ऐप को चला सकते हैं और नहीं चला सकते हैं। आमतौर पर, आप इसे एंड्रॉइड एसडीके का नवीनतम संस्करण मानते हैं।

मुझे यह कैसे सुनिश्चित करने के लिए मेरा minSdkVersion होना चाहिए कि यह सुनिश्चित करने के लिए कि कम एपीआई या संस्करण चलाने वाला फ़ोन इसे एक्सेस करने में असमर्थ हो?

अक्सर, जब आप अपने minSdkVersion से नया कुछ उपयोग करने का प्रयास करते हैं तो विकास उपकरण आपको फ्लाई पर चेतावनी देंगे। आप समय-समय पर पुन: पुष्टि करने के लिए एक पूर्ण लिंट चेक चला सकते हैं।

मुझे अपना लक्ष्य एसडीके कैसे सेट करना चाहिए?

किसी और चीज को चुनने के किसी विशेष कारण की अनुपस्थिति में, जब मैं अपनी परियोजना (उदाहरण के लिए, 22 या 23 अब) बनाता हूं तो मैं आमतौर पर नवीनतम या नवीनतम-नवीनतम मूल्य चुनता हूं। targetSdkVersion पीछे की संगतता के साथ मदद करता है, और आमतौर पर मेरा विवरण है "यह एंड्रॉइड का संस्करण है कि आप उस समय सोच रहे थे जब आप कोड लिख रहे थे"।

+0

संक्षिप्त उत्तर के लिए धन्यवाद लेकिन मेरे पास सिर्फ एक आखिरी सवाल है कि मैं "एक पूर्ण लिंट चेक" कैसे चला सकता हूं? मैं किस बटन को दबाता हूं? – Wowzer

+0

@Wowzer: यदि आप एंड्रॉइड स्टूडियो का उपयोग कर रहे हैं, तो लिंट चेक विश्लेषण> निरीक्षण कोड के हिस्से के रूप में किया जाता है। – CommonsWare

2

minSdkVersion: यह वह जगह है न्यूनतम API स्तर आपके आवेदन अनुप्रयोग चलाने के लिए की जरूरत है (यानी आप एपीआई स्तर पर यह सेट करता है, तो 16 (Jelly Bean) और फिर अपने ऐप API स्तर पर नहीं चल सकता 15 (IceCreamSandwitch)) । असल में Google Play आपके ऐप को आपके minSdkVersion API स्तर से कम API स्तर पर चल रहे फ़ोन पर नहीं दिखाएगा। एपीआई स्तर 15 (IceCreamSandwitch) का उपयोग करना 90% से अधिक एंड्रॉइड फोन को कवर करता है।

targetSdkVersion: एपीआई स्तर जिसके लिए आप अपना ऐप चलाने के लिए डिज़ाइन करते हैं। सिफ़ारिश नवीनतम संस्करण (वर्तमान 26 पर - ओ) का उपयोग है

compileSdkVersion: एपीआई स्तर पर आप (आपके ऐप्लिकेशन संकलित करने के लिए यदि आप 26 की एपीआई स्तर की सुविधाओं का उपयोग करना चाहता हूँ तो आप 26 उपयोग करने के लिए, कम संस्करण होगा की जरूरत है आपको त्रुटि दें)। एंड्रॉइड पिछड़ा संगतता का समर्थन करता है (यानी 23 पर संकलित ऐप एपीआई स्तर 22 या उससे कम वाले फोन पर भी चला सकता है)। तो आपके पहले प्रश्न का उत्तर हाँ है।अनुशंसा नवीनतम संस्करण का उपयोग करना है (वर्तमान में 26 - ओ)

5

Google ने अभी इनके बारे में detailed article पोस्ट किया है। संक्षेप में:

compileSdkVersion Gradle बताने के लिए Android SDK का कौन सा संस्करण के साथ अपने ऐप को संकलित करने के लिए अपना रास्ता है। नए एंड्रॉइड एसडीके का उपयोग करना उस स्तर में जोड़े गए किसी भी नए एपीआई का उपयोग करने की आवश्यकता है। यह जोर दिया जाना चाहिए कि आपके संकलन को बदलना SdVVersion रनटाइम व्यवहार नहीं बदलता है। जबकि नई कंपाइलर चेतावनियां/त्रुटियां आपके compileSdkVersion को बदलते समय मौजूद हो सकती हैं, आपके compileSdkVersion को आपके एपीके में शामिल नहीं किया गया है: यह पूरी तरह संकलन समय पर उपयोग किया जाता है।

अगर संकलन एसडीकेवर्सन आपके लिए उपलब्ध नवीनतम एपीआई सेट करता है, minSdkVersion आपके ऐप के लिए निचला बाध्य है। MinSdkVersion Google Play Store का उपयोग यह संकेत करने के लिए करता है कि किसी उपयोगकर्ता के डिवाइस पर कौन से ऐप इंस्टॉल किए जा सकते हैं। यह विकास के दौरान एक महत्वपूर्ण भूमिका निभाता है: डिफ़ॉल्ट रूप से लिंट आपके प्रोजेक्ट के खिलाफ चलता है, जब आप अपने minSdkVersion के ऊपर किसी भी एपीआई का उपयोग करते हैं तो आपको चेतावनी देते हैं, जो कि एपीआई को कॉल करने का प्रयास करने के रनटाइम मुद्दे से बचने में आपकी मदद करता है। रनटाइम पर सिस्टम संस्करण की जांच करना एक सामान्य तकनीक है जब केवल नए प्लेटफार्म संस्करणों पर एपीआई का उपयोग किया जाता है।

हालांकि, तीनों में से सबसे दिलचस्प लक्ष्य एसडीकेवर्सन है। targetSdkVersion मुख्य तरीका है एंड्रॉइड व्यवहार परिवर्तन लागू नहीं कर रहा है जब तक लक्ष्यSdkVersion अद्यतन नहीं किया जाता है। व्यवहार परिवर्तनों के माध्यम से काम करने से पहले यह आपको नए एपीआई का उपयोग करने की अनुमति देता है (जैसा आपने अपना संकलन एसडीवीवर्सन सही किया है?)।

+0

एक निष्कर्ष के रूप में, आलेख से: _minSdkVersion <= targetSdkVersion <= compileSdkVersion_ लेकिन ऐसा करने का सबसे अच्छा तरीका यह है: ** minSdkVersion (सबसे कम संभव) <= targetSdkVersion == compileSdkVersion (नवीनतम एसडीके) ** – n3wbie

3

आपका CompileSDKVersion और अपने TargetSDKVersion एक ही होना चाहिए:

android { 
compileSdkVersion 24 
buildToolsVersion "24.0.2" 

defaultConfig { 
    applicationId "com.judeochalifu.dribsndrabs" 
    minSdkVersion 15 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 
} 

आप जो संस्करण संख्या का उपयोग करने, Android SDK Manager पर जाते हैं, एपीआई स्तर आप उपयोग कर रहे पता लगाने (जो हमेशा होना चाहिए पर उलझन में रहे हैं, तो नवीनतम) और वहां आपको संस्करण का उपयोग करने के लिए (एंड्रॉइड 7 (एपीआई 24) लिखने के समय मिलेगा)।

enter image description here

minSDKVersion का सवाल है, जो उपयोग करने के लिए जाँच करने के लिए सबसे अच्छी जगह Create New Project खिड़की (एंड्रॉयड यहाँ स्टूडियो) में जाने के लिए है, तो गूगल की मदद से आप सबसे अच्छा एक है कि इस समय का उपयोग करने के लिए चुन:

enter image description here

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