अपने इंस्टैंट ऐप्लिकेशन का साइज़ कम करें

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

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

सुविधा वाले एक से ज़्यादा मॉड्यूल जोड़ें

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

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

सबसे सही तरीके

अपने ऐप्लिकेशन को रीफ़ैक्टर करते समय, इन सबसे सही तरीकों को ध्यान में रखें:

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

ऐप्लिकेशन के संसाधनों को अपडेट करें

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

इमेज का फ़ाइल साइज़ कम करें

आप WebP PNG के बजाय फ़ाइल फ़ॉर्मैट है. Google Play इंस्टैंट पूरी तरह से मदद करता है WebP के लिए, इसमें पारदर्शिता और लॉसलेस कंप्रेशन शामिल है. इसलिए, इमेज क्वालिटी पहले जैसा ही रहेगा.

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

इस्तेमाल नहीं की जा रही भाषाएँ हटाएँ

अगर आपका ऐप्लिकेशन कई भाषाओं में काम करता है, तो स्थानीय जगह के अनुसार कम संसाधनों में तो आप ऐसा कर सकते हैं. यह चरण खास तौर पर तब पूरा होता है, जब आप "ऐप्लिकेशन कॉम्पट" लाइब्रेरी, जैसे कि android.support.v7.appcompat. इस लाइब्रेरी में कई भाषाओं के मैसेज शामिल हैं. इनमें से कुछ भाषाओं में आपका ऐप्लिकेशन उपलब्ध नहीं है.

ज़्यादा जानने के लिए, इस्तेमाल नहीं किए गए विकल्प को हटाने का तरीका जानें संसाधन, खास तौर पर इस्तेमाल न हुई हों.

अतिरिक्त फ़ाइलें हटाएं

ऐसा हो सकता है कि आपका ऐप्लिकेशन अब उन कुछ संसाधनों का इस्तेमाल न करे जिनमें आपने इंपोर्ट किया है आपका प्रोजेक्ट. इन संसाधनों को हटाने में मदद करने के लिए, Android Studio में लिंट की जांच की गई है समस्या को कैसे हल करें. टूल का इस्तेमाल करने के लिए, नीचे दिया गया तरीका अपनाएं:

  1. Control+Alt+Shift+I दबाएं (Mac OS पर Command+Alt+Shift+I).
  2. स्क्रीन पर दिख रहे डायलॉग बॉक्स में, "unused resources" टाइप करें.
  3. संसाधन का इस्तेमाल शुरू करने के लिए, इस्तेमाल नहीं किए जा रहे संसाधन विकल्प चुनें जांच प्रक्रिया.

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

इस्तेमाल न होने वाली लाइब्रेरी हटाना

जैसे-जैसे कोई ऐप्लिकेशन अपने दायरे में बढ़ता जाता है, वैसे-वैसे उसे कई डिवाइसों पर निर्भर रहना पड़ता है. खास तौर पर, इनमें से कोई एक कैटगरी:

  • नेटिव लाइब्रेरी: ऐसी लाइब्रेरी जिनमें आपके इंस्टैंट कोड का नेटिव कोड होता है ऐप कभी नहीं चलता.
  • ट्रांज़िटिव डिपेंडेंसी: ऐसी लाइब्रेरी जिन पर आपके ऐप्लिकेशन को इंपोर्ट किया जाता है लाइब्रेरी निर्भर करती हैं.

Android Studio में ऐसे कई काम के टूल मौजूद हैं जिनकी मदद से, ग़ैर-ज़रूरी चीज़ों की पहचान की जा सकती है आपके ऐप्लिकेशन के प्रोजेक्ट पर डिपेंडेंसी:

बाहरी लाइब्रेरी

Android Studio के प्रोजेक्ट व्यू में, बाहरी लाइब्रेरी का एक सेक्शन शामिल होता है.

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

APK ऐनालाइज़र

तुलना करने के लिए, APK ऐनालाइज़र टूल का इस्तेमाल किया जा सकता है अलग-अलग बिल्ड के लिए, जिनमें इंस्टैंट ऐप्लिकेशन बिल्ड भी शामिल हैं.

आपके ऐप्लिकेशन को किन लाइब्रेरी की ज़रूरत नहीं है, यह तय करने के बाद उन्हें इस हिसाब से बाहर रखें अपनी Gradle बिल्ड फ़ाइल में इससे मिलती-जुलती लाइनें जोड़ना:

<feature_module>/build.gradle

ग्रूवी

dependencies {
    implementation('some-important-but-large-library') {
        exclude group: 'com.example.imgtools', module: 'native'
    }
}

Kotlin

dependencies {
    implementation('some-important-but-large-library') {
        exclude(group = "com.example.imgtools", module = "native")
    }
}

अपने ऐप्लिकेशन के कुल इंपोर्ट साइज़ को कम करने के बारे में ज़्यादा जानकारी के लिए डिपेंडेंसी के लिए, डिपेंडेंसी के लिए Gradle की गाइड देखें मैनेजमेंट.

ऐसेट की क्लाउड डिलीवरी लागू करना

अगर आपको साइज़ को और कम करना है, तो आपको ऐसेट की क्लाउड डिलीवरी पर भरोसा करना पड़ सकता है.