एंड्रॉइड स्टूडियो ग्रैडल बिल्ड स्पीड


163

अंतिम अपडेट (जून 25 से बिल्ड) के बाद से एंड्रॉइड स्टूडियो ग्रैडल में कोई भी बदलाव बहुत धीमी गति से होता है। और जब आप फ़ाइल को संपादित करते हैं और कीप पर फिर से जोड़ते हैं, तो यह ऑटोट्रैक परिवर्तनों को भी लगता है।

प्रत्येक परिवर्तन को मेरे i5 पर कई मिनट लगते हैं।

किसी भी विचार मैं अपने स्नातक परिवर्तन को कैसे तेज कर सकता हूं?



1
उन लोगों के लिए जो उत्तर और प्रश्न को पढ़ने के लिए समय लेते हैं, यह कोई डुप्लिकेट प्रश्न नहीं है, जैसा कि @Dave Jarvis द्वारा सुझाया गया है। लेकिन यह एएस के एक पुराने बीटा संस्करण से संबंधित है और शायद वर्तमान संस्करणों पर इसका कोई असर नहीं है।
एइनर सुंदरन


जवाबों:


41

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


मुझे स्पष्ट रूप से पहले टूल चर्चा समूह में शामिल होना चाहिए था।
आइरन सुंदरन ने

99

निश्चित रूप से एक फर्क पड़ता है: हाउ टू… ग्रैड अप बिल्ड टाइम

बस gradle.propertiesनिम्नलिखित निर्देशिका में एक फ़ाइल बनाएं :

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

इस लाइन को फाइल में जोड़ें:

org.gradle.daemon=true

2
अच्छा उत्तर। आगे और विस्तृत पढ़ने के लिए, इस एसओ उत्तर की जांच करें
सूफियान

12
आपके लिंक से: "नोट: यह केवल कंसोल बिल्ड को प्रभावित करता है। एंड्रॉइड स्टूडियो हमेशा एक ग्रेडल डेमॉन का उपयोग करता है (और आपकी सेटिंग्स के आधार पर कुछ अन्य अनुकूलन)।"
23

2
मेरे पास है .gradle साथ निर्देशिका gradle.properties फ़ाइल। लेकिन फिर भी इसमें काफी समय लगता है। कोई भी सुझाव
CoDe

4
इससे कोई फ़र्क नहीं पड़ता
व्लादो पांडेसिएक

और बदलाव के बाद एंड्रॉइड स्टूडियो को पुनरारंभ करें।
इमान मराशी

78

इस सेटिंग को बदलने के बाद मेरा संकलन समय 10 मिनट 10 सेकंड तक कम हो गया।

चरण 1:

सेटिंग्स (ctrl + Alt + S) ->

निर्माण, निष्पादन, तैनाती ->

संकलक ->

--offlineकमांड लाइन विकल्प बॉक्स में " " टाइप करें ।

चरण 2:

"समानांतर में स्वतंत्र मॉड्यूल की जाँच करें" चेकबॉक्स।

लागू करें पर क्लिक करें -> ठीक है

यहां छवि विवरण दर्ज करें

चरण 3: अपनी gradle.properties फ़ाइल में -> निम्न पंक्तियाँ जोड़ें

org.gradle.jvmargs=-Xmx2048M -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=true

अपडेट करें:

अगर आप एंड्रॉइड स्टूडियो 2.0 या उससे ऊपर के इंस्टेंट रन की कोशिश कर रहे हैं

सेटिंग्स → बिल्ड, एक्ज़ीक्यूशन, डिप्लॉयमेंट → इंस्टेंट रन → इंस्टेंट रन सक्षम करें।

इंस्टेंट रन के बारे में अधिक जानकारी - https://developer.android.com/studio/run/index.html#instant-run


6
मैंने यह कोशिश की और यह वास्तव में मेरे निर्माण को काफी तेजी से बढ़ाता है। मुझे पता है कि विकल्प अब इसे ऑफ़लाइन बनाने का कारण होगा, क्या इस ऑफ़लाइन के निर्माण के लिए कोई नुकसान है?
साइमन

