इस पेज पर, मॉड्यूल-लेवल 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 पर टेस्ट ऐप्लिकेशन देखें.