ऐप्लिकेशन को ऑप्टिमाइज़ करने के सबसे सही तरीके

यहां दिए गए सबसे सही तरीकों से, क्वालिटी से समझौता किए बिना अपने ऐप्लिकेशन को ऑप्टिमाइज़ किया जा सकता है.

बेसलाइन प्रोफ़ाइलें इस्तेमाल करना

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

स्टार्टअप प्रोफ़ाइल का इस्तेमाल करना

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

ऐप्लिकेशन स्टार्टअप लाइब्रेरी का इस्तेमाल करना

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

लाइब्रेरी को लेज़ी लोड करना या अपने-आप शुरू होने की सुविधा बंद करना

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

कंपोज़ेबल में स्टेट का इस्तेमाल करना

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

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

var shouldLoad by remember {mutableStateOf(false)}

if (shouldLoad) {
   MyComposable()
}

shouldLoad में बदलाव करके, शर्त वाले ब्लॉक में कंपोज़ेबल लोड करें:

LaunchedEffect(Unit) {
   shouldLoad = true
}

इससे, फिर से कंपोज़ करने की प्रोसेस ट्रिगर होती है. इसमें पहले स्निपेट में मौजूद शर्त वाले ब्लॉक का कोड शामिल होता है. ज़्यादा जानकारी के लिए, कंपोज़ेबल में स्टेट देखें.

स्प्लैश स्क्रीन को ऑप्टिमाइज़ करना

स्प्लैश स्क्रीन, ऐप्लिकेशन के स्टार्टअप का एक अहम हिस्सा होती हैं. अच्छी तरह से डिज़ाइन की गई स्प्लैश स्क्रीन का इस्तेमाल करने से, ऐप्लिकेशन के स्टार्टअप के अनुभव को बेहतर बनाने में मदद मिल सकती है. Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन में, परफ़ॉर्मेंस को बेहतर बनाने के लिए डिज़ाइन की गई स्प्लैश स्क्रीन शामिल है. ज़्यादा जानकारी के लिए, स्प्लैश स्क्रीन लेख पढ़ें.

स्केल की जा सकने वाली इमेज टाइप का इस्तेमाल करना

हमारा सुझाव है कि इमेज के लिए, वेक्टर ग्राफ़िक का इस्तेमाल करें. अगर ऐसा नहीं किया जा सकता, तो WebP इमेज का इस्तेमाल करें. WebP एक इमेज फ़ॉर्मैट है. इस फ़ॉर्मैट की मदद से, वेब पर इमेज को दो तरीकों से कंप्रेस किया जाता है. पहला तरीका लॉसलेस, जिसमें इमेज को कोई नुकसान नहीं पहुंचता और दूसरा लॉसी, जिसमें इमेज के डेटा की क्वालिटी थोड़ी खराब हो जाती है. Android Studio का इस्तेमाल करके, मौजूदा BMP, JPG, PNG या स्टैटिक GIF इमेज को WebP फ़ॉर्मैट में बदला जा सकता है. ज़्यादा जानकारी के लिए, WebP इमेज बनाना लेख पढ़ें.

इसके अलावा, स्टार्टअप के दौरान लोड की गई इमेज की संख्या और साइज़ को कम करें.

परफ़ॉर्मेंस एपीआई का इस्तेमाल करना

मीडिया चलाने के लिए परफ़ॉर्मेंस एपीआई, Android 12 (एपीआई लेवल 31) और इसके बाद के वर्शन पर उपलब्ध है. इस एपीआई का इस्तेमाल करके, डिवाइस की क्षमताओं के बारे में जाना जा सकता है. साथ ही, इसके हिसाब से कार्रवाइयां की जा सकती हैं.

कोल्ड स्टार्टअप के ट्रेस को प्राथमिकता दें

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