5
@ साइमन - नुकसान यह है कि आप अपनी बिल्ड.ग्रेड फ़ाइल में पहचानी गई निर्भरता के नवीनतम संस्करणों को नहीं खींच पाएंगे। यह तेजी से चलता है क्योंकि यह उन आयातित पुस्तकालयों के कैश्ड स्नैपशॉट का उपयोग करता है। कुछ देवों के लिए, स्थिरता सर्वोपरि है, लेकिन ऑफ़लाइन होने पर भी उन्हें खत्म कर दिया जा सकता है जब वे अंततः ऑनलाइन हो जाते हैं और उन निर्भरताएं विकसित हो जाती हैं, इस प्रकार उक्त परियोजना को पीछे छोड़ दिया जाता है।
मार्क लापसा

1
धन्यवाद भाई यह एक मेरे लिए ठीक काम किया है और मेरी
ढाल

@ साइमन, जब आप विकसित करना शुरू करते हैं, तो आप बस ऊपर की सेटिंग्स सेट कर सकते हैं, फिर एक बार बंद कर सकते हैं, रात को समाप्त होने पर उन्हें बंद कर दें, अंतिम बार ऐप को चलाएं ताकि सब कुछ अभी भी सिंक में हो। या इसके साथ कोई मुद्दा होगा?
सूरोन

1
यह 33 सेकंड से घटकर 5 सेकंड :))
मिरो

62

मैं अपने पुराने Core2duo लैपटॉप (linux टकसाल पर चल रहा है) में 43 सेकंड से 25 सेकंड के लिए अपने ढाल निर्माण को कम करने में सक्षम था। android स्टूडियो में gradle.properties फ़ाइल में निम्नलिखित जोड़कर

org.gradle.parallel=true
org.gradle.daemon=true

डेमन सेटिंग क्यों तेज बनाता है पर स्रोत: https://www.timroes.de/2013/09/12/speed-up-gradle/


3
आपके लिंक से: "नोट: यह केवल कंसोल बिल्ड को प्रभावित करता है। एंड्रॉइड स्टूडियो हमेशा एक ग्रेडल डेमॉन का उपयोग करता है (और आपकी सेटिंग्स के आधार पर कुछ अन्य अनुकूलन)।"
23

2
समानांतर विकल्प ने एएस में भी मेरे निर्माण में सुधार किया।
साभार

3
समानांतर विकल्प ने मेरे निर्माण में सुधार नहीं किया।
व्लादो पांडेसिक

धन्यवाद। इस समाधान ने मेरे निर्माण का समय 7 मिनट से 23 सेकंड तक बना दिया ...
विग्नेश बाला

thanx ने मेरा निर्माण दो मिनट से 3 सेकंड तक
Pouya Samie

12

चरणों का पालन करने से यह 10 गुना तेज हो जाएगा और निर्माण समय 90% कम हो जाएगा

पहले निम्नलिखित निर्देशिका में gradle.properties नामक एक फ़ाइल बनाएँ:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

इस लाइन को फाइल में जोड़ें:

org.gradle.daemon=true
org.gradle.parallel=true

और एंड्रॉइड स्टूडियो में इस विकल्प की जांच करें

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


7

ग्रेडेल का एक नया संस्करण है (देखें 2.4)।

आप फ़ाइल मेनू से 'प्रोजेक्ट स्ट्रक्चर' डायलॉग खोलकर इसे अपने प्रोजेक्ट के लिए सेट कर सकते हैं,

Project Structure -> Project -> Gradle version

और इसे '2.4' पर सेट करें।
आप इस लिंक पर प्रदर्शन को बढ़ावा देने के बारे में अधिक पढ़ सकते हैं ।


2
धन्यवाद, ग्रैडल संस्करण 2.4 ने लगभग ~ 14 बचा लिया।
मियाओ 1007

5
इसने मेरे निर्माण के समय को और लंबा कर दिया
एग्मेने हामुतु

6

एंड्रॉइड स्टूडियो 2.1 के साथ आप तेज एप्लिकेशन बिल्ड के लिए "डेक्स इन प्रोसेस" सक्षम कर सकते हैं।

यहां छवि विवरण दर्ज करें

