Wear OS पर Jetpack Compose की परफ़ॉर्मेंस

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

Jetpack Compose की परफ़ॉर्मेंस गाइड का इस्तेमाल करके, अपने ऐप्लिकेशन को कॉन्फ़िगर करें और उसे डेवलप करें. इससे, Jetpack Compose का इस्तेमाल करके, ऐप्लिकेशन की परफ़ॉर्मेंस को ऑप्टिमाइज़ किया जा सकेगा. इस दस्तावेज़ में, बताई गई कुछ तकनीकों के बारे में हाइलाइट किया गया है.

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

परफ़ॉर्मेंस को बेहतर बनाने के लिए ज़रूरी तकनीकें

सबसे पहले, परफ़ॉर्मेंस को बेहतर बनाने वाले टूल टाइप का इस्तेमाल करें. जैसे, बेसलाइन प्रोफ़ाइलें (स्टार्टअप प्रोफ़ाइलें भी शामिल हैं) और R8 कोड ऑप्टिमाइज़र.

शुरू करने से पहले, हमारा सुझाव है कि आप Compose की डिपेंडेंसी को कम से कम 1.8 वर्शन पर अपडेट करें. इस वर्शन में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, लाइब्रेरी की स्थिरता को बेहतर बनाया गया है. अपडेट करने का तरीका जानने के लिए, डिपेंडेंसी के बारे में जानकारी देना में दिए गए निर्देश देखें. ज़्यादा जानने के लिए, 1.8 वर्शन की रिलीज़ के बारे में हमारा ब्लॉग और Compose में नया क्या है I/O टॉक देखें.

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

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

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

नीचे दिए गए तरीकों का इस्तेमाल करके, अपनी बेसलाइन प्रोफ़ाइलों की पुष्टि करें:

  • मैक्रोबेंचमार्क टेस्ट का इस्तेमाल करें.
  • अपने ऐप्लिकेशन की प्रोफ़ाइल कॉन्फ़िगरेशन की स्थिति की पुष्टि करने के लिए, ADB के कुछ खास कमांड का इस्तेमाल करें.

इन दोनों तकनीकों को इस्तेमाल करने का तरीका, परफ़ॉर्मेंस मेज़रमेंट और पुष्टि गाइड में बताया गया है.

स्टार्टअप प्रोफ़ाइल

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

स्टार्टअप प्रोफ़ाइल जोड़ने से, आपके ऐप्लिकेशन के APK का साइज़ बढ़ जाएगा. इसलिए, प्रोडक्शन रिलीज़ में इसे जोड़ने से पहले, APK के साइज़ और स्टार्टअप में लगने वाले समय के बीच के फ़र्क़ का आकलन ज़रूर कर लें.

जब आपको अपनी बेसलाइन प्रोफ़ाइल के सेटअप के बारे में सामान्य जानकारी मिल जाए, तब शुरू करने के लिए स्टार्टअप प्रोफ़ाइल बनाना लेख पढ़ें.

R8

ऐप्लिकेशन का साइज़ कम करने और उन्हें ऑप्टिमाइज़ करने के लिए, R8 कंपाइलर का इस्तेमाल करें. R8, इस्तेमाल न होने वाले कोड और संसाधनों को हटाता है. साथ ही, रनटाइम परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए कोड को फिर से लिखता है. इसके अलावा, यह और भी कई काम करता है.

परफ़ॉर्मेंस की खास जानकारी को बेहतर बनाने के तरीके से जुड़ी गाइड में, R8 से जुड़ी बातों के बारे में पढ़ें. इनमें इस्तेमाल न किए गए संसाधनों को हटाने के मुख्य चरण भी शामिल हैं.

परफ़ॉर्मेंस मेज़रमेंट और पुष्टि करना

Android पर परफ़ॉर्मेंस मेज़रमेंट की सामान्य रणनीतियों के बारे में जानने के लिए, ऐप्लिकेशन की परफ़ॉर्मेंस मेज़र करने की खास जानकारी लेख पढ़ें. इस सेक्शन में, उस दस्तावेज़ में बताई गई कुछ तकनीकों के बारे में बताया गया है.

