बेस मॉड्यूल को कॉन्फ़िगर करना

ऐप्लिकेशन बंडल, किसी ऐसे APK से अलग होता है जिसमें आप किसी APK को डिवाइस. बल्कि, यह एक पब्लिशिंग फ़ॉर्मैट है, जिसमें आपके ऐप्लिकेशन से इकट्ठा किए गए सभी आइटम शामिल होते हैं में मौजूद सभी कोड और संसाधन एक ही बिल्ड आर्टफ़ैक्ट में मौजूद है. इसलिए, जब आप साइन किया हुआ ऐप्लिकेशन बंडल. Google Play में आपके डाउनलोड करें और उन्हें उपयोगकर्ताओं को उपलब्ध कराएं.

शुरू करें

ज़्यादातर ऐप्लिकेशन प्रोजेक्ट को Android ऐप्लिकेशन बंडल से जोड़ने के लिए, ज़्यादा मेहनत नहीं करनी होगी. ऐसा इसलिए होता है, क्योंकि वह मॉड्यूल जिसमें आपके ऐप्लिकेशन के बेस के लिए कोड और संसाधन शामिल होते हैं APK एक स्टैंडर्ड ऐप्लिकेशन मॉड्यूल है, जो आपको डिफ़ॉल्ट रूप से तब मिलता है, जब Android Studio में कोई नया ऐप्लिकेशन प्रोजेक्ट बनाएं. इसका मतलब है कि वह मॉड्यूल जो अपने नीचे दिए गए application प्लगिन को लागू करता है build.gradle फ़ाइल, बुनियादी फ़ंक्शन के लिए कोड और संसाधन देती है तीन सबसे सही तरीक़े यहाँ दिए गए हैं.

ग्रूवी

// The standard application plugin creates your app's base module.
plugins {
 id 'com.android.application'
}

Kotlin

plugins {
    // The standard application plugin creates your app's base module.
    id("com.android.application")
}

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

बेस मॉड्यूल बिल्ड कॉन्फ़िगरेशन

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

वर्शन कोड और ऐप्लिकेशन के अपडेट

Android ऐप्लिकेशन बंडल वाले वर्शन में, अब आपको Google Play पर अपलोड किए जाने वाले कई APK के वर्शन कोड. इसके बजाय, आप अपने ऐप्लिकेशन के बेस मॉड्यूल में सिर्फ़ एक वर्शन कोड मैनेज करें, जैसा कि नीचे दिखाया गया है:

// In your base module build.gradle file
android {
    defaultConfig {
        …
        // You specify your app’s version code only in the base module.
        versionCode 5
        versionName "1.0"
    }
}

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

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

दूसरी ज़रूरी बातें

  • ऐप्लिकेशन साइनिंग: अगर आपने अपनी बिल्ड फ़ाइलों में साइन इन करने की जानकारी शामिल की है, आपको इसे सिर्फ़ बेस मॉड्यूल की बिल्ड कॉन्फ़िगरेशन फ़ाइल में शामिल करना चाहिए. ज़्यादा जानकारी के लिए, यह देखें अपने ऐप्लिकेशन को साइन करने के लिए, Gradle को कॉन्फ़िगर करें.
  • कोड छोटा करना: अगर आपको कोड छोटा करने की सुविधा चालू करें पूरे ऐप्लिकेशन प्रोजेक्ट (इसके फ़ीचर मॉड्यूल भी शामिल हैं) में, आपको यह काम करना होगा इसलिए, बेस मॉड्यूल की build.gradle फ़ाइल से ऐसा किया जा सकता है. इसका मतलब है कि आपको किसी फ़ीचर मॉड्यूल में, ProGuard के कस्टम नियम शामिल करना, हालाँकि, सुविधा में minifyEnabled प्रॉपर्टी मॉड्यूल बिल्ड कॉन्फ़िगरेशन को अनदेखा किया जाता है.
  • splits ब्लॉक को अनदेखा कर दिया जाता है: ऐप्लिकेशन बंडल बनाते समय, Gradle android.splits ब्लॉक में प्रॉपर्टी पर ध्यान नहीं देता. अगर आपको यह कंट्रोल करना है, तो इसके बजाय, आपके ऐप्लिकेशन बंडल में किस तरह के कॉन्फ़िगरेशन वाले APK इस्तेमाल किए जा सकते हैं android.bundle से कॉन्फ़िगरेशन APK के टाइप बंद करें.
  • ऐप्लिकेशन का वर्शन: बेस मॉड्यूल से, वर्शन कोड और वर्शन तय होता है आपके पूरे ऐप्लिकेशन प्रोजेक्ट के लिए कोई नाम डालें. ज़्यादा जानकारी के लिए, इस सेक्शन पर जाएं ऐप्लिकेशन के अपडेट मैनेज करने का तरीका जानें.

