অ্যান্ড্রয়েড গ্রেডল প্লাগইন ২.২.০ (সেপ্টেম্বর ২০১৬)

নির্ভরতা:
সর্বনিম্ন সংস্করণ ডিফল্ট সংস্করণ মন্তব্য
গ্রেডল ২.১৪.১ ২.১৪.১ আরও জানতে, Gradle আপডেট করা দেখুন।
SDK বিল্ড টুলস ২৩.০.২ ২৩.০.২ SDK বিল্ড টুল ইনস্টল বা কনফিগার করুন
নতুন:
  • Gradle 2.14.1 ব্যবহার করে, যার মধ্যে কর্মক্ষমতা উন্নতি এবং নতুন বৈশিষ্ট্য অন্তর্ভুক্ত রয়েছে, এবং Gradle ডেমন ব্যবহার করার সময় স্থানীয় সুবিধা বৃদ্ধির অনুমতি দেয় এমন একটি নিরাপত্তা দুর্বলতা সংশোধন করে। আরও বিস্তারিত জানার জন্য, Gradle রিলিজ নোট দেখুন।
  • externalNativeBuild {} DSL ব্যবহার করে, Gradle এখন আপনাকে আপনার নেটিভ সোর্সের সাথে লিঙ্ক করতে এবং CMake অথবা ndk-build ব্যবহার করে নেটিভ লাইব্রেরি কম্পাইল করতে দেয়। আপনার নেটিভ লাইব্রেরি তৈরি করার পরে, Gradle সেগুলিকে আপনার APK-তে প্যাকেজ করে। Gradle-এর সাথে CMake এবং ndk-build ব্যবহার সম্পর্কে আরও জানতে, Add C and C++ Code to Your Project পড়ুন।
  • কমান্ড লাইন থেকে যখন আপনি একটি বিল্ড চালান , তখন Gradle এখন আপনার প্রকল্পের উপর নির্ভরশীল যেকোনো অনুপস্থিত SDK উপাদান বা আপডেট স্বয়ংক্রিয়ভাবে ডাউনলোড করার চেষ্টা করে। আরও জানতে, Gradle সহ অনুপস্থিত প্যাকেজগুলি স্বয়ংক্রিয়ভাবে ডাউনলোড করুন পড়ুন।
  • একটি নতুন পরীক্ষামূলক ক্যাশিং বৈশিষ্ট্য গ্র্যাডেলকে আপনার লাইব্রেরির প্রি-ডেক্সড সংস্করণগুলিকে প্রি-ডেক্সিং, স্টোরেজ এবং পুনঃব্যবহারের মাধ্যমে বিল্ড টাইম দ্রুত করতে দেয়। এই পরীক্ষামূলক বৈশিষ্ট্যটি ব্যবহার সম্পর্কে আরও জানতে, বিল্ড ক্যাশ গাইডটি পড়ুন।
  • একটি নতুন ডিফল্ট প্যাকেজিং পাইপলাইন গ্রহণ করে বিল্ড কর্মক্ষমতা উন্নত করে যা একটি কাজে জিপিং, সাইনিং এবং জিপঅ্যালাইনিং পরিচালনা করে। আপনি আপনার gradle.properties ফাইলে android.useOldPackaging=true যোগ করে পুরানো প্যাকেজিং টুলগুলি ব্যবহার করতে পারেন। নতুন প্যাকেজিং টুল ব্যবহার করার সময়, zipalignDebug টাস্কটি উপলব্ধ নেই। তবে, আপনি createZipAlignTask(String taskName, File inputFile, File outputFile) পদ্ধতিটি কল করে নিজেই একটি তৈরি করতে পারেন।
  • APK সাইনিং এখন ঐতিহ্যবাহী JAR সাইনিং ছাড়াও APK সিগনেচার স্কিম v2 ব্যবহার করে। সমস্ত অ্যান্ড্রয়েড প্ল্যাটফর্ম ফলস্বরূপ APK গ্রহণ করে। সাইন করার পরে এই APK গুলিতে যেকোনো পরিবর্তন তাদের v2 স্বাক্ষরগুলিকে বাতিল করে এবং ডিভাইসে ইনস্টলেশনকে বাধা দেয়। এই বৈশিষ্ট্যটি অক্ষম করতে, আপনার মডিউল-স্তরের build.gradle ফাইলে নিম্নলিখিতটি যুক্ত করুন:

    খাঁজকাটা

    android {
      ...
      signingConfigs {
        config {
          ...
          v2SigningEnabled false
        }
      }
    }
          

    কোটলিন

    android {
      ...
      signingConfigs {
        create("config") {
          ...
          v2SigningEnabled = false
        }
      }
    }
          
  • মাল্টিডেক্স বিল্ডের জন্য, আপনি এখন ProGuard নিয়ম ব্যবহার করে নির্ধারণ করতে পারেন যে Gradle আপনার অ্যাপের প্রধান DEX ফাইলে কোন ক্লাস কম্পাইল করবে। যেহেতু Android সিস্টেম আপনার অ্যাপ শুরু করার সময় প্রথমে মূল DEX ফাইল লোড করে, তাই আপনি স্টার্টআপে নির্দিষ্ট ক্লাসগুলিকে প্রধান DEX ফাইলে কম্পাইল করে অগ্রাধিকার দিতে পারেন। আপনার প্রধান DEX ফাইলের জন্য বিশেষভাবে একটি ProGuard কনফিগারেশন ফাইল তৈরি করার পরে, buildTypes.multiDexKeepProguard ব্যবহার করে কনফিগারেশন ফাইলের পথ Gradle-এ পাস করুন। এই DSL ব্যবহার করা buildTypes.proguardFiles ব্যবহার করার থেকে আলাদা, যা আপনার অ্যাপের জন্য সাধারণ ProGuard নিয়ম প্রদান করে এবং প্রধান DEX ফাইলের জন্য ক্লাস নির্দিষ্ট করে না।
  • android:extractNativeLibs ফ্ল্যাগের জন্য সমর্থন যোগ করে, যা আপনার অ্যাপটি যখন কোনও ডিভাইসে ইনস্টল করেন তখন এর আকার কমাতে পারে। যখন আপনি আপনার অ্যাপ ম্যানিফেস্টের <application> এলিমেন্টে এই ফ্ল্যাগটি false তে সেট করেন, তখন Gradle প্যাকেজগুলি আপনার নেটিভ লাইব্রেরির সংস্করণগুলিকে আপনার APK এর সাথে আনকম্প্রেস করে এবং সারিবদ্ধ করে। এটি PackageManager ইনস্টলেশনের সময় APK থেকে ডিভাইসের ফাইল সিস্টেমে আপনার নেটিভ লাইব্রেরিগুলি অনুলিপি করতে বাধা দেয় এবং আপনার অ্যাপের ডেল্টা আপডেটগুলিকে ছোট করার অতিরিক্ত সুবিধা দেয়।
  • আপনি এখন পণ্যের স্বাদের জন্য versionNameSuffix এবং applicationIdSuffix নির্দিষ্ট করতে পারেন। ( সংখ্যা 59614 )