आप इसके बारे में अधिक जानकारी यहाँ प्राप्त कर सकते हैं: https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.vijksflyn


6

यह वही है जो मैंने किया और मेरी ग्रेडल बिल्ड गति में नाटकीय रूप से सुधार हुआ! पहली बिल्ड के लिए 1 मिनट से 20 सेकंड तक और सफल बिल्ड 40 सेकंड से 5 सेकंड तक बन गए।

में gradle.properties फ़ाइल इस जोड़ें:

org.gradle.jvmargs=-Xmx8192M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

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

इसे जोड़ो:

--debug --stacktrace -a, --no-rebuild -q, --quiet --offline

यहां देखें छवि


6

एंड्रॉइड डेवलपमेंट करते समय मैक / पीसी का उपयोग करने से बचें जिसमें केवल 8 जीबी रैम हो। जैसे ही आप 1 एमुलेटर (जीनोमिशन या अन्यथा) लॉन्च करते हैं, आपके निर्माण का समय एंड्रॉइड स्टूडियो में धीरे-धीरे बनाता है। यह तब भी होता है जब आप 1 स्रोत फ़ाइल में एक सरल एक-पंक्ति परिवर्तन करते हैं।

एमुलेटर को बंद करना और एक वास्तविक डिवाइस का उपयोग करना बहुत मदद करता है, लेकिन निश्चित रूप से यह बहुत सीमित और कम लचीला है। एमुलेटर की रैम उपयोग सेटिंग को कम करने से मदद मिल सकती है, लेकिन सबसे अच्छा तरीका यह है कि आपके लैपटॉप में कम से कम 12-16 जीबी रैम हो।

अद्यतन (जून 2017): अब कई अच्छे मध्यम.कॉम लेख हैं जो बताते हैं कि एंड्रॉइड स्टूडियो ग्रेडल को कैसे गति प्रदान करनी है, विस्तार से बताता है, और यह 8 जीबी मशीनों पर भी काम करता है:

संक्षेप में सर्वसम्मति है:

एक gradle.properties फ़ाइल बनाएँ (या तो वैश्विक ~/.gradle/gradle.propertiesया परियोजना के लिए स्थानीय), और निम्नलिखित पंक्तियाँ जोड़ें:

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true

4
  1. ऑफ़लाइन कार्य सक्षम करें

  2. निम्नलिखित कोड जोड़कर ग्रेडल प्रदर्शन में सुधार करें gradle.properties

org.gradle.daemon = true
org.gradle.parallel = true

कदम से कदम गाइड: http://www.viralandroid.com/2015/08/how-to-make-android-studio-fast.html


आइए इन उत्तरों को अलग रखें और ओपी प्रश्न के विवरणों पर ध्यान केंद्रित करें। पुन: stackoverflow.com/a/34828203 ... stackoverflow.com/a/34827929 ... stackoverflow.com/a/34827858 ... stackoverflow.com/a/34827827 ... stackoverflow.com/a/3482727788
आकर्षित किया

4
dexOptions {
    incremental true
    javaMaxHeapSize "4g"
}

1
एंड्रॉइड स्टूडियो 2018 में 'इंक्रीमेंटल ट्यूर' अप्रचलित है।
मैकर द कोडर

यह 2 साल पहले पोस्ट किया गया था।
अनुपमचूग

मुझे पता है, मैंने इसे उन लोगों के लिए कहा है जो अभी भी इन समाधानों की तलाश करते हैं;)
कोडक जूल 20'18 को

3

एंड्रॉइड टीम ऑफ़ विकिमीडिया ऐप्स के इस पृष्ठ पर रिकॉर्डिंग करना, ग्रेडेल बिल्ड को अनुकूलित करने का एक अच्छा तरीका आपके ~ / .gradle / gradle.properties में इस पंक्तियों को जोड़ रहा है।

org.gradle.daemon=true                                                          
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2048M

जिनके पास फ़ाइल नहीं है, उनके लिए इसे करने के दो तरीके हैं:

  1. प्रोजेक्ट रूट में gradle.properties नामक एक फाइल बनाकर अपने प्रोजेक्ट में स्थानीय रूप से फाइल जोड़ें या,

  2. आप अपनी होम डायरेक्टरी (% UserProfile% .gradle on Windows , ~ / .gradle on Linux और Mac OS X ) पर एक ही फ़ाइल बनाकर अपनी सभी परियोजनाओं के लिए उन्हें विश्व स्तर पर सेट कर सकते हैं।

    प्रोजेक्ट स्तर के बजाय, अपने घर निर्देशिका में गुणों को सेट करने के लिए यह एक अच्छा अभ्यास है।


2

आप बेहतर प्रदर्शन के लिए कमांड लाइन का भी उपयोग कर सकते हैं। आप कमांड का उपयोग कर सकते हैं। लाइन <task name>से अपनी परियोजना के रूट फ़ोल्डर के अंदर से / ग्रेडलेव करें या ग्रेडलेव की तरह gradlew.bat फ़ाइल का उपयोग करें <task name>। जब आप पहली बार किसी दिए गए ग्रेडल के लिए ऊपर दिए गए कमांड में से एक चलाते हैं। संस्करण, यह संबंधित ग्रैडल वितरण को डाउनलोड करेगा और बिल्ड को निष्पादित करने के लिए इसका उपयोग करेगा।

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


2

तेजी से निर्माण के लिए, 2048 एमबी से अधिक ग्रेडल डेमॉन के लिए अधिकतम ढेर का आकार बढ़ाएं । परियोजना में

इस सेट को करने के लिए gradle.properties
org.gradle.jvmargs=-Xmx2048M


1

एक build.gradleफ़ाइल जोड़ें :

android {
...
dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
...
}

मुझे उम्मीद है यह मदद करेगा।


1

मैं विंडोज 10 और 1TB सॉलिड स्टेट के साथ 5th जेन i7 चला रहा हूं। मैंने एंड्रॉइड स्टूडियो प्रोजेक्ट फ़ोल्डर को संकुचित कर दिया और लगभग 80% बढ़ावा मिला। उम्मीद है की यह मदद करेगा।

मैंने फिर इसे उपरोक्त समाधानों के साथ संयोजित किया (org.gradle.parallel = true, org.gradle.daemon = true)। प्रदर्शन का प्रदर्शन काफी प्रभावशाली था।

इसके अतिरिक्त:

उपरोक्त सभी उत्तर पूरी तरह से सही हैं, लेकिन मुझे एक अनुभव Android डेवलपर (साढ़े 4 साल का) के रूप में बताना होगा: कोई भी एंड्रॉइड / ग्रैड डेवलपर किसी स्पिनर ड्राइव के साथ मशीन पर काम नहीं कर रहा होना चाहिए, आपको इसके लिए कांटा निकालना होगा ठोस अवस्था। हम सभी उस आईडीई बटन को प्रति दिन 100 बार हिट करते हैं। जब मैं एक स्पिनर से एसएसडी (पोस्ट ग्रैडल) में गया, तो मेरी गति और दक्षता का शाब्दिक 2 - 4 गुना तेज था और मैं आपसे वादा करता हूं कि मैं यहां अतिरंजित नहीं हूं।

अब मैं एक छोटे एसएसडी और एक बड़े स्पिनर के साथ मशीन होने के बारे में बात नहीं कर रहा हूं, मैं 1 बड़े एसएसडी के बारे में बात कर रहा हूं। यदि आपके पास पहले से ही एक छोटे एसएसडी और एक बड़े स्पिनर के साथ एक मशीन है, तो आप छोटे स्पिनर को 500 जीबी एसएसडी कहने के लिए अपग्रेड कर सकते हैं और एसएसडी को अपने मुख्य ओएस ड्राइव के रूप में अपने डेवलपर टूल के साथ सेट कर सकते हैं।

इसलिए यदि आप तेज़ गति वाले वातावरण में काम कर रहे हैं तो कृपया इस पोस्ट को अपने बॉस को दिखाएं। एक सभ्य 1TB SSD आपको £ 300 (VAT सहित) या लगभग 160 £ 500GB SSD के लिए वापस सेट करेगा। यदि आप एक जूनियर या वरिष्ठ एंड्रॉइड डेवलपर हैं, तो इस बात पर निर्भर करता है कि ड्राइव 1 - 2 कार्य सप्ताह में, या लगभग 2 और साढ़े 5 से 5 कार्य दिवसों में भुगतान करेगा यदि आप छोटे में निवेश करते हैं; 500GB SSD बोलें।

