बेहतर उपयोगकर्ता अनुभव देने के लिए, आपको अपने ऐप्लिकेशन को ऑप्टिमाइज़ करना चाहिए, ताकि वह कम से कम साइज़ का हो और तेज़ी से काम करे. हमारा ऐप्लिकेशन ऑप्टिमाइज़र, R8, आपके ऐप्लिकेशन को बेहतर बनाता है. इसके लिए, यह इस्तेमाल न होने वाले कोड और संसाधनों को हटाता है, रनटाइम परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए कोड को फिर से लिखता है, और अन्य काम करता है. आपके उपयोगकर्ताओं के लिए इसका मतलब यह है कि:
- तेजी से शुरू कर सकते हैं
- रेंडरिंग और रनटाइम परफ़ॉर्मेंस को बेहतर बनाया गया है
- कम एएनआर
ऐप्लिकेशन ऑप्टिमाइज़ेशन की सुविधा चालू करने के लिए, अपने रिलीज़ बिल्ड'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 प्लगिन (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 चालू है, तो आपको स्टार्टअप की परफ़ॉर्मेंस को और बेहतर बनाने के लिए, स्टार्टअप प्रोफ़ाइलें बनानी चाहिए.
अगर ऐप्लिकेशन ऑप्टिमाइज़ेशन की सुविधा चालू करने पर गड़बड़ियां होती हैं, तो उन्हें ठीक करने के लिए यहां कुछ रणनीतियां दी गई हैं:
- कुछ कोड को बिना बदले रखने के लिए, बदलाव न करने से जुड़े नियम जोड़ें.
- ऑप्टिमाइज़ेशन को धीरे-धीरे लागू करें.
- अपने कोड को अपडेट करें, ताकि ऑप्टिमाइज़ेशन के लिए बेहतर लाइब्रेरी का इस्तेमाल किया जा सके.
अगर आपको अपनी बिल्ड स्पीड को ऑप्टिमाइज़ करना है, तो कॉन्फ़िगर करें कि R8 कैसे काम करता है लेख पढ़ें. इसमें आपके एनवायरमेंट के हिसाब से R8 को कॉन्फ़िगर करने के बारे में जानकारी दी गई है.