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