रिलीज़ के लिए अपनी लाइब्रेरी तैयार करना

इस पेज पर प्रॉपर्टी और विकल्पों के बारे में बताया गया है. पब्लिकेशन के लिए, Android लाइब्रेरी प्रोजेक्ट Android Gradle प्लग इन (AGP) का इस्तेमाल करके. भले ही आप इनमें से कुछ प्रॉपर्टी प्रॉपर्टी बनाते समय अपनी लाइब्रेरी में, नीचे दिए गए दिशा-निर्देशों की समीक्षा करके, अपनी सेटिंग.

कोई नेमस्पेस चुनें

Android लाइब्रेरी को एक नेमस्पेस का एलान करना होगा, ताकि वे यूनीक R क्लास तब शामिल होती है, जब उनके संसाधन कंपाइल किए जाते हैं. यह नाम स्थान करीब से मेल खाना चाहिए लाइब्रेरी का रूट क्लास पैकेज, उपयोगकर्ताओं को सामान्य डेटा इंपोर्ट करते समय होने वाली उलझन से बचाने के लिए लाइब्रेरी और उसकी R क्लास की क्लास.

AGP 7.0 से शुरू करके, नेमस्पेस जैसा कि इस कोड के उदाहरण में दिखाया गया है, ऐप्लिकेशन की build.gradle फ़ाइल में:

ग्रूवी

android {
  namespace = 'com.example.library'
}

Kotlin

android {
  namespace = "com.example.library"
}

नेमस्पेस, लाइब्रेरी की डेवलपर के लिए उपलब्ध प्रॉपर्टी है. ऐसा नहीं है ऐप्लिकेशन पहचान से संबंधित होता है, जिसे applicationId प्रॉपर्टी.

एजीपी के पिछले वर्शन में, दोनों applicationId प्रॉपर्टी (किसी ऐप्लिकेशन) और namespace प्रॉपर्टी (लाइब्रेरी के लिए) को मेनिफ़ेस्ट का package एट्रिब्यूट की दी गई है, जिससे भ्रम की स्थिति पैदा हुई.

minSdkVersion की कोई वैल्यू चुनें

इसके लिए minSdkVersion को चुना जा रहा है आपकी लाइब्रेरी, आपकी लाइब्रेरी को पब्लिश करने का एक अहम पहलू है. कॉन्टेंट बनाने minSdkVersion में Android का वह वर्शन होना चाहिए जो आपके कोड में इस्तेमाल किया जा सकता हो सहायता.

minSdkVersion चुनते समय इन बातों का ध्यान रखें:

  • आम तौर पर, कम minSdkVersion चुनने पर, आपकी लाइब्रेरी.

    आम तौर पर, लाइब्रेरी का कोड तब तक काम नहीं करता, जब तक कि कॉल करता है. ऐप्लिकेशन अब भी Android के ऐसे वर्शन पर चल सकता है जो एक लाइब्रेरी डिपेंडेंसी के लिए ज़रूरी से कम है—अगर लाइब्रेरी ऐप्लिकेशन की मुख्य सुविधाएं इस्तेमाल करना ज़रूरी है. इसके लिए, कॉल करने से पहले रनटाइम की जांच करें लाइब्रेरी. इसलिए, लाइब्रेरी का minSdkVersion कम पर सेट करें, ताकि इसे ऐप्लिकेशन में एम्बेड किया जा सकता है और जब मुमकिन हो, तब कॉल किया जाता है, ताकि ज़्यादा लोगों तक पहुंचा जा सके उपयोगकर्ता.

  • ज़्यादा minSdkVersion को चुनने से, हो सकता है कि ऐप्लिकेशन इसमें ये शामिल न कर पाएं लाइब्रेरी.

    मेनिफ़ेस्ट को मर्ज करना, एजीपी का वह चरण है जिसमें मेनिफ़ेस्ट फ़ाइलों को मर्ज किया जाता है. लागू करती है कि कोई डिपेंडेंसी का minSdkVersion, ऐप्लिकेशन से ज़्यादा होता है.

  • ज़्यादा minSdkVersion चुनने पर, ऐप्लिकेशन डेवलपर इसे बंद करने का निर्देश दे सकते हैं मेनिफ़ेस्ट मर्जर सुरक्षा जांच करता है, जिसकी वजह से बाद में बिल्ड प्रोसेस में समस्याएं आ रही हैं.

    क्योंकि मेनिफ़ेस्ट मर्जर, ऐप्लिकेशन प्रोजेक्ट को ऐप्लिकेशन से ज़्यादा minSdkVersion वाली लाइब्रेरी, ऐप्लिकेशन डेवलपर मेनिफ़ेस्ट मर्जर की सुरक्षा जांच को बंद कर सकता है, ताकि बिल्ड को कम किया जा सके गड़बड़ियां हैं. हालांकि, इससे कम समय में सही तरीके से काम न करने से जुड़ी समस्याओं का खतरा रहता है.

  • ज़्यादा minSdkVersion को चुनना उन खास मामलों में ज़रूरी हो सकता है जहां लाइब्रेरी के मेनिफ़ेस्ट में ब्रॉडकास्ट रिसीवर या फिर इसका कोड अपने-आप ट्रिगर हो जाता है.

    इन मामलों में, ज़्यादा minSdkVersion चुनने से यह पक्का होता है कि कोड चलाया जा सकता है. इसके अलावा, अपने-आप काम करने वाले सिस्टम को बंद किया जा सकता है, ताकि ऐप्लिकेशन ऑप्ट-आउट कर सके इसके बाद, लाइब्रेरी का इस्तेमाल किया जा सकता है.

