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