बहुत सारे डेवलपर्स यह तर्क दे सकते हैं कि यह मामला नहीं है, लेकिन यह ग्रेडल के लिए मामला है, क्योंकि ग्रेड सिस्टम सीधे डिस्क एक्सेस पर बहुत कठिन है। यदि आप .NET / C # / VB नेट या अन्य डेवलपमेंट टूल के साथ काम करते हैं तो आपको बहुत अंतर नहीं दिखेगा लेकिन ग्रैडल में अंतर बहुत बड़ा है। यदि आप इस पद पर कार्य करते हैं तो मैं आपसे वादा करता हूं, आप निराश नहीं होंगे। व्यक्तिगत रूप से मैं 8GB रैम के साथ पांचवीं जनरल i7 का उपयोग कर रहा हूं जो मूल रूप से 1TB स्पिनर के साथ आया था और मैंने इसे एक सैमसंग SSD 840 EVO 1TB में अपग्रेड किया था और मैंने कभी पीछे मुड़कर नहीं देखा। मैं से मेरा खरीदा: https://www.aria.co.uk

उम्मीद है की यह मदद करेगा। मुझे यह भी बताना चाहिए कि यह व्यावसायिक रूप से प्रेरित पोस्ट नहीं है, मैं आरिया की सिफारिश कर रहा हूं क्योंकि मैंने उन्हें पहले भी कई बार इस्तेमाल किया है और वे हमेशा विश्वसनीय रहे हैं।


1

कुछ आदेश हम gradle.properties फ़ाइल में जोड़ सकते हैं:

org.gradle.configureondemand = true - यह कमांड केवल उन परियोजनाओं के निर्माण के लिए ग्रेडेल बताएगा, जिन्हें वास्तव में बनाने की आवश्यकता है। Daemon - org.gradle.daemon = true का उपयोग करें - डेमॉन आपके बिल्ड फ़िनिश के बाद भी बैकग्राउंड में अपग्रेड और रनिंग का उदाहरण रखता है। यह ग्रेडेल को इनिशियलाइज़ करने के लिए आवश्यक समय को हटा देगा और आपके बिल्ड टाइमिंग को काफी कम कर देगा।

org.gradle.parallel = true - समानांतर में अपनी परियोजना बनाने के लिए ग्रेडेल की अनुमति दें। यदि आपके पास परियोजना में कई मॉड्यूल हैं, तो इसे सक्षम करके, समानांतर स्वतंत्र रूप से स्वतंत्र मॉड्यूल के लिए निर्माण संचालन चला सकता है।

हीप साइज बढ़ाएं - org.gradle.jvmargs = -Xmx3072m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile = UTF-8 - चूंकि Android स्टूडियो 2.0 के बाद से, ग्रेड ने बिल्ड को कम करने के लिए प्रक्रिया में डेक्स का उपयोग किया है। परियोजना। आमतौर पर, अनुप्रयोगों का निर्माण करते समय, कई dx प्रक्रियाएं विभिन्न VM उदाहरणों पर चलती हैं। लेकिन एंड्रॉइड स्टूडियो 2.0 से शुरू होकर, ये सभी डीएक्स प्रक्रियाएं सिंगल वीएम में चलती हैं और वीएम को ग्रेडेल के साथ भी साझा किया जाता है। यह बिल्ड समय को काफी कम कर देता है क्योंकि सभी डेक्स प्रक्रिया एक ही वीएम इंस्टेंस पर चलती है। लेकिन इसके लिए सभी डेक्स प्रक्रियाओं और ग्रेडल को समायोजित करने के लिए बड़ी मेमोरी की आवश्यकता होती है। इसका मतलब है कि आपको डिप्ले डेमॉन द्वारा आवश्यक ढेर के आकार को बढ़ाने की आवश्यकता है। डिफ़ॉल्ट रूप से, डेमन के लिए ढेर का आकार लगभग 1GB है।

