अपने प्रोजेक्ट की बिल्ड परफ़ॉर्मेंस की जांच करने के लिए, बिल्ड ऐनलिसिस टूल का इस्तेमाल करें. हर बिल्ड के लिए, Build Analyzer सबसे ज़रूरी जानकारी दिखाता है. इससे आपको बिल्ड की परफ़ॉर्मेंस में होने वाली गिरावट की पहचान करने और उसे ठीक करने में मदद मिलती है.
बिल्ड की परफ़ॉर्मेंस को बेहतर बनाने के लिए अन्य रणनीतियों के बारे में जानने के लिए, बिल्ड की स्पीड को ऑप्टिमाइज़ करें लेख पढ़ें.
शुरू करें
हर बार ऐप्लिकेशन बनाने पर, Build Analyzer एक रिपोर्ट बनाता है. साथ ही, बिल्ड विंडो में, नई रिपोर्ट का डेटा दिखाता है.
शुरू करने के लिए, यह तरीका अपनाएं:
- अगर आपने अब तक अपना ऐप्लिकेशन नहीं बनाया है, तो उसे इनमें से किसी एक तरीके से बनाएं:
- मेन्यू बार में जाकर, Build > Make Project पर क्लिक करें.
- Android ऐप्लिकेशन बंडल या APK बनाने के लिए, मेन्यू बार में जाकर Build > Build Bundle(s) / APK(s) > Build Bundle(s) या Build > Build Bundle(s) / APK(s) > Build APK(s) पर क्लिक करें.
- बनाएं विंडो खोलने के लिए, मेन्यू बार में जाकर व्यू > टूल विंडो > बनाएं चुनें.
- Build Analyzer में बिल्ड रिपोर्ट देखने के लिए, Build विंडो में Build Analyzer टैब पर क्लिक करें.
ऐसा हो सकता है कि बिल्ड ऐनलाइज़र, अलग-अलग बिल्ड के लिए अलग-अलग डेटा दिखाए. इसलिए, अपने प्रोजेक्ट को कई बार बिल्ड करना और डेटा की तुलना करना फ़ायदेमंद होता है. इससे पैटर्न की पहचान की जा सकती है.
उन प्लगिन को देखें जिनके टास्क से, बिल्ड की अवधि तय होती है
बिल्ड पूरा होने के बाद, पहली बार Build Analyzer खोलने पर, विंडो में बिल्ड के विश्लेषण की खास जानकारी दिखती है. जैसा कि पहली इमेज में दिखाया गया है.

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

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

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