अलग-अलग तरह के कॉन्फ़िगरेशन वाले APKs को फिर से चालू या बंद करना

डिफ़ॉल्ट रूप से, जब ऐप्लिकेशन बंडल बनाया जाता है, तो वह कॉन्फ़िगरेशन जनरेट करने की सुविधा देता है भाषा से जुड़े संसाधनों के हर सेट, स्क्रीन की सघनता से जुड़े संसाधनों, और एबीआई के लिए APKs लाइब्रेरी. अपने बेस मॉड्यूल में android.bundle ब्लॉक का इस्तेमाल करना build.gradle फ़ाइल का इस्तेमाल करके, एक या एक से ज़्यादा फ़ाइलों के लिए सहायता पाने की सुविधा बंद की जा सकती है. इसके बारे में नीचे बताया गया है कॉन्फ़िगरेशन APK के प्रकार:

ग्रूवी

android {
    // When building Android App Bundles, the splits block is ignored.
    // You can remove it, unless you're going to continue to build multiple
    // APKs in parallel with the app bundle
    splits {...}

    // Instead, use the bundle block to control which types of configuration APKs
    // you want your app bundle to support.
    bundle {
        language {
            // This property is set to true by default.
            // You can specify `false` to turn off
            // generating configuration APKs for language resources.
            // These resources are instead packaged with each base and
            // feature APK.
            // Continue reading below to learn about situations when an app
            // might change setting to `false`, otherwise consider leaving
            // the default on for more optimized downloads.
            enableSplit = false
        }
        density {
            // This property is set to true by default.
            enableSplit = true
        }
        abi {
            // This property is set to true by default.
            enableSplit = true
        }
    }
}

Kotlin

android {
    // When building Android App Bundles, the splits block is ignored.
    // You can remove it, unless you're going to continue to build multiple
    // APKs in parallel with the app bundle
    splits {...}

    // Instead, use the bundle block to control which types of configuration APKs
    // you want your app bundle to support.
    bundle {
        language {
            // This property is set to true by default.
            // You can specify `false` to turn off
            // generating configuration APKs for language resources.
            // These resources are instead packaged with each base and
            // feature APK.
            // Continue reading below to learn about situations when an app
            // might change setting to `false`, otherwise consider leaving
            // the default on for more optimized downloads.
            enableSplit = false
        }
        density {
            // This property is set to true by default.
            enableSplit = true
        }
        abi {
            // This property is set to true by default.
            enableSplit = true
        }
    }
}

भाषा में हुए बदलावों को मैनेज करना

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

ऐसे ऐप्लिकेशन के लिए जो ऐप्लिकेशन के अंदर भाषा चुनने की सुविधा देते हैं. साथ ही, डाइनैमिक रूप से सिस्टम लेवल की भाषा सेटिंग के बावजूद, ऐप्लिकेशन की भाषा बदली जा सकती है. संसाधनों के मौजूद न होने की वजह से होने वाले क्रैश को रोकने के लिए, आपको कुछ बदलाव करने होंगे. इनमें से कोई एक android.bundle.language.enableSplit प्रॉपर्टी को false पर सेट करें या इस बारे में सोचें Play Core लाइब्रेरी की मदद से, मांग पर भाषा डाउनलोड करने की सुविधा इस तरह लागू की जाएगी भाषा के अन्य संसाधनों को डाउनलोड करें में बताया गया है