ऐप्लिकेशन मॉड्यूल कॉन्फ़िगर करें

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

  • अलग-अलग बिल्ड कॉन्फ़िगरेशन के लिए ऐप्लिकेशन आईडी बदलें.
  • ऐप्लिकेशन आईडी से अलग नेमस्पेस को सुरक्षित तरीके से अडजस्ट करें.

ऐप्लिकेशन आईडी सेट करें

हर Android ऐप्लिकेशन का एक यूनीक ऐप्लिकेशन आईडी होता है, जो Java की तरह दिखता है या Kotlin पैकेज नाम, जैसे कि com.example.myapp. यह आईडी, आपके ऐप्लिकेशन को खास तौर पर डिवाइस और Google Play Store में.

आपका ऐप्लिकेशन आईडी, आपके मॉड्यूल की applicationId प्रॉपर्टी से तय होता है build.gradle.kts फ़ाइल, जैसा कि यहां दिखाया गया है. applicationId की वैल्यू अपडेट करें com.example.myapp को अपने ऐप्लिकेशन का आईडी:

Kotlin

android {
    defaultConfig {
        applicationId = "com.example.myapp"
        minSdk = 15
        targetSdk = 24
        versionCode = 1
        versionName = "1.0"
    }
    ...
}

ग्रूवी

android {
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    ...
}

ऐप्लिकेशन आईडी, पारंपरिक Kotlin या Java पैकेज की तरह दिखता है नाम, ऐप्लिकेशन आईडी के लिए नामकरण नियम थोड़े ज़्यादा पाबंदी वाले होते हैं:

  • इसके कम से कम दो सेगमेंट (एक या ज़्यादा बिंदु) होने चाहिए.
  • हर सेगमेंट किसी अक्षर से शुरू होना चाहिए.
  • सभी वर्ण, अक्षर और अंक या अंडरस्कोर [a-zA-Z0-9_] होने चाहिए.

Android में कोई नया प्रोजेक्ट बनाने पर स्टूडियो में applicationId आपके चुने गए पैकेज का नाम अपने-आप असाइन हो जाएगा. आपने लोगों तक पहुंचाया मुफ़्त में तकनीकी रूप से दोनों प्रॉपर्टी को अलग-अलग टॉगल कर सकता है, लेकिन का सुझाव नहीं दिया जाता.

हमारा सुझाव है कि ऐप्लिकेशन आईडी सेट करते समय, ये काम करें:

  • ऐप्लिकेशन आईडी को नेमस्पेस के तौर पर ही रखें. दोनों के बीच अंतर दो प्रॉपर्टी को समझना मुश्किल हो सकता है. हालांकि, अगर उन्हें एक जैसा रखा जाता है, तो चिंता की कोई बात नहीं है.
  • अपना ऐप्लिकेशन प्रकाशित करने के बाद, ऐप्लिकेशन आईडी न बदलें. अगर इसे बदला जाता है, Google Play Store, अपलोड किए जाने वाले आइटम को नया ऐप्लिकेशन मानता है.
  • ऐप्लिकेशन आईडी को साफ़ तौर पर बताएं. अगर ऐप्लिकेशन आईडी साफ़ तौर पर नहीं बताया गया है applicationId प्रॉपर्टी का इस्तेमाल करके तय किया जाता है, तो यह अपने-आप वही वैल्यू का इस्तेमाल नेमस्पेस के रूप में किया जाता है. इसका मतलब है कि नेमस्पेस बदलने से जो आम तौर पर आपकी ज़रूरत के मुताबिक नहीं होता.

जांच के लिए ऐप्लिकेशन आईडी बदलें

डिफ़ॉल्ट रूप से, बिल्ड टूल आपके इंस्ट्रुमेंटेशन टेस्ट दिए गए बिल्ड वैरिएंट के लिए ऐप्लिकेशन आईडी का इस्तेमाल करने वाला APK, इससे जुड़ा होता है .test. उदाहरण के लिए, बिल्ड का com.example.myapp.free वैरिएंट ऐप्लिकेशन आईडी है com.example.myapp.free.test.

हालांकि यह ज़रूरी नहीं होना चाहिए, लेकिन आप इसके अनुसार ऐप्लिकेशन आईडी बदल सकते हैं अपने defaultConfig में testApplicationId प्रॉपर्टी के बारे में बताएं या productFlavor ब्लॉक करें.

नेमस्पेस सेट करना

हर Android मॉड्यूल का एक नेमस्पेस होता है, जिसका इस्तेमाल Kotlin या Java के तौर पर किया जाता है इसके पैकेज का नाम इसने R और BuildConfig क्लास जनरेट की हैं.