ऐप्लिकेशन में एम्बेड करने की अनुमति देने के लिए, RequiresApi की व्याख्या लाइब्रेरी का इस्तेमाल किया जा सकता है, ताकि कॉलर को यह बताया जा सके कि उन्हें रनटाइम की जांच करनी है. Android पर लिंट अपनी जांच के लिए, RequiresApi की जानकारी का इस्तेमाल करता है. ज़्यादा संसाधनों के लिए अपने एपीआई कोड और एपीआई को बेहतर बनाने के लिए एनोटेशन का इस्तेमाल करने के बारे में जानने के लिए, कोड में सुधार करें एनोटेशन की मदद से जांच करें.

एएआर मेटाडेटा सेट अप करना

Android लाइब्रेरी एक Android Archive (AAR) फ़ाइल होगी. एएआर मेटाडेटा में ऐसी प्रॉपर्टी होती हैं जो एजीपी, लाइब्रेरी का इस्तेमाल करता है. अगर आपकी लाइब्रेरी का इस्तेमाल किसी ऐसी कंपनी से किया गया है जो AAR मेटाडेटा सेट हो जाता है और उपयोगकर्ताओं को एक गड़बड़ी दिखती है समस्या हल करने में उन्हें मदद मिलेगी.

minCompileSdk की कोई वैल्यू चुनें

वर्शन 4.1 और इसके बाद के सभी वर्शन में, AGP का इस्तेमाल किया जा सकता है minCompileSdk. इससे पता चलता है कि कम से कम compileSdk इस्तेमाल हो सकता है. अगर आपकी लाइब्रेरी में मेनिफ़ेस्ट एंट्री हैं या प्लैटफ़ॉर्म के नए एट्रिब्यूट का इस्तेमाल करने वाले संसाधनों के लिए, आपको यह मान सेट करें.

minCompileSdk की वैल्यू, defaultConfig{} में सेट की जा सकती है, मॉड्यूल-लेवल build.gradle में productFlavors{} और buildTypes{} ब्लॉक फ़ाइल:

ग्रूवी

android {
  defaultConfig {
    aarMetadata {
      minCompileSdk = 29
    }
  }
  productFlavors {
    foo {
      ...
      aarMetadata {
        minCompileSdk = 30
      }
    }
  }
}

Kotlin

android {
  defaultConfig {
    aarMetadata {
      minCompileSdk = 29
    }
  }
  productFlavors {
    register("foo") {
      ...
      aarMetadata {
        minCompileSdk = 30
      }
    }
  }
}

अगर minCompileSdk को एक से ज़्यादा जगहों पर सेट किया जाता है, तो Gradle, सेटिंग को प्राथमिकता देता है बिल्ड प्रोसेस के दौरान इन जगहों की जानकारी दी जाएगी:

  1. buildTypes{}

  2. productFlavors{}

  3. defaultConfig{}

पिछले उदाहरण में, जहां minCompileSdk की जानकारी दोनों में दी गई है defaultConfig{} और productFlavors{} के साथ-साथ, productFlavors{} को प्राथमिकता दी गई है और minCompileSdk, 30 पर सेट हो.

Gradle के तरीके के बारे में ज़्यादा जानने के लिए कोड और संसाधनों को जोड़ते समय सेटिंग को प्राथमिकता देता है. ज़्यादा जानकारी के लिए, सोर्स के साथ बनाएं सेट.

टेस्ट फ़िक्सचर चालू करें

टेस्टर टेस्ट करना आम तौर पर, इनका इस्तेमाल टेस्ट किए जा रहे कोड को सेट अप करने या कॉम्पोनेंट. वर्शन 7.1 और इसके बाद के वर्शन में, AGP लाइब्रेरी के लिए टेस्ट फ़िक्सचर बना सकता है अलग-अलग तरह के प्रोजेक्ट बनाने की सुविधा मिलती है.

अन्य लोगों के इस्तेमाल के लिए कोई लाइब्रेरी पब्लिश करते समय, टेस्ट बनाने के बारे में सोचें अपडेट करने की ज़रूरत नहीं है. टेस्ट फ़िक्स्चर को मॉड्यूल-लेवल पर चालू किया जा सकता है build.gradle फ़ाइल:

ग्रूवी

android {
  testFixtures {
    enable = true
  }
}

Kotlin

android {
  testFixtures {
    enable = true
  }
}

टेस्ट फ़िक्सचर चालू करने पर, Gradle अपने-आप एक src/testFixtures सोर्स सेट किया गया, जहां टेस्ट फ़िक्स्चर लिखा जा सकता है.

ज़्यादा जानकारी के लिए, Gradle का दस्तावेज़ देखें. इसमें यह बताया गया है कि टेस्ट फ़िक्स्चर.