Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android Studio में Gradle बिल्ड प्रक्रिया को तेज़ करना

Gradle बिल्ड धीमा क्यों होता है?

Gradle Android का बिल्ड सिस्टम है जो कोड, रिसोर्सेज, और निर्भरताओं को APK/AAB में संकलित करता है। बड़े प्रोजेक्ट्स में बिल्ड समय मिनटों तक जा सकता है। मुख्य कारण: अनावश्यक टास्क एक्सीक्यूशन, अपर्याप्त हीप मेमोरी, नेटवर्क निर्भरता डाउनलोड, और खराब कॉन्फ़िगरेशन।

तेज़ बिल्ड के लिए कॉन्फ़िगरेशन

1. gradle.properties ऑप्टिमाइज़ेशन

प्रोजेक्ट रूट में gradle.properties फाइल में निम्नलिखित जोड़ें:

# Gradle Daemon सक्षम करें (डिफ़ॉल्ट: चालू)
org.gradle.daemon=true

# समानांतर प्रोजेक्ट बिल्ड सक्षम करें
org.gradle.parallel=true

# केवल आवश्यक टास्क कॉन्फ़िगर करें (कॉन्फ़िगरेशन-ऑन-डिमांड)
org.gradle.configureondemand=true

# JVM आर्ग्युमेंट्स - हीप साइज़ बढ़ाएं
org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# Java 8+ के लिए (Metaspace PermGen की जगह लेता है)
# -XX:MaxPermSize=512m  // Java 8+ में अनावश्यक

# बिल्ड कैश सक्षम करें (Gradle 3.5+)
org.gradle.caching=true

2. Android Studio सेटिंग्स

File → Settings → Build, Execution, Deployment → Gradle

  • ✅ Offline work चेक करें - नेटवर्क कॉल से बचने के लिए (निर्भरताएं पहले से डाउनलोड होनी चाहिए)
  • ✅ Gradle JDK - नवीनतम JDK (17/21) चुनें बेहतर प्रदर्शन के लिए

File → Settings → Build, Execution, Deployment → Compiler

  • ✅ Build project automatically
  • ✅ Compile independent modules in parallel
  • ✅ Use in-process dexing (Gradle 8.0+ में डिफ़ॉल्ट)

3. build.gradle ऑप्टिमाइज़ेशन

android {
    // ...
    
    // अनावश्यक बिल्ड टाइप्स हटाएं
    buildTypes {
        release {
            minifyEnabled true           // R8/ProGuard सक्षम करें
            shrinkResources true         // अनउपयोगित रिसोर्स हटाएं
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    // केवल आवश्यक ABI के लिए नेटिव लाइब्रेरी
    defaultConfig {
        ndk {
            abiFilters 'arm64-v8a', 'armeabi-v7a' // x86, x86_64 हटाएं अगर जरूरी न हो
        }
    }

    // डायनामिक फीचर मॉड्यूल्स के लिए
    // dynamicFeatures = [":feature_module"]
}

dependencies {
    // implementation के बजाय api का उपयोग केवल जब जरूरी हो (कम रीकंपाइल)
    implementation 'com.android.support:appcompat-v7:28.0.0'
    
    // वर्जन कैटलॉग उपयोग करें (Gradle 7.0+)
    // libs.versions.toml में वर्जन परिभाषित करें
}

4. मॉड्यूलराइज़ेशन

  • कोड को फीचर मॉड्यूल्स में विभाजित करें
  • implementation के बजाय api केवल जब इंटरफेस एक्सपोज़ करना हो
  • डायनामिक डिलीवरी के लिए Dynamic Feature Modules उपयोग करें

5. R8 / ProGuard ऑप्टिमाइज़ेशन

# proguard-rules.pro
# अनउपयोगित कोड हटाएं
-dontwarn com.google.**
-keep class com.google.android.gms.** { *; }

# Kotlin के लिए
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**

6. Gradle प्रोफाइलिंग

बिल्ड बॉटलनेक्स पहचानने के लिए:

# कमांड लाइन से
./gradlew assembleDebug --profile --offline

# HTML रिपोर्ट: build/reports/profile/ में उत्पन्न होती है

7. हार्डवेयर/सिस्टम टिप्स

  • SSD - HDD की तुलना में 3-5x तेज़ I/O
  • RAM - न्यूनतम 16GB, अनुशंसित 32GB+
  • CPU - अधिक कोर = बेहतर समानांतर निष्पादन
  • एंटीवायरस अपवाद - प्रोजेक्ट फोल्डर और .gradle फोल्डर को बाहर करें

Gradle 8.0+ नई सुविधाएं

  • Configuration Cache - कॉन्फ़िगरेशन चरण को कैश करता है (org.gradle.configuration-cache=true)
  • Version Catalogs - केंद्रीकृत निर्भरता प्रबंधन (libs.versions.toml)
  • Lazy Task Configuration - डिफ़ॉल्ट रूप से सक्षम
  • Improved Incremental Compilation - केवल बदली हुई फाइलें रीकंपाइल

सामान्य गलतियाँ जिनसे बचें

  • हर बिल्ड में clean चलाना
  • बड़े मोनोलिथिक मॉड्यूल रखना
  • पुराने Gradle वर्जन उपयोग करना
  • अनावश्यक एनोटेशन प्रोसेसर जोड़ना
  • डायनामिक वर्जन (+) उपयोग करना - कैशिंग तोड़ता है
  1. अपने एंड्रॉइड फोन की स्पीड बढ़ाएं: तेज़ परफॉरमेंस के लिए आजमाए हुए टिप्स अपने एंड्रॉइड फोन की स्पीड बढ़ाएं: तेज़ परफॉरमेंस के लिए आजमाए हुए टिप्स

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

  1. Android Navigation Component में मास्टरी: बिल्ड, इम्प्लीमेंट और ऑप्टिमाइज़ करें Android Navigation Component में मास्टरी: बिल्ड, इम्प्लीमेंट और ऑप्टिमाइज़ करें

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

  1. अपने एंड्रॉइड की इंटरनेट स्पीड बढ़ाएं: 5 आजमाए हुए तरीके अपने एंड्रॉइड की इंटरनेट स्पीड बढ़ाएं: 5 आजमाए हुए तरीके

    चाहे आप छात्र हों या व्यवसायी, आपको विभिन्न उद्देश्यों के लिए हमेशा इंटरनेट की आवश्यकता होती है। भले ही आपके एंड्रॉइड पर 3G और 4G तकनीक मिल रही हो, इंटरनेट स्पीड में बूस्ट पाने में कोई बुराई नहीं है। ऐसे कई ऐप्लिकेशन हैं जो आपको बेहतर इंटरनेट स्पीड पाने में मदद करते हैं, हालांकि आप इसके लिए कुछ बेसि