ऐप्लिकेशन ऑप्टिमाइज़ेशन की सुविधा चालू करना

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

  • तेजी से शुरू कर सकते हैं
  • रेंडरिंग और रनटाइम परफ़ॉर्मेंस को बेहतर बनाया गया है
  • कम ANR

ऐप्लिकेशन ऑप्टिमाइज़ेशन की सुविधा चालू करने के लिए, अपने रिलीज़ बिल्ड's ऐप्लिकेशन-लेवल की बिल्ड स्क्रिप्ट में isMinifyEnabled = true (कोड ऑप्टिमाइज़ेशन के लिए) और isShrinkResources = true (संसाधन ऑप्टिमाइज़ेशन के लिए) सेट करें. इसके लिए, यहां दिया गया कोड देखें. हमारा सुझाव है कि आप हमेशा दोनों सेटिंग चालू रखें. हमारा यह भी सुझाव है कि ऐप्लिकेशन ऑप्टिमाइज़ेशन की सुविधा को सिर्फ़ अपने ऐप्लिकेशन के उस फ़ाइनल वर्शन में चालू करें जिसे पब्लिश करने से पहले टेस्ट किया जाता है. आम तौर पर, यह रिलीज़ बिल्ड होता है. ऐसा इसलिए, क्योंकि ऑप्टिमाइज़ेशन की वजह से आपके प्रोजेक्ट को बिल्ड होने में ज़्यादा समय लगता है. साथ ही, कोड में बदलाव करने के तरीके की वजह से डीबग करना मुश्किल हो सकता है.

Kotlin

android {
    buildTypes {
        release {

            // Enables code-related app optimization.
            isMinifyEnabled = true

            // Enables resource shrinking.
            isShrinkResources = true

            proguardFiles(
                // Default file with automatically generated optimization rules.
                getDefaultProguardFile("proguard-android-optimize.txt"),

                ...
            )
            ...
        }
    }
    ...
}

Groovy

android {
    buildTypes {
        release {

            // Enables code-related app optimization.
            minifyEnabled true

            // Enables resource shrinking.
            shrinkResources true

            // Default file with automatically generated optimization rules.
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')

            ...
        }
    }
}

छोटे ऐप्लिकेशन के लिए, इस्तेमाल नहीं किए जाने वाले रिसॉर्स को हटाने की प्रोसेस को ऑप्टिमाइज़ करना

Android Gradle Plugin (AGP) के 8.12.0 वर्शन में, ऑप्टिमाइज़ किए गए संसाधन को छोटा करने की सुविधा जोड़ी गई है. इसका मकसद, संसाधन और कोड ऑप्टिमाइज़ेशन को इंटिग्रेट करना है, ताकि और भी छोटे और तेज़ ऐप्लिकेशन बनाए जा सकें.

ऑप्टिमाइज़ किए गए संसाधन को छोटा करने की सुविधा चालू करना

AGP के 9.0.0 से पहले के वर्शन के लिए, ऑप्टिमाइज़ की गई नई रिसोर्स श्रिंकिंग पाइपलाइन चालू करने के लिए, अपने प्रोजेक्ट की gradle.properties फ़ाइल में यह जोड़ें:

android.r8.optimizedResourceShrinking=true

अगर AGP 9.0.0 या इसके बाद के वर्शन का इस्तेमाल किया जा रहा है, तो आपको android.r8.optimizedResourceShrinking=true सेट करने की ज़रूरत नहीं है. ऑप्टिमाइज़ किए गए रिसोर्स को छोटा करने की सुविधा, आपके बिल्ड कॉन्फ़िगरेशन में isShrinkResources = true चालू होने पर अपने-आप लागू हो जाती है.

R8 ऑप्टिमाइज़ेशन सेटिंग की पुष्टि करना और उन्हें कॉन्फ़िगर करना

R8 को ऑप्टिमाइज़ेशन की पूरी सुविधाओं का इस्तेमाल करने की अनुमति देने के लिए, अपने प्रोजेक्ट की gradle.properties फ़ाइल से यह लाइन हटाएं. ऐसा तब करें, जब यह लाइन मौजूद हो:

android.enableR8.fullMode=false # Remove this line from your codebase.

ध्यान दें कि ऐप्लिकेशन ऑप्टिमाइज़ेशन की सुविधा चालू करने पर, स्टैक ट्रेस को समझना मुश्किल हो जाता है. ऐसा खास तौर पर तब होता है, जब R8 क्लास या तरीके के नामों को बदल देता है. अपने सोर्स कोड से सही तरीके से मेल खाने वाले स्टैक ट्रेस पाने के लिए, ओरिजनल स्टैक ट्रेस वापस पाना लेख पढ़ें.

अगर R8 चालू है, तो आपको स्टार्टअप प्रोफ़ाइलें भी बनानी चाहिए, ताकि स्टार्टअप की परफ़ॉर्मेंस और बेहतर हो सके.

अगर ऐप्लिकेशन ऑप्टिमाइज़ेशन की सुविधा चालू करने पर गड़बड़ियां होती हैं, तो उन्हें ठीक करने के लिए यहां कुछ रणनीतियां दी गई हैं: