अगर कोई ऐप्लिकेशन धीरे जवाब देता है, रुक-रुककर चलने वाला ऐनिमेशन दिखाता है, फ़्रीज़ हो जाता है या बहुत ज़्यादा बैटरी खर्च करता है, तो उसका परफ़ॉर्मेंस खराब हो जाता है. परफ़ॉर्मेंस से जुड़ी समस्याओं को ठीक करने के लिए, अपने ऐप्लिकेशन की प्रोफ़ाइल बनानी होती है. इसके अलावा, उन जगहों की पहचान करनी होती है जहां आपका ऐप्लिकेशन सीपीयू, मेमोरी, ग्राफ़िक या डिवाइस की बैटरी जैसे संसाधनों का गलत इस्तेमाल करता है. इस विषय में, Android Studio के टूल और तकनीकों के बारे में बताया गया है. इनका इस्तेमाल करके, परफ़ॉर्मेंस से जुड़ी सामान्य समस्याओं को ठीक किया जा सकता है.
पूरे Android Studio IDE (सिर्फ़ Windows या Linux) को चलाए बिना, स्टैंडअलोन प्रोफ़ाइलर चलाने का तरीका जानने के लिए, स्टैंडअलोन प्रोफ़ाइलर चलाना लेख पढ़ें.
ज़रूरी शर्तें
हमारा सुझाव है कि अपने ऐप्लिकेशन की प्रोफ़ाइल बनाने के लिए, आपके पास ये चीज़ें हों:
रिलीज़ बिल्ड वैरिएंट वाला ऐसा ऐप्लिकेशन जिसमें
profileable
मेनिफ़ेस्ट कॉन्फ़िगरेशन चालू है. इसे प्रोफ़ाइल किए जा सकने वाले ऐप्लिकेशन भी कहा जाता है. डिफ़ॉल्ट रूप से, ऐप्लिकेशन में यह कॉन्फ़िगरेशन 'सही' पर सेट होता है. इस कॉन्फ़िगरेशन की जांच करने या उसे बदलने के लिए, अपने ऐप्लिकेशन की मेनिफ़ेस्ट याAndroidManifest.xml
फ़ाइल खोलें. इसके बाद,<application>
सेक्शन में जाकर,profileable
मेनिफ़ेस्ट कॉन्फ़िगरेशन देखें:<profileable android:shell="true" />
वर्चुअल या फ़िज़िकल टेस्ट डिवाइस, जो एपीआई लेवल 29 या उसके बाद के वर्शन पर काम करता हो और उस पर Google Play हो.
Android Gradle प्लग इन 7.3 या इसके बाद वाला वर्शन.
प्रोफ़ाइल किए जा सकने वाले बनाम डीबग किए जा सकने वाले ऐप्लिकेशन
प्रोफ़ाइल किए जा सकने वाले ऐप्लिकेशन की मदद से, प्रोफ़ाइलिंग से जुड़े ज़्यादातर सामान्य काम किए जा सकते हैं. हालांकि, अगर आपको Java/Kotlin ऐलोकेशन रिकॉर्ड करने या हीप डंप कैप्चर करने की ज़रूरत है, तो डीबग किए जा सकने वाले ऐप्लिकेशन का इस्तेमाल करें. डीबग करने लायक ऐप्लिकेशन प्रोसेस और एपीआई लेवल 26 या उसके बाद के वर्शन पर चलने वाले डिवाइस से, आपको इंटरैक्शन की टाइमलाइन भी दिखती है. इसमें, टास्क व्यू में उपयोगकर्ता इंटरैक्शन और ऐप्लिकेशन लाइफ़साइकल इवेंट दिखते हैं.
डीबग किया जा सकने वाला ऐप्लिकेशन, आपके ऐप्लिकेशन के debug
बिल्ड वैरिएंट पर आधारित होता है. इससे आपको डीबगर जैसे डेवलपमेंट टूल इस्तेमाल करने की सुविधा मिलती है. हालांकि, इसकी परफ़ॉर्मेंस पर कुछ असर पड़ता है. प्रोफ़ाइल करने लायक ऐप्लिकेशन, आपके ऐप्लिकेशन के release
बिल्ड वैरिएंट के हिसाब से होता है. साथ ही, यह डीबग बिल्ड के परफ़ॉर्मेंस ओवरहेड के बिना, सामान्य प्रोफ़ाइलिंग टास्क के सबसेट को चालू करता है.
प्रोफ़ाइल बनाने की सुविधा वाला ऐप्लिकेशन बनाना और चलाना
Android Studio में, प्रोफ़ाइल किया जा सकने वाला ऐप्लिकेशन बनाने और चलाने के लिए, यह तरीका अपनाएं:
- अगर आपके पास पहले से कोई रन/डीबग कॉन्फ़िगरेशन नहीं है, तो उसे बनाएं.
- रिलीज़ का बिल्ड वैरिएंट चुनें (बिल्ड > बिल्ड वैरिएंट चुनें).
- ज़्यादा कार्रवाइयां > कम ओवरहेड वाली प्रोफ़ाइल 'ऐप्लिकेशन' या पूरे डेटा वाली प्रोफ़ाइल 'ऐप्लिकेशन' पर क्लिक करें. "ऐप्लिकेशन", रन कॉन्फ़िगरेशन का नाम है. इसलिए, यह आपके लिए अलग हो सकता है. इन दोनों विकल्पों में से किसी एक को चुनने के लिए, ज़रूरी शर्तें देखें. ऐप्लिकेशन आपके टेस्ट डिवाइस पर खुल जाएगा और Android Studio में प्रोफ़ाइलर पैनल खुल जाएगा.
अगर ये निर्देश आपके लिए काम नहीं करते हैं, तो मैन्युअल तरीके से, प्रोफ़ाइल किए जा सकने वाले ऐप्लिकेशन को बनाएं और चलाएं लेख पढ़ें.
प्रोफ़ाइल बनाना शुरू करना
प्रोफ़ाइल बनाने का टास्क शुरू करने के लिए, यह तरीका अपनाएं:
Profiler पैनल में, होम टैब में मौजूद सूची से कोई प्रोसेस चुनें. ज़्यादातर मामलों में, आपको वह मुख्य प्रोसेस चुननी होगी जो आपके ऐप्लिकेशन को दिखाती है.
Tasks सेक्शन से, प्रोफ़ाइल बनाने का कोई टास्क चुनें. टास्क के बारे में ज़्यादा जानने के लिए, इस सेक्शन में दूसरे पेज देखें. प्रोफ़ाइल बनाने के सभी टास्क, हर प्रोसेस के लिए उपलब्ध नहीं होते. अगर आपको नहीं पता कि कहां से शुरू करें, तो अपने ऐप्लिकेशन की लाइव जांच करके, परफ़ॉर्मेंस गतिविधि की पूरी जानकारी पाएं.
प्रोसेस शुरू होने पर प्रोफ़ाइलर टास्क शुरू करें ड्रॉप-डाउन का इस्तेमाल करके चुनें कि प्रोफ़ाइलर टास्क को स्टार्टअप से शुरू करना है या प्रोसेस के चलने के दौरान उससे अटैच करना है. अगर आपको ऐप्लिकेशन के शुरू होने में लगने वाले समय को कम करना है या ऐप्लिकेशन के शुरू होने के दौरान होने वाली प्रोसेस को कैप्चर करना है, तो आपको स्टार्टअप को शामिल करना चाहिए. अगर ऐसा नहीं है, तो अपने ऐप्लिकेशन की मौजूदा स्थिति पर प्रोफ़ाइलिंग शुरू की जा सकती है.
प्रोफ़ाइलर टास्क शुरू करें पर क्लिक करें. टास्क अपने टैब में शुरू होता है.
अपने ऐप्लिकेशन से इंटरैक्ट करें, ताकि गतिविधियां ट्रिगर हो सकें.
रिकॉर्डिंग बंद करें (अगर लागू हो), उसके पार्स होने का इंतज़ार करें, और नतीजे देखें.
ट्रेस की तुलना करना, उसे एक्सपोर्ट करना, और इंपोर्ट करना
प्रोफ़ाइल बनाने का कोई टास्क बंद करने पर, वह प्रोफ़ाइलर पैनल में मौजूद पिछली रिकॉर्डिंग टैब में अपने-आप सेव हो जाता है. अलग-अलग स्थितियों में संसाधन के इस्तेमाल की तुलना करने के लिए, सेव की गई इन रिकॉर्डिंग का इस्तेमाल किया जा सकता है. रिकॉर्डिंग, मौजूदा Android Studio सेशन के दौरान सेव रहती हैं. अगर आपको उन्हें ज़्यादा समय तक सेव रखना है, तो रिकॉर्डिंग एक्सपोर्ट करें पर क्लिक करके उन्हें एक्सपोर्ट करें. सभी तरह के ट्रेस एक्सपोर्ट नहीं किए जा सकते.
Android Studio के पिछले रन से कोई ट्रेस इंपोर्ट करने के लिए, पिछली रिकॉर्डिंग टैब में जाकर, रिकॉर्डिंग इंपोर्ट करें पर क्लिक करें और अपनी ट्रेस फ़ाइल चुनें. किसी फ़ाइल को Android Studio के एडिटर विंडो में खींचकर छोड़कर भी इंपोर्ट किया जा सकता है.
रिकॉर्डिंग के कॉन्फ़िगरेशन में बदलाव करना
प्रोफ़ाइलर के टास्क रिकॉर्डिंग के कॉन्फ़िगरेशन में बदलाव करने के लिए, प्रोफ़ाइलर की सेटिंग पर क्लिक करें. इन दो मुख्य सेटिंग को टॉगल किया जा सकता है:
- सैंपलिंग वाले टास्क के लिए, सैंपल इंटरवल से हर सैंपल के बीच का समय पता चलता है. इंटरवल जितना छोटा होगा, रिकॉर्ड किए गए डेटा के लिए फ़ाइल साइज़ की सीमा उतनी ही तेज़ी से पूरी होगी.
- फ़ाइल के साइज़ की सीमा से पता चलता है कि कनेक्ट किए गए डिवाइस में कितना डेटा डाला जा सकता है. रिकॉर्डिंग बंद करने पर, Android Studio इस डेटा को पार्स करता है और उसे प्रोफ़ाइलर विंडो में दिखाता है. अगर डेटा की सीमा बढ़ा दी जाती है और ज़्यादा डेटा रिकॉर्ड किया जाता है, तो Android Studio को फ़ाइल पार्स करने में ज़्यादा समय लगता है. साथ ही, हो सकता है कि वह काम न करे.