android - ग्रैडल और एंड्रॉइड स्टूडियो के माध्यम से बिल्डिंग और रनिंग ऐप ग्रहण के माध्यम से धीमा है




gradle android-studio (18)

मेरे पास एक बहु-परियोजना (~ 10 मॉड्यूल) है जिसमें से प्रत्येक इमारत में लगभग 20-30 सेकंड लगते हैं। जब मैं एंड्रॉइड स्टूडियो में रन दबाता हूं, तो मुझे ऐप के पुनर्निर्माण के लिए हर बार इंतजार करना पड़ता है, जो बेहद धीमी है।

एंड्रॉइड स्टूडियो में बिल्डिंग प्रक्रिया को स्वचालित करना संभव है? या क्या आपको इस प्रक्रिया को तेज़ बनाने के बारे में कोई सलाह है?

ग्रहण में, स्वचालित भवन के लिए धन्यवाद, एक एमुलेटर पर एक ही प्रोजेक्ट चलाने से लगभग 3-5 सेकंड लगते हैं।

यह मेरा build.gradle फ़ाइल (ऐप मॉड्यूल) है:

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':libraries:SharedLibs')
    compile project(':libraries:actionbarsherlock')
    compile project(':libraries:FacebookSDK')
    compile project(':libraries:GooglePlayServices')
    compile project(':libraries:HorizontalGridView')
    compile project(':libraries:ImageViewTouch')
    compile project(':libraries:SlidingMenu')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}

https://code.i-harness.com


एंड्रॉइड स्टूडियो 2.3 के बाद अपडेट करें

सभी उत्तरों बहुत अच्छे हैं, और मैं बिल्ड गति को बेहतर बनाने के लिए उन तरीकों का उपयोग करने के लिए प्रोत्साहित करता हूं।

सितंबर 2016 को एंड्रॉइड 2.2 के रिलीज के बाद, एंड्रॉइड ने gradle बिल्ड प्रदर्शन को तेज करने के लिए प्रयोगात्मक बिल्ड कैश फीचर जारी किया, जो अब एंड्रॉइड स्टूडियो 2.3 कैनरी से आधिकारिक है। (आधिकारिक रिलीज नोट)

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

कैसे इस्तेमाल करे:

अपनी gradle.properties फ़ाइल में निम्न पंक्ति जोड़ें

android.enableBuildCache = true
# Set to true or false to enable or disable the build cache. If this parameter is not set, the build cache is enable by default.

कैश साफ़ करें:

  • बिल्ड कैश को अधिक आसानी से साफ करने के लिए cleanBuildCache कैश नामक एक नया cleanBuildCache कार्य है। आप इसे अपने टर्मिनल में निम्नलिखित टाइप करके इसका उपयोग कर सकते हैं:

    ./gradlew cleanBuildCache

  • या आप स्थान पर सभी फाइलों को स्टोर करके एंड्रॉइड स्टूडियो 2.2 के लिए कैश साफ़ कर सकते हैं

    C:\Users\<username>\.android\build-cache


हार्डवेयर

मुझे खेद है, लेकिन विकास स्टेशन को एसएसडी और रैम के टन में अपग्रेड करने से शायद नीचे दिए गए अंकों की तुलना में बड़ा प्रभाव पड़ता है।

टूल्स संस्करण

विकास टीमों के लिए बढ़ते निर्माण प्रदर्शन की प्राथमिकता है, इसलिए सुनिश्चित करें कि आप नवीनतम Gradle और एंड्रॉइड ग्रैडल प्लगइन का उपयोग कर रहे हैं।

विन्यास फाइल

जो भी निर्देशिका लागू होती है में gradle.properties नाम की एक फ़ाइल बनाएं:

  • /home/<username>/.gradle/ (लिनक्स)
  • /Users/<username>/.gradle/ (मैक)
  • C:\Users\<username>\.gradle (विंडोज़)

जोड़ें:

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.krd1mm27v
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -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
org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects. 
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true

# Set to true or false to enable or disable the build cache. 
# If this parameter is not set, the build cache is disabled by default.
# http://tools.android.com/tech-docs/build-cache
android.enableBuildCache=true