পরিবর্তন:
  • getDefaultProguardFile এখন Gradle-এর জন্য Android প্লাগইন দ্বারা প্রদত্ত ডিফল্ট ProGuard ফাইলগুলি ফেরত দেয় এবং Android SDK-এর ফাইলগুলি আর ব্যবহার করে না।
  • উন্নত জ্যাক কম্পাইলার কর্মক্ষমতা এবং বৈশিষ্ট্য:
    • testCoverageEnabled true তে সেট করার সময় জ্যাক এখন জ্যাকোকো টেস্ট কভারেজ সমর্থন করে।
    • অ্যানোটেশন প্রসেসরের জন্য উন্নত সমর্থন। আপনার ক্লাসপাথে অ্যানোটেশন প্রসেসর, যেমন যেকোনো compile ডিপেন্ডেন্সি, স্বয়ংক্রিয়ভাবে আপনার বিল্ডে প্রয়োগ করা হয়। আপনি আপনার বিল্ডে একটি অ্যানোটেশন প্রসেসর নির্দিষ্ট করতে পারেন এবং আপনার মডিউল-স্তরের build.gradle ফাইলে javaCompileOptions.annotationProcessorOptions {} DSL ব্যবহার করে আর্গুমেন্ট পাস করতে পারেন:

      খাঁজকাটা

      android {
        ...
        defaultConfig {
          ...
          javaCompileOptions {
            annotationProcessorOptions {
              className 'com.example.MyProcessor'
              // Arguments are optional.
              arguments = [ foo : 'bar' ]
            }
          }
        }
      }
          

      কোটলিন

      android {
        ...
        defaultConfig {
          ...
          javaCompileOptions {
            annotationProcessorOptions {
              className = "com.example.MyProcessor"
              // Arguments are optional.
              arguments(mapOf(foo to "bar"))
            }
          }
        }
      }
          

      যদি আপনি কম্পাইলের সময় একটি অ্যানোটেশন প্রসেসর প্রয়োগ করতে চান কিন্তু আপনার APK-তে এটি অন্তর্ভুক্ত না করতে চান, তাহলে annotationProcessor নির্ভরতা স্কোপটি ব্যবহার করুন:

      খাঁজকাটা

      dependencies {
          compile 'com.google.dagger:dagger:2.0'
          annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
         // or use buildVariantAnnotationProcessor to target a specific build variant
      }
          

      কোটলিন

      dependencies {
          implementation("com.google.dagger:dagger:2.0")
          annotationProcessor("com.google.dagger:dagger-compiler:2.0")
         // or use buildVariantAnnotationProcessor to target a specific build variant
      }
          
    • আপনি যে প্যারামিটারগুলি সেট করতে পারেন তার তালিকার জন্য, কমান্ড লাইন থেকে নিম্নলিখিতটি চালান:

      java -jar /build-tools/jack.jar --help-properties
      

    • ডিফল্টরূপে, যদি Gradle ডেমনের হিপ সাইজ কমপক্ষে 1.5 GB হয়, তাহলে Jack এখন Gradle এর মতো একই প্রক্রিয়ায় চলবে। ডেমনের হিপ সাইজ সামঞ্জস্য করতে, আপনার gradle.properties ফাইলে নিম্নলিখিতটি যোগ করুন:

      # This sets the daemon heap size to 1.5GB.
      org.gradle.jvmargs=-Xmx1536M