चेतावनी के टाइप
Build Analyzer, इस तरह की चेतावनियों की रिपोर्ट करता है:
हमेशा टास्क चलाना: हमेशा चलने वाले टास्क की वजह से, अन्य टास्क हर बिल्ड पर चलते हैं. हालांकि, ऐसा करना ज़रूरी नहीं है. आपको यह चेतावनी इन दो मुख्य वजहों से दिख सकती है:
(ज़्यादा सामान्य) आपने टास्क के इनपुट और आउटपुट की जानकारी सही तरीके से नहीं दी है. अगर ऐसा है, तो आपको अपने टास्क के लिए इनपुट और आउटपुट के बारे में सही तरीके से बताना होगा. इसका मतलब है कि आपको खुद इनपुट और आउटपुट तय करने होंगे. इसके अलावा, अगर चेतावनी ट्रिगर करने वाले टास्क, तीसरे पक्ष के प्लगिन से जुड़े हैं, तो आपको प्लगिन के वर्शन बदलने होंगे.
(कम सामान्य) किसी टास्क के लिए
upToDateWhen
को false पर सेट किया गया है. ऐसा नहीं करना चाहिए. ऐसा हो सकता है कि कोई लॉजिक गलत हो याupToDateWhen
को गलत के तौर पर हार्डकोड किया गया हो. अगर कोई लॉजिक फ़ॉल्स के तौर पर दिखता है, तो हो सकता है कि यह जान-बूझकर किया गया हो. ऐसे में, आपके पास चेतावनी को अनदेखा करने का विकल्प होता है. अगरupToDateWhen
को फ़ॉल्स के तौर पर हार्डकोड किया गया है, तो आपको अपने कोड से हार्डकोडिंग हटानी चाहिए.
टास्क सेटअप करने से जुड़ी समस्याएं: यह चेतावनी उन टास्क के लिए जनरेट की जाती है जो आउटपुट के तौर पर एक ही डायरेक्ट्री का इस्तेमाल करते हैं. इसका मतलब है कि उन टास्क के आउटपुट को बिल्ड के बीच सेव नहीं किया जा रहा है. साथ ही, उन टास्क को हमेशा चलाया जाता है, भले ही कोई बदलाव न किया गया हो. इस चेतावनी को ठीक करने के लिए, आपको अपने टास्क के लिए अलग-अलग आउटपुट डायरेक्ट्री तय करनी होंगी. इसका मतलब है कि आपको खुद अलग-अलग आउटपुट डायरेक्ट्री तय करनी होंगी. इसके अलावा, अगर चेतावनी ट्रिगर करने वाले टास्क, तीसरे पक्ष के प्लगिन से जुड़े हैं, तो प्लगिन के वर्शन बदले जा सकते हैं.
नॉन-इंक्रीमेंटल एनोटेशन प्रोसेसर: यह चेतावनी तब जनरेट होती है, जब कोई एनोटेशन प्रोसेसर नॉन-इंक्रीमेंटल होता है और इसकी वजह से
JavaCompile
टास्क हमेशा नॉन-इंक्रीमेंटल तरीके से चलता है. इस चेतावनी को ठीक करने के लिए, इंक्रीमेंटल एनोटेशन प्रोसेसर पर स्विच करें.कॉन्फ़िगरेशन कैश: यह चेतावनी तब दिखती है, जब आपके प्रोजेक्ट के लिए कॉन्फ़िगरेशन कैशिंग की सुविधा चालू नहीं होती है. Build Analyzer, बिल्ड की एक सीरीज़ से होकर गुज़रता है. इससे यह पता चलता है कि आपका प्रोजेक्ट कॉन्फ़िगरेशन कैश मेमोरी के साथ काम करता है या नहीं. अगर कंपैटिबिलिटी की जांच पूरी हो जाती है, तो Build Analyzer से कॉन्फ़िगरेशन कैश मेमोरी की सुविधा चालू की जा सकती है.
Jetifier की जांच करें: यह चेतावनी तब दिखती है, जब आपके प्रोजेक्ट में
enableJetifier
फ़्लैग मौजूद हो और चालू हो. इसका मतलब है कि अगर आपकीgradle.properties
फ़ाइल मेंandroid.enableJetifier=true
मौजूद है, तो यह चेतावनी दिखेगी. Build Analyzer यह जांच कर सकता है कि फ़्लैग को सुरक्षित तरीके से हटाया जा सकता है या नहीं. इससे आपके प्रोजेक्ट की परफ़ॉर्मेंस बेहतर हो सकती है. साथ ही, Android Support लाइब्रेरी से माइग्रेट किया जा सकता है.
डाउनलोड पर पड़ने वाले असर की जांच करना
Build Analyzer, डिपेंडेंसी डाउनलोड करने में लगे समय की खास जानकारी देता है. साथ ही, हर रिपॉज़िटरी के लिए डाउनलोड की गई फ़ाइलों की पूरी जानकारी देता है. डाउनलोड किए गए वीडियो के असर को देखने के लिए, ड्रॉपडाउन से डाउनलोड किए गए वीडियो को चुनें. यह जानकारी, सिंक करें विंडो में भी उपलब्ध है.
इस जानकारी का इस्तेमाल करके, यह पता लगाया जा सकता है कि अनचाहे डिपेंडेंसी डाउनलोड से, आपकी बिल्ड परफ़ॉर्मेंस पर बुरा असर पड़ रहा है या नहीं. यह खास तौर पर इंक्रीमेंटल बिल्ड के दौरान ज़रूरी है, जिसमें आर्टफ़ैक्ट लगातार डाउनलोड नहीं होने चाहिए.
खास तौर पर, इस जानकारी का इस्तेमाल कॉन्फ़िगरेशन से जुड़ी समस्याओं का पता लगाने के लिए किया जा सकता है. जैसे, डिपेंडेंसी के डाइनैमिक वर्शन का इस्तेमाल करने की वजह से, अनचाहे डाउनलोड होते हैं. इसके अलावा, अगर आपको किसी खास रिपॉज़िटरी के लिए, अनुरोध पूरे न होने की ज़्यादा संख्या दिखती है, तो इसका मतलब यह हो सकता है कि रिपॉज़िटरी को हटा दिया जाना चाहिए या उसे रिपॉज़िटरी कॉन्फ़िगरेशन में नीचे ले जाना चाहिए.

[सिर्फ़ Windows के लिए] एंटीवायरस सॉफ़्टवेयर के असर की जांच करना
Build Analyzer आपको बताता है कि एंटीवायरस सॉफ़्टवेयर की वजह से, आपकी बिल्ड परफ़ॉर्मेंस पर असर पड़ सकता है या नहीं. ऐसा तब हो सकता है, जब Windows Defender जैसे एंटीवायरस सॉफ़्टवेयर, Gradle की ओर से इस्तेमाल की जाने वाली डायरेक्ट्री को रीयलटाइम में स्कैन कर रहा हो. Build Analyzer, ऐक्टिव स्कैनिंग से बाहर रखने के लिए डायरेक्ट्री की सूची का सुझाव देता है. साथ ही, अगर हो सके, तो Windows Defender फ़ोल्डर को स्कैन से बाहर रखने की सूची में उन्हें जोड़ने के लिए एक लिंक देता है.