Android ऐप्लिकेशन बंडल, पब्लिश करने का एक फ़ॉर्मैट है. इसमें आपके ऐप्लिकेशन का इकट्ठा किया गया सारा कोड और रिसॉर्स शामिल होता है. साथ ही, APK जनरेट करने और उसे Google Play पर साइन करने की प्रोसेस को बाद के लिए छोड़ दिया जाता है.
Google Play, हर डिवाइस कॉन्फ़िगरेशन के लिए ऑप्टिमाइज़ किए गए APK जनरेट करने और उन्हें उपलब्ध कराने के लिए, आपके ऐप्लिकेशन बंडल का इस्तेमाल करता है. इससे, आपके ऐप्लिकेशन को चलाने के लिए, सिर्फ़ उस डिवाइस के लिए ज़रूरी कोड और संसाधन डाउनलोड किए जाते हैं. अब आपको अलग-अलग डिवाइसों के लिए सहायता को ऑप्टिमाइज़ करने के लिए, एक से ज़्यादा APK बनाने, साइन करने, और मैनेज करने की ज़रूरत नहीं है. साथ ही, उपयोगकर्ताओं को छोटे और ज़्यादा ऑप्टिमाइज़ किए गए APK डाउनलोड करने पड़ते हैं.
ज़्यादातर ऐप्लिकेशन प्रोजेक्ट के लिए, ऑप्टिमाइज़ किए गए APKs को दिखाने वाले ऐप्लिकेशन बंडल बनाने में ज़्यादा मेहनत नहीं करनी पड़ेगी. अगर आपने पहले से ही तय किए गए नियमों के मुताबिक, अपने ऐप्लिकेशन के कोड और संसाधनों को व्यवस्थित किया है, तो Android Studio या कमांड-लाइन का इस्तेमाल करके, साइन किए गए Android ऐप्लिकेशन बंडल बनाएं और उन्हें Google Play पर अपलोड करें. ऐसा करने पर, ऑप्टिमाइज़ किए गए APK को अपने-आप दिखाने की सुविधा का फ़ायदा मिलता है.
अपने ऐप्लिकेशन को पब्लिश करने के लिए ऐप्लिकेशन बंडल फ़ॉर्मैट का इस्तेमाल करने पर, आपके पास Play Feature Delivery का फ़ायदा पाने का विकल्प भी होता है. इसकी मदद से, अपने ऐप्लिकेशन प्रोजेक्ट में फ़ीचर मॉड्यूल जोड़े जा सकते हैं. इन मॉड्यूल में ऐसी सुविधाएं और संसाधन शामिल होते हैं जिन्हें सिर्फ़ आपकी बताई गई शर्तों के आधार पर, आपके ऐप्लिकेशन में शामिल किया जाता है. इसके अलावा, ये Play Core लाइब्रेरी का इस्तेमाल करके, रनटाइम के दौरान डाउनलोड करने के लिए भी उपलब्ध होते हैं.
ऐप्लिकेशन बंडल की मदद से अपने ऐप्लिकेशन पब्लिश करने वाले गेम डेवलपर, Play एसेट डिलीवरी का इस्तेमाल कर सकते हैं. यह Google Play का एक ऐसा समाधान है जिसकी मदद से, बड़ी संख्या में गेम एसेट डिलीवर की जा सकती हैं. साथ ही, डेवलपर को डिलीवरी के लिए अलग-अलग तरीके और बेहतर परफ़ॉर्मेंस मिलती है.
Android ऐप्लिकेशन बंडल का इस्तेमाल करके, अपना ऐप्लिकेशन पब्लिश करने की वजहों के बारे में खास जानकारी पाने के लिए, यह वीडियो देखें.
कंप्रेस किए गए डाउनलोड साइज़ की पाबंदी
Android ऐप्लिकेशन बंडल की मदद से पब्लिश करने पर, उपयोगकर्ता आपके ऐप्लिकेशन को कम से कम डाउनलोड करके इंस्टॉल कर पाते हैं. साथ ही, कंप्रेस किए गए डाउनलोड साइज़ में भी बढ़ोतरी होती है. इसका मतलब है कि जब कोई उपयोगकर्ता आपका ऐप्लिकेशन डाउनलोड करता है, तो आपके ऐप्लिकेशन को इंस्टॉल करने के लिए ज़रूरी कंप्रेस किए गए APKs (उदाहरण के लिए, बेस APK + कॉन्फ़िगरेशन APKs) का कुल साइज़, 4 जीबी से ज़्यादा नहीं होना चाहिए. इसके बाद, ज़रूरत पड़ने पर किसी फ़ीचर मॉड्यूल (और उसके कॉन्फ़िगरेशन APKs) को डाउनलोड करने जैसे किसी भी डाउनलोड के लिए, डाउनलोड की गई फ़ाइल के कंप्रेस किए गए साइज़ की यह सीमा भी लागू होगी. ऐसेट पैक का साइज़, इस सीमा में शामिल नहीं होता. हालांकि, इन पर साइज़ से जुड़ी अन्य पाबंदियां लागू होती हैं.
अगर Play Console को आपके ऐप्लिकेशन या उसकी ऑन डिमांड सुविधाओं के ज़्यादा से ज़्यादा साइज़ की सीमाओं से ज़्यादा डाउनलोड मिलते हैं, तो आपको गड़बड़ी का मैसेज मिलेगा.
ध्यान रखें कि Android ऐप्लिकेशन बंडल, APK एक्सपैंशन (*.obb
) वाली फ़ाइलों के साथ काम नहीं करते. इसलिए, अगर आपको ऐप्लिकेशन बंडल पब्लिश करते समय यह गड़बड़ी दिखती है, तो कंप्रेस किए गए APK के डाउनलोड साइज़ को कम करने के लिए, इनमें से किसी एक संसाधन का इस्तेमाल करें:
- हर तरह के कॉन्फ़िगरेशन APK के लिए
enableSplit = true
सेट करके, पक्का करें कि आपने सभी कॉन्फ़िगरेशन APK चालू किए हों. इससे यह पक्का होता है कि उपयोगकर्ता सिर्फ़ वही कोड और संसाधन डाउनलोड करें जो उनके डिवाइस पर आपके ऐप्लिकेशन को चलाने के लिए ज़रूरी हैं. - इस्तेमाल न होने वाले कोड और संसाधनों को हटाकर, अपने ऐप्लिकेशन को छोटा करें.
- ऐप्लिकेशन का साइज़ और कम करने के लिए, सबसे सही तरीके अपनाएं.
- उन सुविधाओं को सुविधा मॉड्यूल में बदलें जिनका इस्तेमाल आपके कुछ उपयोगकर्ता ही करते हैं. आपके ऐप्लिकेशन में, बाद में ज़रूरत पड़ने पर ये मॉड्यूल डाउनलोड किए जा सकते हैं. ध्यान रखें कि इसके लिए, आपको अपने ऐप्लिकेशन में कुछ बदलाव करने पड़ सकते हैं. इसलिए, पहले ऊपर बताए गए अन्य सुझावों को आज़माएं.
ध्यान में रखने वाली अन्य बातें
Android ऐप्लिकेशन बंडल का इस्तेमाल करके, ऐप्लिकेशन बनाते या उसे दिखाते समय ये समस्याएं आ सकती हैं. अगर आपको ऐसी समस्याएं आ रही हैं जिनके बारे में यहां पहले से नहीं बताया गया है, तो गड़बड़ी की शिकायत करें.
- Google से सर्टिफ़ाइड सभी डिवाइसों और Android 10 (एपीआई लेवल 29) या उससे बाद के वर्शन पर, अलग से लोड किए गए ऐप्लिकेशन के कुछ हिस्से इंस्टॉल नहीं हो पाते. अलग से लोड किए गए ऐप्लिकेशन वे होते हैं जिन्हें Google Play Store का इस्तेमाल करके इंस्टॉल नहीं किया जाता और जिनमें एक या उससे ज़्यादा ज़रूरी स्प्लिट APK मौजूद नहीं होते. Google Play Store से आपका ऐप्लिकेशन डाउनलोड करते समय, Google यह पक्का करता है कि ऐप्लिकेशन के सभी ज़रूरी कॉम्पोनेंट इंस्टॉल हों.
अगर ऐसे टूल का इस्तेमाल किया जाता है जो डाइनैमिक तौर पर रिसॉर्स टेबल में बदलाव करते हैं, तो ऐप्लिकेशन बंडल से जनरेट किए गए APK काफ़ी अलग तरीके से काम कर सकते हैं. इसलिए, ऐप्लिकेशन बंडल बनाते समय, हमारा सुझाव है कि आप ऐसे टूल बंद कर दें.
फ़ीचर मॉड्यूल के बिल्ड कॉन्फ़िगरेशन में, ऐसी प्रॉपर्टी कॉन्फ़िगर की जा सकती हैं जो बेस (या अन्य) मॉड्यूल की प्रॉपर्टी से मेल नहीं खाती हैं. उदाहरण के लिए, बेस मॉड्यूल में
buildTypes.release.debuggable = true
सेट किया जा सकता है और फ़ीचर मॉड्यूल में इसेfalse
पर सेट किया जा सकता है. इस तरह के विरोधों की वजह से, बिल्ड और रनटाइम से जुड़ी समस्याएं हो सकती हैं. ध्यान रखें कि डिफ़ॉल्ट रूप से, सुविधा मॉड्यूल, बेस मॉड्यूल से कुछ बिल्ड कॉन्फ़िगरेशन इनहेरिट करते हैं. इसलिए, पक्का करें कि आपको अपने सुविधा मॉड्यूल के बिल्ड कॉन्फ़िगरेशन में, किन कॉन्फ़िगरेशन को रखना चाहिए और किन को हटाना चाहिए.
अन्य संसाधन
Android ऐप्लिकेशन बंडल के बारे में ज़्यादा जानने के लिए, यहां दिए गए संसाधन देखें.
ब्लॉग पोस्ट
- अपना पहला ऐप्लिकेशन बंडल बनाना
- पब्लिश करने के नए फ़ॉर्मैट का, Android के आने वाले समय पर क्या असर पड़ेगा
- Google Play पर अपने कारोबार को डेवलप करने, रिलीज़ करने, और उसमें बढ़ोतरी करने में मदद करने वाली नई सुविधाएं
- Android ऐप्लिकेशन बंडल के नए अपडेट, जिनमें अन्य भाषाओं के एपीआई भी शामिल हैं
- पैचवर्क प्लेड — मॉड्यूलर बनाने की कहानी
- Google Santa Tracker — Android ऐप्लिकेशन बंडल पर माइग्रेट करना
- Play Console पर डेवलपर टूल
वीडियो
- Play ऐप्लिकेशन साइनिंग की सुविधा के बारे में पूरी जानकारी
- अपना पहला ऐप्लिकेशन बंडल बनाना
- ऐप्लिकेशन बंडल: Bundletool और Play Console की मदद से टेस्ट करना
- ऐप्लिकेशन बंडल की मदद से, अपनी पसंद के मुताबिक डिलीवरी और टेस्ट बिल्ड को आसानी से शेयर करना
- अपने ऐप्लिकेशन के साइज़ को ऑप्टिमाइज़ करने और Google Play पर इंस्टॉल की संख्या बढ़ाने के लिए नए टूल