इस पेज पर, Android Gradle प्लगइन (AGP) का इस्तेमाल करके, पब्लिश करने के लिए Android लाइब्रेरी प्रोजेक्ट तैयार करने के लिए ज़रूरी प्रॉपर्टी और विकल्पों के बारे में बताया गया है. अगर आपने लाइब्रेरी बनाते समय इनमें से कुछ प्रॉपर्टी सेट की हैं, तो अपनी सेटिंग को ऑप्टिमाइज़ करने के लिए, यहां दिए गए दिशा-निर्देश पढ़ें.
कोई नेमस्पेस चुनें
Android लाइब्रेरी को नेमस्पेस के बारे में बताना होता है, ताकि वे अपने संसाधनों को कंपाइल करते समय एक यूनीक R क्लास जनरेट कर सकें. यह नेमस्पेस, लाइब्रेरी के रूट क्लास पैकेज से काफ़ी मिलता-जुलता होना चाहिए. इससे उपयोगकर्ताओं को लाइब्रेरी और उसकी R क्लास से सामान्य क्लास इंपोर्ट करते समय कोई भ्रम नहीं होगा.
AGP 7.0 से, ऐप्लिकेशन की build.gradle फ़ाइल में namespace सेट किया जा सकता है. इसके लिए, यहां दिए गए कोड का उदाहरण देखें:
Groovy
android { namespace = 'com.example.library' }
Kotlin
android { namespace = "com.example.library" }
नेमस्पेस, लाइब्रेरी की एक ऐसी प्रॉपर्टी है जो डेवलपर को दिखती है. यह ऐप्लिकेशन की पहचान से जुड़ी नहीं है. इसे applicationId प्रॉपर्टी का इस्तेमाल करके सेट किया जाता है.
AGP के पिछले वर्शन में, applicationId प्रॉपर्टी (किसी ऐप्लिकेशन के लिए) और namespace प्रॉपर्टी (किसी लाइब्रेरी के लिए), दोनों को मेनिफ़ेस्ट के package एट्रिब्यूट का इस्तेमाल करके सेट किया जा सकता था. इससे भ्रम की स्थिति पैदा होती थी.
minSdkVersion वैल्यू चुनें
अपनी लाइब्रेरी के लिए minSdkVersion चुनना, लाइब्रेरी को पब्लिश करने का एक अहम हिस्सा है. minSdkVersion में, Android का वह कम से कम वर्शन दिखना चाहिए जिस पर आपका कोड काम कर सकता है.
minSdkVersion चुनते समय, इन बातों का ध्यान रखें:
कम
minSdkVersionचुनने पर, आम तौर पर आपकी लाइब्रेरी को ज़्यादा लोगों के साथ शेयर किया जा सकता है.आम तौर पर, लाइब्रेरी का कोड तब तक नहीं चलता, जब तक ऐप्लिकेशन उसे साफ़ तौर पर कॉल नहीं करता. अगर लाइब्रेरी, ऐप्लिकेशन के मुख्य फ़ंक्शन के लिए ज़रूरी नहीं है, तो ऐप्लिकेशन अब भी Android के ऐसे वर्शन पर चल सकता है जो लाइब्रेरी की ज़रूरी शर्तों से कम है. इसके लिए, लाइब्रेरी को कॉल करने से पहले रनटाइम की जांच करनी होगी. इसलिए, अपनी लाइब्रेरी के
minSdkVersionको इतना कम सेट करें कि उसे ऐप्लिकेशन में एम्बेड किया जा सके. साथ ही, जब भी हो सके, उसे कॉल किया जा सके, ताकि ज़्यादा उपयोगकर्ताओं तक पहुंचा जा सके.minSdkVersionका ज़्यादा वर्शन चुनने से, ऐप्लिकेशन में लाइब्रेरी शामिल नहीं की जा सकती.मेनिफ़ेस्ट मर्जर, AGP का एक चरण है. यह ऐप्लिकेशन और उसकी डिपेंडेंसी से मेनिफ़ेस्ट फ़ाइलों को मर्ज करता है. यह इस बात को लागू करता है कि किसी भी डिपेंडेंसी का
minSdkVersion, ऐप्लिकेशन से ज़्यादा न हो.ज़्यादा
minSdkVersionचुनने पर, ऐप्लिकेशन डेवलपर को मेनिफ़ेस्ट मर्जर की सुरक्षा जांच बंद करने के लिए कहा जा सकता है. इससे, बिल्ड प्रोसेस के दौरान समस्याएं हो सकती हैं.मेनिफ़ेस्ट मर्जर, ऐप्लिकेशन प्रोजेक्ट को ऐसी लाइब्रेरी शामिल करने से रोकता है जिनमें ऐप्लिकेशन के मुकाबले ज़्यादा
minSdkVersionहोता है. इसलिए, ऐप्लिकेशन डेवलपर, मेनिफ़ेस्ट मर्जर की सुरक्षा जांचों को बंद कर सकते हैं, ताकि बिल्ड से जुड़ी गड़बड़ियों को कम किया जा सके. हालांकि, इससे बाद में काम न करने से जुड़ी समस्याएं हो सकती हैं.कुछ खास मामलों में, ज़्यादा
minSdkVersionचुनना ज़रूरी हो सकता है. जैसे, जब किसी लाइब्रेरी के मेनिफ़ेस्ट में ब्रॉडकास्ट रिसीवर या कोई अन्य ऐसा तरीका शामिल हो जिससे उसका कोड अपने-आप ट्रिगर हो जाता है.ऐसे मामलों में, ज़्यादा
minSdkVersionचुनने से यह पक्का किया जा सकता है कि कोड चल सके. इसके अलावा, अपने-आप होने वाली कार्रवाई को बंद किया जा सकता है, ताकि सही जांच करने के बाद ऐप्लिकेशन, लाइब्रेरी को लागू करने के लिए ऑप्ट-इन कर सके.
ऐप्लिकेशन में एम्बेड करने की अनुमति देने के लिए, अपनी लाइब्रेरी में RequiresApi एनोटेशन का इस्तेमाल करें. इससे, लाइब्रेरी का इस्तेमाल करने वाले लोगों को यह पता चलेगा कि उन्हें रनटाइम की जांच करनी है. Android Lint, RequiresApi जानकारी का इस्तेमाल करके जांच करता है. अपने एपीआई कोड और एपीआई को बेहतर बनाने के लिए एनोटेशन का इस्तेमाल करने के बारे में ज़्यादा संसाधनों के लिए, एनोटेशन की मदद से कोड की जांच को बेहतर बनाना लेख पढ़ें.
एएआर मेटाडेटा सेट अप करना
Android लाइब्रेरी को Android Archive (AAR) फ़ाइल के तौर पर पैकेज किया जाता है. एएआर मेटाडेटा में ऐसी प्रॉपर्टी होती हैं जो AGP को लाइब्रेरी इस्तेमाल करने में मदद करती हैं. अगर आपकी लाइब्रेरी का इस्तेमाल किसी ऐसे कॉन्फ़िगरेशन से किया जाता है जो उसके साथ काम नहीं करता है और AAR मेटाडेटा सेट अप किया गया है, तो उपयोगकर्ताओं को गड़बड़ी का मैसेज दिखता है. इससे उन्हें समस्या हल करने में मदद मिलती है.
minCompileSdk की कोई वैल्यू चुनें
AGP के 4.1 वर्शन से, minCompileSdk काम करता है.
इससे पता चलता है कि इस्तेमाल करने वाले प्रोजेक्ट, कम से कम compileSdk का इस्तेमाल कर सकते हैं. अगर आपकी लाइब्रेरी में ऐसी मेनिफ़ेस्ट एंट्री या संसाधन शामिल हैं जो प्लैटफ़ॉर्म के नए एट्रिब्यूट का इस्तेमाल करते हैं, तो आपको यह वैल्यू सेट करनी होगी.
minCompileSdk वैल्यू को मॉड्यूल-लेवल की build.gradle फ़ाइल में मौजूद defaultConfig{}, productFlavors{}, और buildTypes{} ब्लॉक में सेट किया जा सकता है:
Groovy
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { foo { ... aarMetadata { minCompileSdk = 30 } } } }
Kotlin
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { register("foo") { ... aarMetadata { minCompileSdk = 30 } } } }
अगर आपने minCompileSdk को कई जगहों पर सेट किया है, तो Gradle, बिल्ड प्रोसेस के दौरान सेटिंग की जगहों को इस तरह प्राथमिकता देता है:
buildTypes{}productFlavors{}defaultConfig{}
ऊपर दिए गए उदाहरण में, minCompileSdk को defaultConfig{} और productFlavors{}, दोनों में तय किया गया है. इसलिए, productFlavors{} को प्राथमिकता दी गई है और minCompileSdk को 30 पर सेट किया गया है.
कोड और संसाधनों को एक साथ इस्तेमाल करते समय, Gradle सेटिंग को प्राथमिकता कैसे देता है, इस बारे में ज़्यादा जानने के लिए सोर्स सेट के साथ बनाना लेख पढ़ें.
टेस्ट फ़िक्चर चालू करना
टेस्ट फ़िक्चर का इस्तेमाल आम तौर पर, टेस्ट किए जा रहे कोड को सेट अप करने या किसी कॉम्पोनेंट के टेस्ट को आसान बनाने के लिए किया जाता है. AGP के 7.1 वर्शन से, ऐप्लिकेशन और डाइनैमिक-फ़ीचर प्रोजेक्ट के साथ-साथ, लाइब्रेरी प्रोजेक्ट के लिए भी टेस्ट फ़िक्चर बनाए जा सकते हैं.
जब आपको किसी लाइब्रेरी को दूसरों के इस्तेमाल के लिए पब्लिश करना हो, तो अपने एपीआई के लिए टेस्ट फ़िक्चर बनाएं. मॉड्यूल-लेवल की build.gradle फ़ाइल में, टेस्ट फ़िक्चर चालू किए जा सकते हैं:
Groovy
android { testFixtures { enable = true } }
Kotlin
android { testFixtures { enable = true } }
टेस्ट फ़िक्चर चालू करने पर, Gradle अपने-आप एक src/testFixtures सोर्स सेट बनाता है. इसमें टेस्ट फ़िक्चर लिखे जा सकते हैं.
ज़्यादा जानकारी के लिए, टेस्ट फ़िक्चर इस्तेमाल करने के बारे में Gradle का दस्तावेज़ देखें.