सुनिश्चित करें कि गतिशील निर्भरता का उपयोग नहीं किया जाता है। यानी कार्यान्वयन 'com.android.support:appcompat-v7:27.0.+' का उपयोग न करें। इस कमांड का मतलब है कि ग्रेडेल ऑनलाइन जाएगा और हर बार ऐप के निर्माण के लिए नवीनतम संस्करण की जांच करेगा। इसके बजाय निश्चित संस्करणों का उपयोग करें 'com.android.support:appcompat-v7:27.0.2'


1

इसे अपनी gradle.propertiesफ़ाइल में जोड़ें

org.gradle.daemon=true                                                          
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2048M

1

एंड्रॉइड फोल्डर से खुलने वाली gradle.properties और हाइलाइट की गई लाइनों को खोलना और अपने मशीन कॉन्फ़िगरेशन के अनुसार मेमोरी मान प्रदान करना। मेरे पास अपनी मशीन पर 8 जीबी रैम है इसलिए मैंने क्रमशः अधिकतम 4096mb और 1024mb दिया।

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
//Uncomment below line for providing your system specific configuration
#org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError - Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
#http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 //Uncomment below line to allow parallel process execution.
 #org.gradle.parallel=true

इसके बाद मेरा निर्माण समय घटकर आधा रह गया। हैप्पी बिल्डिंग !!


0

यह अक्सर तब होता है जब आप मल्टीडेक्स को अपने प्रोजेक्ट में सक्षम करते हैं। यह संभावित रूप से आपकी विकास प्रक्रिया को धीमा कर सकता है !! डॉक्टर के अनुसार :

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

लेकिन आप इसे अनुकूलित कर सकते हैं:

लंबे समय के वृद्धिशील बिल्ड समय को कम करने के लिए, आपको बिल्ड के बीच मल्टीडेक्स आउटपुट का पुन: उपयोग करने के लिए प्री-डेक्सिंग का उपयोग करना चाहिए।

यदि आप एंड्रॉइड स्टूडियो 2.3 और उच्चतर का उपयोग कर रहे हैं, तो आपके ऐप को एंड्रॉइड 5.0 (एपीआई स्तर 21) या उच्चतर चलाने वाले डिवाइस पर तैनात करते समय आईडीई स्वचालित रूप से इस सुविधा का उपयोग करता है।

तो आपको 21 या अधिक के लिए minSdkVersion सेट करने की आवश्यकता है !

लेकिन अगर आप उत्पादन संस्करण को 21 से कम minSdkVersion का समर्थन करने की आवश्यकता है, उदाहरण के लिए 19

आप उत्पाद संस्करण का उपयोग कर सकते हैं सेट करने के लिए minSdkVersion 21 आपके लिए देव संस्करण:

    android {
    defaultConfig {
        ...
        multiDexEnabled true
        // The default minimum API level you want to support.
        minSdkVersion 15
    }
    productFlavors {
        // Includes settings you want to keep only while developing your app.
        dev{
            //the IDE automatically uses  pre-dexing feature to mitigate longer incremental when deploying your app to a device running Android 5.0 !
            minSdkVersion 21
        }
        prod {

        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                                                 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile 'com.android.support:multidex:1.0.3'
}

0

मैं बेहतर बिल्ड समय के लिए कमांड लाइन से निर्माण करना पसंद करता हूं। यदि आपका ऐप कोड आधार बड़ा है और आपके पास कई मॉड्यूल हैं, तो आप यहाँ वर्णित के रूप में स्थानीय AAR दृष्टिकोण की कोशिश कर सकते हैं, यह आपको एंड्रॉइड स्टूडियो के प्रदर्शन और निर्माण के समय में एक बड़ा बढ़ावा देगा। कमांड लाइन के साथ इसके संगत भी बनाता है

https://blog.gojekengineering.com/how-we-improved-performance-and-build-times-in-android-studio-306028166b79

एकीकरण निर्देशों के साथ डेमो प्रोजेक्ट यहां पाया जा सकता है: https://github.com/akhgupta/AndroidLocalMavenRepo.ardemo

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.