অ্যান্ড্রয়েড গ্রেডল প্লাগইন 2.2.0 (সেপ্টেম্বর 2016)

নির্ভরতা:
ন্যূনতম সংস্করণ ডিফল্ট সংস্করণ নোট
গ্রেডল 2.14.1 2.14.1 আরও জানতে, Gradle আপডেট করা দেখুন।
SDK বিল্ড টুলস 23.0.2 23.0.2 SDK বিল্ড টুল ইনস্টল বা কনফিগার করুন
নতুন:
  • Gradle 2.14.1 ব্যবহার করে, যার মধ্যে কর্মক্ষমতার উন্নতি এবং নতুন বৈশিষ্ট্য রয়েছে, এবং একটি নিরাপত্তা দুর্বলতা সংশোধন করে যা Gradle ডেমন ব্যবহার করার সময় স্থানীয় বিশেষাধিকার বৃদ্ধির অনুমতি দেয়। আরও বিশদ বিবরণের জন্য, গ্রেডল রিলিজ নোটগুলি দেখুন।
  • externalNativeBuild {} DSL ব্যবহার করে, Gradle এখন আপনাকে আপনার নেটিভ সোর্সের সাথে লিঙ্ক করতে দেয় এবং CMake বা ndk-build ব্যবহার করে নেটিভ লাইব্রেরি কম্পাইল করতে দেয়। আপনার নেটিভ লাইব্রেরি তৈরি করার পরে, Gradle সেগুলিকে আপনার APK এ প্যাকেজ করে। Gradle এর সাথে CMake এবং ndk-build ব্যবহার সম্পর্কে আরও জানতে, আপনার প্রকল্পে C এবং C++ কোড যোগ করুন পড়ুন।
  • যখন আপনি কমান্ড লাইন থেকে একটি বিল্ড চালান , গ্রেডল এখন আপনার প্রকল্পের উপর নির্ভর করে এমন কোনো অনুপস্থিত 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
        }
      }
    }
          
  • মাল্টিডেক্স বিল্ডগুলির জন্য, আপনি এখন প্রোগার্ড নিয়মগুলি ব্যবহার করতে পারেন যা নির্ধারণ করতে Gradle আপনার অ্যাপের প্রধান DEX ফাইলে কম্পাইল করবে৷ যেহেতু অ্যান্ড্রয়েড সিস্টেম আপনার অ্যাপ শুরু করার সময় প্রথমে প্রধান DEX ফাইল লোড করে, তাই আপনি মূল DEX ফাইলে কম্পাইল করে স্টার্টআপের সময় নির্দিষ্ট ক্লাসগুলিকে অগ্রাধিকার দিতে পারেন৷ আপনি আপনার প্রধান DEX ফাইলের জন্য বিশেষভাবে একটি ProGuard কনফিগারেশন ফাইল তৈরি করার পরে, buildTypes.multiDexKeepProguard ব্যবহার করে Gradle-এ কনফিগারেশন ফাইলের পাথ পাস করুন। এই DSL ব্যবহার করা buildTypes.proguardFiles ব্যবহার করার থেকে আলাদা, যা আপনার অ্যাপের জন্য সাধারণ ProGuard নিয়ম প্রদান করে এবং প্রধান DEX ফাইলের জন্য ক্লাস নির্দিষ্ট করে না।
  • android:extractNativeLibs ফ্ল্যাগের জন্য সমর্থন যোগ করে, যা আপনি একটি ডিভাইসে ইনস্টল করার সময় আপনার অ্যাপের আকার কমাতে পারে। আপনি যখন আপনার অ্যাপ ম্যানিফেস্টের <application> উপাদানটিতে এই পতাকাটিকে false সেট করেন, তখন গ্রেডল প্যাকেজগুলি আপনার APK এর সাথে আপনার নেটিভ লাইব্রেরিগুলির সংকুচিত এবং সারিবদ্ধ সংস্করণগুলিকে সেট করে। এটি ইনস্টলেশনের সময় PackageManager আপনার নেটিভ লাইব্রেরিগুলিকে APK থেকে ডিভাইসের ফাইল সিস্টেমে অনুলিপি করতে বাধা দেয় এবং আপনার অ্যাপের ডেল্টা আপডেটগুলিকে ছোট করার অতিরিক্ত সুবিধা রয়েছে৷
  • আপনি এখন পণ্যের স্বাদের জন্য versionNameSuffix এবং applicationIdSuffix নির্দিষ্ট করতে পারেন। ( ইস্যু 59614 )
পরিবর্তন:
  • getDefaultProguardFile এখন ডিফল্ট ProGuard ফাইলগুলি ফেরত দেয় যা Gradle-এর জন্য Android প্লাগইন সরবরাহ করে এবং Android SDK-এ থাকা ফাইলগুলি আর ব্যবহার করে না৷
  • উন্নত জ্যাক কম্পাইলার কর্মক্ষমতা এবং বৈশিষ্ট্য:
    • testCoverageEnabled to true সেট করার সময় জ্যাক এখন Jacoco পরীক্ষার কভারেজ সমর্থন করে।
    • টীকা প্রসেসরের জন্য উন্নত সমর্থন। আপনার ক্লাসপাথের টীকা প্রসেসর, যেমন কোনো 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
      

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

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