यदि आप उन्हें projectRoot\gradle.properties पर projectRoot\gradle.properties और वैश्विक रूप से यदि आप उन्हें user_home\.gradle\gradle.properties पर user_home\.gradle\gradle.properties तो projectRoot\gradle.properties गुण स्थानीय काम user_home\.gradle\gradle.properties । गुण लागू होते हैं यदि आप कंसोल से या सीधे विचार से क्रमबद्ध कार्य चलाते हैं:

आईडीई सेटिंग्स

आईडीई सेटिंग्स जीयूआई से ग्रैडल-इंटेलिजे एकीकरण को ट्विक करना संभव है। "ऑफ़लाइन काम" सक्षम करना (नीचे yava से उत्तर की जांच करें) प्रत्येक "सिंक ग्रेडल फ़ाइल" पर वास्तविक नेटवर्क अनुरोध अक्षम कर देगा।

मूल बहु-डेक्स

एपीके बिल्ड के सबसे धीमे कदमों में से एक जावा बाइटकोड को एकल डीएक्स फ़ाइल में परिवर्तित कर रहा है। देशी मल्टीडेक्स को सक्षम करना (केवल डीबग बिल्ड के लिए मिनीएसडीके 21) टूलिंग को काम की मात्रा को कम करने में मदद करेगा (नीचे Aksel Willgert से जवाब देखें)।

निर्भरता

पुस्तकालय उप-परियोजनाओं पर @aar निर्भरताओं को पसंद करें।

mavenCentral , jCenter पर mavenCentral उपयोग करें या github से किसी भी लाइब्रेरी का निर्माण करने के लिए jitpack.io का उपयोग करें। यदि आप निर्भरता लाइब्रेरी के स्रोतों को संपादित नहीं कर रहे हैं तो आपको इसे अपने प्रोजेक्ट स्रोतों के साथ हर बार नहीं बनाना चाहिए।

एंटीवायरस

एंटीवायरस स्कैनिंग से परियोजना और कैश फ़ाइलों को बाहर करने के लिए विचार करें। यह स्पष्ट रूप से सुरक्षा के साथ एक व्यापार बंद है (घर पर यह कोशिश मत करो!)। लेकिन यदि आप शाखाओं के बीच बहुत अधिक स्विच करते हैं, तो एंटीवायरस धीरे-धीरे प्रक्रिया का उपयोग करने की अनुमति देने से पहले फाइलों को पुन: स्कैन करेगा, जो बिल्ड समय धीमा कर देता है (विशेष रूप से एंड्रॉइडस्टूडियो सिंक प्रोजेक्ट में ग्रेडल फाइलों और इंडेक्सिंग कार्यों के साथ)। एंटीवायरस के साथ और बिना CPU के निर्माण समय को मापें और प्रक्रिया करें, यह देखने के लिए सक्षम है कि यह संबंधित है या नहीं।

एक निर्माण प्रोफाइलिंग

ग्रैडल प्रोफाइलिंग परियोजनाओं के लिए अंतर्निहित समर्थन है। विभिन्न परियोजनाएं प्लगइन और कस्टम स्क्रिप्ट के एक अलग संयोजन का उपयोग कर रही हैं। उपयोग करना - --profile बाधाओं को खोजने में मदद करेगा।


आप नवीनीकरण अपडेट-टू-डेट चेक को अनदेखा कर सकते हैं।

विंडोज़ के लिए एंड्रॉइड स्टूडियो 1.5 चला रहा है: File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle -> Check Offline work (as shown in image) जाएं File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle -> Check Offline work (as shown in image)

~ 30 + सेकंड से ~ 3 सेकंड तक नीचे


आप स्टूडियो के दाहिने तरफ ग्रेडल मेनू खोलने का प्रयास कर सकते हैं, और केवल आपके द्वारा बदला गया मॉड्यूल इकट्ठा कर सकते हैं, फिर इंस्टॉल कमांड चलाएं। जब आप रन दबाते हैं तो यह आपके द्वारा एकत्र किए जा रहे कोड में किए गए किसी भी बदलाव के बावजूद सब कुछ इकट्ठा करता है


इस सेटिंग्स को बदलने के बाद मेरी संकलन अवधि 10 मिनट बदलकर ~ 10 सेकेंड हो गई।