आपके मॉड्यूल में, namespace प्रॉपर्टी से आपका नेमस्पेस तय किया जाता है build.gradle.kts फ़ाइल का इस्तेमाल करें, जैसा कि इस कोड स्निपेट में दिखाया गया है. namespace शुरुआत में उस पैकेज नाम पर सेट रहता है जिसे आप अपना प्रोजेक्ट बनाएं.

Kotlin

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

ग्रूवी

android {
    namespace "com.example.myapp"
    ...
}

अपने ऐप्लिकेशन को फ़ाइनल ऐप्लिकेशन पैकेज (APK) में बनाते समय, Android बिल्ड टूल आपके ऐप्लिकेशन के जनरेट किए गए R के लिए नेमस्पेस के तौर पर नेमस्पेस का इस्तेमाल करते हैं क्लास का इस्तेमाल करें, जिसका इस्तेमाल आपकी ऐप्लिकेशन संसाधन. उदाहरण के लिए, पिछली बिल्ड फ़ाइल में, R क्लास को इस हिसाब से बनाया जाता है: com.example.myapp.R.

वह नाम जो आपने build.gradle.kts फ़ाइल की namespace प्रॉपर्टी के लिए सेट किया है यह हमेशा आपके प्रोजेक्ट के बेस पैकेज के नाम से मेल खाना चाहिए. यहां गतिविधियां और अन्य ऐप्लिकेशन कोड शामिल नहीं करने चाहिए. आपके पास अन्य सब-पैकेज लेकिन उन फ़ाइलों कोR namespace प्रॉपर्टी से नेमस्पेस.

आसान वर्कफ़्लो के लिए, अपने नेमस्पेस को अपने ऐप्लिकेशन आईडी, जैसा कि वे डिफ़ॉल्ट रूप से मौजूद होते हैं.

नेमस्पेस बदलना

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

ऐसे मामलों में, आपके मॉड्यूल की build.gradle.kts फ़ाइल में मौजूद namespace प्रॉपर्टी, ऐप्लिकेशन आईडी. ऐसा करने से पहले, यह पक्का करें कि आपका ऐप्लिकेशन आईडी साफ़ तौर पर परिभाषित किया गया है, ताकि नेमस्पेस बदलने से न बदला जाए ऐप्लिकेशन आईडी. नेमस्पेस कैसे ऐप्लिकेशन आईडी के लिए, ऐप्लिकेशन आईडी सेट करें देखें.

अगर namespace के लिए आपके पास अलग-अलग नाम हैं और Gradle applicationId, बिल्ड टूल की कॉपी ऐप्लिकेशन आईडी को बिल्ड के अंत में आपके ऐप्लिकेशन की फ़ाइनल मेनिफ़ेस्ट फ़ाइल में जोड़ा जाना चाहिए. इसलिए अगर बिल्ड बनाने के बाद AndroidManifest.xml फ़ाइल की जांच की जाती है, package एट्रिब्यूट ऐप्लिकेशन आईडी. मर्ज किए गए मेनिफ़ेस्ट का package एट्रिब्यूट वह जगह है जहां Google Play Store और Android प्लैटफ़ॉर्म, असल में आपके ऐप्लिकेशन की पहचान करने की कोशिश करते हैं.

जांच के लिए नेमस्पेस बदलें

androidTest और test सोर्स सेट के लिए डिफ़ॉल्ट नेमस्पेस मुख्य है नेमस्पेस, जिसके आखिर में .test जोड़ा गया है. उदाहरण के लिए, अगर build.gradle फ़ाइल में namespace प्रॉपर्टी है com.example.myapp, टेस्टिंग नेमस्पेस डिफ़ॉल्ट रूप से इस पर सेट होती है: com.example.myapp.test. जांच के लिए नेमस्पेस बदलने के लिए, testNamespace प्रॉपर्टी, जैसा कि नीचे दिए गए कोड स्निपेट में दिखाया गया है:

Kotlin

android {
    namespace = "com.example.myapp"
    testNamespace = "com.example.mytestapp"
    ...
}

ग्रूवी

android {
    namespace "com.example.myapp"
    testNamespace "com.example.mytestapp"
    ...
}

चेतावनी: testNamespace और namespace से उसी वैल्यू का इस्तेमाल करें, नहीं तो नेमस्पेस टकराव होते हैं.

टेस्टिंग के बारे में ज़्यादा जानने के लिए, Android पर टेस्ट ऐप्लिकेशन देखें.