मेज़रमेंट के लिए कोई बिल्ड वैरिएंट चुनना

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

अपने ऐप्लिकेशन की परफ़ॉर्मेंस को सही तरीके से समझने के लिए, उसे रिलीज़ मोड में चलाएं.

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

हालांकि, बेंचमार्क टेस्टिंग करते समय, बेंचमार्क बिल्ड वैरिएंट का इस्तेमाल करें. इसमें रिलीज़ डिबगिंग से जुड़े कुछ मुख्य अंतर होते हैं. ज़्यादा जानकारी के लिए, मैक्रोबेंचमार्क सेट अप करने की गाइड देखें.

अपने ऐप्लिकेशन की बेसलाइन प्रोफ़ाइलों की पुष्टि करना

अपनी प्रोफ़ाइल की स्थिति देखकर शुरू करें:

adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME

अगर स्थिति status=speed-profile नहीं है, तो इसका मतलब है कि ऐप्लिकेशन को ऑप्टिमाइज़ करने के लिए, प्रोफ़ाइल के नियमों को अभी तक लागू नहीं किया गया है.

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

adb shell cmd package bg-dexopt-job

इसके बाद, पिछली कमांड को फिर से चलाकर यह देखा जा सकता है कि स्टेटस अब speed-profile है.

अगर ऑप्टिमाइज़ेशन, ऐप्लिकेशन इंस्टॉल करते समय किया जाता है, तो बेसलाइन प्रोफ़ाइल को साइडलोड करना लेख पढ़ें.

UI Automator API

संभावित ऑप्टिमाइज़ेशन के लिए उपयोगकर्ता के सफ़र की जांच करते समय, यूज़र इंटरफ़ेस (यूआई) के अलग-अलग हिस्सों की परफ़ॉर्मेंस की तुलना करने के लिए, UI Automator API का इस्तेमाल करें.

यह प्रोग्राम के हिसाब से, यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्शन को अपने-आप पूरा करता है.

मैक्रोबेंचमार्क टेस्ट

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

बेसलाइन प्रोफ़ाइलों की परफ़ॉर्मेंस की पुष्टि करने के लिए, मैक्रोबेंचमार्क का इस्तेमाल करने का उदाहरण देखने के लिए, GitHub पर परफ़ॉर्मेंस के सैंपल देखें.

JankStats लाइब्रेरी

ऐप्लिकेशन में परफ़ॉर्मेंस से जुड़ी समस्याओं को ट्रैक और उनका विश्लेषण करने के लिए, JankStats लाइब्रेरी का इस्तेमाल करें.

उदाहरण के लिए, GitHub पर JankStats का सैंपल देखें.

सिस्टम ट्रेस करने वाला टूल

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

अन्य टूल

परफ़ॉर्मेंस को बेहतर बनाने वाले टूल के अलावा, डेवलपर अपनी प्रॉडक्टिविटी और वर्कफ़्लो को बेहतर बनाने के लिए अन्य टूल का इस्तेमाल कर सकते हैं.

Android Studio में प्रॉडक्टिविटी बढ़ाने वाले टूल

Android Studio में कई टूल उपलब्ध हैं. इनकी मदद से, परफ़ॉर्मेंस को बेहतर बनाने के तरीके ढूंढने में लगने वाला समय कम किया जा सकता है.

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

Wear OS वाले सभी फ़िज़िकल डिवाइसों पर, परफ़ॉर्मेंस से जुड़े सभी फ़ाइनल टेस्ट चलाएं. इससे आपको टारगेट किए गए उपयोगकर्ताओं के बारे में सटीक जानकारी मिलेगी.

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

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

अन्य संसाधन

Android की परफ़ॉर्मेंस से जुड़ी नई जानकारी पाने के लिए, ऐप्लिकेशन की परफ़ॉर्मेंस गाइड में नई खबरें और वीडियो देखें.