चरण 1:

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

बिल्ड, निष्पादन, परिनियोजन ->

कंपाइलर ->

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

चरण 2:

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

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

संदर्भ - https://www.sundoginteractive.com/blog/speed-up-gradle-in-android-studio

हानि:

आप अपनी build.gradle फ़ाइल में पहचाने गए निर्भरताओं के नवीनतम संस्करणों को नीचे खींचने में सक्षम नहीं होंगे। यह तेजी से चलता है क्योंकि यह उन आयातित पुस्तकालयों के कैश किए गए स्नैपशॉट का उपयोग करता है।

महत्वपूर्ण नोट : जब आप एप्लिकेशन को तैनात करते हैं तो यह सेटिंग हटाएं और निर्भरताओं के नवीनतम संस्करणों के साथ बनाएं।


इसके लिए हर जगह खोजा और आखिरकार एक समाधान मिला जो हमारे लिए काम करता है। समांतर बिल्डों को सक्षम करना (ओएसएक्स पर: preferences -> compiler -> gradle -> "Compile independent modules in parallel" ) और 'स्वचालित रूप से प्रोजेक्ट बनाने' को सक्षम करने से इसे ~ 1 मिनट से ~ 20 सेकंड तक नीचे लाया गया। धन्यवाद / यू / कोवलेंस।

http://www.reddit.com/r/androiddev/comments/1k3nb3/gradle_and_android_studio_way_slower_to_build/


एक मामूली परिवर्तन (एक resoruce xml करने के लिए) अभी भी 10 मिनट लिया। जैसा कि @rivare अपने जवाब में कहते हैं, एक कमांड लाइन बिल्ड मच तेज है (इसे 15 सेकंड तक ले गया)।
Windows के लिए कमांड लाइन से कम से कम एक छोटा सा निर्माण करने के लिए यहां कुछ चरण दिए गए हैं।

  1. अपनी परियोजनाओं रूट पर जाएं (जहां gradlew.bat है):

    सीडी सी: \ एंड्रॉइड \ मास्क एक्टिविटी

  2. निर्माण निष्पादित करें:

    Grlelew इकट्ठा Debug

  3. सीधे फोन से एपीके अनइंस्टॉल करें (इसे अनइंस्टॉल करने के लिए खींचें)।

  4. जब निर्माण समाप्त हो जाता है, तो विंडोज टास्क मैनेजर का उपयोग करके बड़ी जावा प्रक्रिया को मार दें।

या यदि आपके पास विंडोज़ मशीन पर यूनिक्स टूल्स हैं:

ps

"पिड" दिखाए जाते हैं:

kill -9 <pid>
  1. अब अपना एपीके इंस्टॉल करें:

    adb -d इंस्टॉल करें सी: \ एंड्रॉइड \ मास्क एक्टिविटी \ ऐप \ बिल्ड \ outputs \ apk \ app-debug.apk


कृपया निम्नलिखित चरणों का पालन करें।

  1. ऑफ़लाइन मोड सक्षम करें: कृपया नीचे प्रिंट स्क्रीन देखें।

    https://i.stack.imgur.com/RF9uG.png

  2. तत्काल रन सक्षम करें: कृपया नीचे प्रिंट स्क्रीन की जांच करें।

    https://i.stack.imgur.com/mvHKJ.png

    यदि आप तत्काल दौड़ के बारे में अधिक जानना चाहते हैं तो कृपया एंड्रॉइड डेवलपर साइट पर जाएं।


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

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

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

org.gradle.daemon=true

मेरे लिए गति अब ग्रहण के बराबर है।

स्रोत: https://www.timroes.de/2013/09/12/speed-up-gradle/


बस इसे पहले आज़माएं। यह मेरा व्यक्तिगत अनुभव है।

मुझे भी यही समस्या थी। मैंने जो किया है वह एंटीवायरस को स्थायी रूप से अक्षम कर रहा है (मेरा अवास्ट सुरक्षा 2015 था)। एंटीवायरस को अक्षम करने के बाद, चीज अच्छी तरह से चली गई। धीरे-धीरे सफलतापूर्वक समाप्त हो गया। अब से सेकंड के भीतर धीरे-धीरे परिष्करण (केवल 5-10 सेकेंड लेना) है।


मेरा हल हल

File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle -> Offline work

ग्रैडल बिल्ड 8 मिनट से 3 सेकंड तक चला गया।


मैं ग्रैडल पर एक विशेषज्ञ होने से बहुत दूर हूं लेकिन मेरे पर्यावरण में निम्नलिखित पंक्ति थी .gradle / init.gradle

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenRepo name: 'libs-repo', url: 'http://guest-vm/artifactory/repo'
        }
    }
}

फिर भी मुझे नहीं पता कि वह लाइन क्यों थी, लेकिन मैं बदलने की कोशिश करता हूं

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenCentral()
        }
    }
} 

और अब मैं अंततः एंड्रॉइड स्टूडियो और ग्रैडल बिल्डिंड योजना की शपथ ग्रहण किए बिना काम कर सकता हूं।


यदि Google play सेवाओं का उपयोग करते हैं, तो पूरे ब्लॉब की बजाय आपको आवश्यक पुस्तकालयों के आधार पर चीजों को तेज़ी से बना सकते हैं।

यदि आपकी एकमात्र आवश्यकता मानचित्र है, तो इसका उपयोग करें:

compile 'com.google.android.gms:play-services-maps:6.5.+'

के बजाय:

compile 'com.google.android.gms:play-services:6.5.+'

उत्तरार्द्ध कक्षा में 20k विधियों (ब्लॉग देखें) लाता है, जो कुल विधि गणना 64k से अधिक हो सकता है।

इससे डीबग बिल्ड के लिए भी multidex या multidex के उपयोग को मजबूर किया जाएगा। मेरी परियोजनाओं में से एक के लिए मेरे पास निम्नलिखित निर्माण समय थे

  • मल्टीडेक्स बिल्ड (समर्थन पुस्तकालय के साथ) ~ 40sec
  • proguard निर्माण ~ 20sec
  • विधि सीमा <64k ~ 5sec जब निर्माण करें

अगर एसडीके 21+ पर विकास हो रहा है, तो एंड्रॉइड दस्तावेज में बताए गए मल्टीडेक्स बिल्ड को अनुकूलित करना संभव होगा

android {
    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 14
        }
    }
    ...
}

यदि आप कमांड लाइन से ग्रेडल का उपयोग करते हैं, तो आप प्रक्रिया को तेज़ी से बना सकते हैं। आईडीई डेवलपर्स के लिए बहुत अनुकूलन है। लेकिन यह सिर्फ एक प्रारंभिक संस्करण है।

अधिक जानकारी के लिए जी + पर कुछ देवताओं के साथ इस चर्चा को पढ़ें।


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

  1. बिन फ़ोल्डर में पर्यावरण कॉन्फ़िगरेशन सेट करने के लिए एक studio.vmoptions फ़ाइल है। मेरे मामले में यह studio64.vmoptions निम्न पंक्तियां जोड़ें यदि वे पहले से जोड़े नहीं गए हैं और फ़ाइल को सहेजते हैं। मेरे मामले में मेरे पास 8 जीबी रैम है।

    -Xms4096m
    -Xmx4096m
    -XX:MaxPermSize=2048m
    -XX:+CMSClassUnloadingEnabled
    -XX:+CMSPermGenSweepingEnabled 
    -XX:+HeapDumpOnOutOfMemoryError
    -Dfile.encoding=utf-8`
    
  2. एंड्रॉइड स्टूडियो शुरू करें। फ़ाइल-> सेटिंग्स-> बिल्ड, निष्पादन, परिनियोजन-> कंपाइलर पर जाएं

    • समांतर में स्वतंत्र मॉड्यूल संकलित जांचें
    • कमांड लाइन विकल्प में लिखें: --ऑफलाइन
    • परियोजना को स्वचालित रूप से जांचें
    • मांग पर कॉन्फ़िगर जांचें

मैक का उपयोग करने के मामले में, पहले मुझे vmoptions नहीं मिल सका। वैसे भी, मैक ओएसएक्स में vmoptions को कैसे बदल सकते हैं, इस बारे में एक अच्छा लेख है । यहां इस आलेख से उद्धरण।

अपना टर्मिनल खोलें और मैक ओएसएक्स में vmoptions खोलने के लिए इस कमांड को रखें:

open -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

हमारे विशिष्ट मामले में, समस्या रेट्रोम्बाडा प्लगइन होने के कारण थी, जिसने सभी परियोजनाओं और सबप्रोजेक्ट्स को हर बार पुन: संकलित करने के लिए मजबूर कर दिया जब हमने अपने आवेदन को लॉन्च करने का प्रयास किया, भले ही हमारे कोर मॉड्यूल में कोई कोड नहीं बदला गया हो।

रेट्रोलम्बा को हटाने से यह हमारे लिए तय हो गया। उम्मीद है कि यह किसी की मदद करता है।



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

कभी ऐसा लगता है कि आप एंड्रॉइड स्टूडियो में मिनटों के लिए बिल्ड को पूरा करने की प्रतीक्षा कर रहे हैं? मैं भी। और यह एक बहुत कष्टप्रद है। सौभाग्य से, ऐसे कुछ तरीके हैं जिनका उपयोग आप इसे बेहतर बनाने के लिए कर सकते हैं। एंड्रॉइड बिल्डिंग के लिए ग्रैडल का उपयोग करता है। नवीनतम संस्करण 2.14.1 में पिछले संस्करणों पर एक बड़ा प्रदर्शन बढ़ावा है (विवरण के लिए रिलीज नोट देखें)।

चरण 1: अद्यतन ग्रैडल संस्करण इसे पूरा करने का एक आसान तरीका यहां जाना है: ओपन मॉड्यूल सेटिंग्स (आपकी परियोजना)> परियोजना संरचना

अद्यतन करें

ग्रैडल संस्करण में बदलें : 4.1 और एंड्रॉइड प्लगइन में बदलें संस्करण: 3.0.0

https://services.gradle.org/distributions/gradle-3.1-all.zip से ग्रैडल रिलीज वितरक डाउनलोड https://services.gradle.org/distributions/gradle-3.1-all.zip और इसे ग्रैडल फ़ोल्डर में कॉपी https://services.gradle.org/distributions/gradle-3.1-all.zip :

अंतिम चरण सेटिंग्स> ग्रैडल में अपना अपवाद जोड़ना है

परिवर्तनों को सहेजने के लिए आवेदन पर क्लिक करना न भूलें।

चरण 2: ऑफ़लाइन मोड, ग्राडल डिमन और प्रोजेक्ट के लिए समांतर बिल्ड सक्षम करें ऑफ़लाइन मोड अद्यतन-टू-डेट चेक को अनदेखा करने के लिए ग्रैडल को बताता है। ग्रैडल हर समय निर्भरताओं के लिए पूछता है और यह विकल्प होने से यह निर्भर करता है कि निर्भरता के लिए मशीन पर पहले से ही क्या है। एंड्रॉइड स्टूडियो सेटिंग से ग्रैडल पर जाएं और ऑफलाइन वर्क बॉक्स में क्लिक करें।

  1. एंड्रॉइड स्टूडियो से कंपाइलर पर जाएं और कमांड लाइन बॉक्स में "ऑफ़लाइन" जोड़ें और समानांतर में स्वतंत्र मॉड्यूल संकलित करें पर क्लिक करें।

अगला चरण आपके प्रोजेक्ट के लिए ग्रैडल डिमन और समांतर बिल्ड को सक्षम करना है। समानांतर बिल्ड आपकी परियोजनाओं को समानांतर में बनाए जाने के लिए कई मॉड्यूल (बहु-प्रोजेक्ट ग्रैडल में निर्मित) के साथ कारण बनेंगे, जिससे बड़ी या मॉड्यूलर परियोजनाएं तेजी से निर्माण करनी चाहिए।

इन सेटिंग्स को Gradle स्क्रिप्ट्स निर्देशिका (यानी ~ / .gradle / gradle.properties) में gradle.properties नामक फ़ाइल को संशोधित करके सक्षम किया जा सकता है। इनमें से कुछ विकल्प (जैसे समांतर में कॉम्प्ली मॉड्यूल) एंड्रॉइड स्टूडियो से उपलब्ध हैं और वहां भी सक्षम हैं डिफ़ॉल्ट, लेकिन उन्हें gradle.properties फ़ाइल में डालने से टर्मिनल से निर्माण करते समय उन्हें यह सुनिश्चित किया जाएगा कि आपके सहयोगी एक ही सेटिंग्स का उपयोग करेंगे। लेकिन अगर आप एक टीम पर काम कर रहे हैं, तो कभी-कभी आप यह सामान नहीं कर सकते हैं।

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit org.gradle.parallel=true
# When set to true the Gradle daemon is used to run the build. For local developer builds this is our favorite property.
# The developer environment is optimized for speed and feedback so we nearly always run Gradle jobs with the daemon.
 org.gradle.daemon=true

डेमॉन का उपयोग करने से आपके बिल्ड स्टार्टअप तेज हो जाएंगे क्योंकि इसे हर बार पूरे ग्रैडल एप्लिकेशन को शुरू नहीं करना पड़ेगा। ग्रैडल डेमॉन डिफ़ॉल्ट रूप से सक्षम नहीं है, लेकिन यह हमेशा डेवलपर्स मशीनों के लिए इसे सक्षम करने की अनुशंसा करता है (लेकिन इसे निरंतर एकीकरण सर्वर के लिए अक्षम कर दिया जाता है)। इस मोड के बारे में अक्सर पूछे जाने वाले प्रश्न https://docs.gradle.org/current/userguide/gradle_daemon.html पाए जा सकते हैं। समांतर बिल्ड सेटिंग कुछ परियोजनाओं के लिए असुरक्षित हो सकती है। आवश्यकता यह है कि आपके सभी मॉड्यूल को डीकॉप्ल्ड किया जाना चाहिए या आपका निर्माण विफल हो सकता है (विवरण के लिए http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects देखें)।

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

अपने एंड्रॉइड ब्लॉक में यह विकल्प जोड़ें:

dexOptions {
    incremental true
}

उस dexOptions ब्लॉक में आप डीएक्स प्रक्रिया के लिए ढेर आकार भी निर्दिष्ट कर सकते हैं, उदाहरण के लिए:

dexOptions {
    incremental true
    javaMaxHeapSize "12g"
}

जहां "12 जी" 12 जीबी मेमोरी है। इसके बारे में अतिरिक्त जानकारी google.github.io/android-gradle-dsl/current/ पर मिल सकती है। आप सेटिंग्स फ़ाइल में ग्रैडल पैरामीटर को भी कॉन्फ़िगर कर सकते हैं, उदाहरण के लिए यदि आपके पास एक बड़ी परियोजना है तो अधिकतम ढेर आकार बढ़ाएं:

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

यहां पैरामीटर की सभी सूची देखें: विवरण के लिए https://docs.gradle.org/current/userguide/userguide_single.html#sec:gradle_configuration_properties

चरण 4: एंटीवायरस अक्षम करें एंटीवायरस स्कैनिंग से प्रोजेक्ट और कैश फ़ाइलों को बाहर करने के लिए विचार करें। यह स्पष्ट रूप से सुरक्षा के साथ एक व्यापार बंद है। लेकिन यदि आप शाखाओं के बीच बहुत अधिक स्विच करते हैं, तो एंटीवायरस धीरे-धीरे प्रक्रिया का उपयोग करने की अनुमति देने से पहले फाइलों को पुन: स्कैन करेगा, जो बिल्ड समय धीमा कर देता है (विशेष रूप से एंड्रॉइड स्टूडियो सिंक प्रोजेक्ट में धीरे-धीरे फ़ाइलें और अनुक्रमण कार्यों के साथ)। एंटीवायरस के साथ और बिना CPU के निर्माण समय को मापें और प्रक्रिया को मापने के लिए यह सुनिश्चित करें कि यह संबंधित है या नहीं। आशा है कि ये आपकी मदद करेगा। बिल्ड प्रदर्शन में सुधार के लिए आपके पास कोई प्रश्न या कुछ अन्य युक्तियां हैं, तो एक टिप्पणी छोड़ दें।

उपयोगी लिंक





build.gradle