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

অ্যান্ড্রয়েড প্লাগইনের এই সংস্করণটির জন্য নিম্নলিখিতগুলি প্রয়োজন:

সর্বনিম্ন সংস্করণ ডিফল্ট সংস্করণ মন্তব্য
গ্রেডল ৪.৬ ৪.৬ আরও জানতে, Gradle আপডেট করা দেখুন।
SDK বিল্ড টুলস ২৮.০.৩ ২৮.০.৩ SDK বিল্ড টুল ইনস্টল বা কনফিগার করুন

৩.২.১ (অক্টোবর ২০১৮)

এই আপডেটের মাধ্যমে, আপনাকে আর SDK বিল্ড টুলের জন্য কোনও সংস্করণ নির্দিষ্ট করতে হবে না। Android Gradle প্লাগইন এখন ডিফল্টরূপে 28.0.3 সংস্করণ ব্যবহার করে।

নতুন বৈশিষ্ট্য

  • অ্যান্ড্রয়েড অ্যাপ বান্ডেল তৈরির জন্য সহায়তা: অ্যাপ বান্ডেল হল একটি নতুন আপলোড ফর্ম্যাট যা আপনার অ্যাপের সমস্ত কম্পাইল করা কোড এবং রিসোর্স অন্তর্ভুক্ত করে, একই সাথে APK তৈরি এবং Google Play Store-এ সাইন ইন করার সময়। আপনাকে আর একাধিক APK তৈরি, সাইন ইন এবং পরিচালনা করতে হবে না এবং ব্যবহারকারীরা তাদের ডিভাইসের জন্য অপ্টিমাইজ করা ছোট ছোট ডাউনলোড পাবেন। আরও জানতে, অ্যান্ড্রয়েড অ্যাপ বান্ডেল সম্পর্কে পড়ুন।

  • অ্যানোটেশন প্রসেসর ব্যবহার করার সময় উন্নত ক্রমবর্ধমান বিল্ড গতির জন্য সমর্থন: AnnotationProcessorOptions ডিএসএল এখন CommandLineArgumentProvider প্রসারিত করে, যা আপনাকে বা অ্যানোটেশন প্রসেসর লেখককে ইনক্রিমেন্টাল বিল্ড প্রোপার্টি টাইপ অ্যানোটেশন ব্যবহার করে প্রসেসরের জন্য আর্গুমেন্ট টীকা করতে সক্ষম করে। এই অ্যানোটেশনগুলি ব্যবহার করলে ইনক্রিমেন্টাল এবং ক্যাশেড ক্লিন বিল্ডগুলির সঠিকতা এবং কর্মক্ষমতা উন্নত হয়। আরও জানতে, Pass arguments to annotation processors পড়ুন।

  • AndroidX এর জন্য মাইগ্রেশন টুল: Android Gradle প্লাগইন 3.2.0 ব্যবহার করার সময়, আপনি মেনু বার থেকে Refactor > Migrate to AndroidX নির্বাচন করে নতুন AndroidX লাইব্রেরি ব্যবহার করার জন্য আপনার প্রকল্পের স্থানীয় এবং Maven নির্ভরতা স্থানান্তর করতে পারেন। এই মাইগ্রেশন টুলটি ব্যবহার করলে আপনার gradle.properties ফাইলে নিম্নলিখিত ফ্ল্যাগগুলি true তে সেট করা হয়:

    • android.useAndroidX : যখন true তে সেট করা হয়, তখন Android প্লাগইনটি Support Library এর পরিবর্তে উপযুক্ত AndroidX লাইব্রেরি ব্যবহার করে। যখন এই পতাকাটি নির্দিষ্ট করা না থাকে, তখন প্লাগইনটি ডিফল্টরূপে এটিকে false তে সেট করে।

    • android.enableJetifier : যখন true তে সেট করা হয়, তখন Android প্লাগইন স্বয়ংক্রিয়ভাবে বিদ্যমান তৃতীয়-পক্ষের লাইব্রেরিগুলিকে তাদের বাইনারিগুলি পুনরায় লিখে AndroidX ব্যবহার করার জন্য স্থানান্তরিত করে। যখন এই পতাকাটি নির্দিষ্ট করা না থাকে, তখন প্লাগইনটি ডিফল্টরূপে এটিকে false তে সেট করে। আপনি এই পতাকাটি শুধুমাত্র true তে সেট করতে পারেন যখন android.useAndroidXtrue তে সেট করা থাকে, অন্যথায় আপনি একটি বিল্ড ত্রুটি পাবেন।

      আরও জানতে, AndroidX এর ওভারভিউ পড়ুন।

  • নতুন কোড সঙ্কুচিতকারী, R8: R8 হল কোড সঙ্কুচিত এবং অস্পষ্ট করার জন্য একটি নতুন টুল যা ProGuard কে প্রতিস্থাপন করে। আপনি আপনার প্রোজেক্টের gradle.properties ফাইলে নিম্নলিখিতগুলি অন্তর্ভুক্ত করে R8 এর প্রিভিউ সংস্করণ ব্যবহার শুরু করতে পারেন:

            android.enableR8 = true
            
            android.enableR8 = true
            

আচরণগত পরিবর্তন

  • D8 দিয়ে ডিসুগারিং এখন ডিফল্টরূপে সক্রিয়।

  • AAPT2 এখন Google এর Maven রেপোতে রয়েছে। AAPT2 ব্যবহার করতে, নিশ্চিত করুন যে আপনার build.gradle ফাইলে google() নির্ভরতা আছে, যেমনটি নীচে দেখানো হয়েছে:

              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
  • নেটিভ মাল্টিডেক্স এখন ডিফল্টরূপে সক্ষম। অ্যান্ড্রয়েড স্টুডিওর পূর্ববর্তী সংস্করণগুলি 21 বা তার বেশি স্তরের Android API চলমান ডিভাইসে অ্যাপের ডিবাগ সংস্করণ স্থাপন করার সময় নেটিভ মাল্টিডেক্স সক্ষম করেছিল। এখন, আপনি কোনও ডিভাইসে স্থাপন করছেন বা প্রকাশের জন্য একটি APK তৈরি করছেন, Android Gradle প্লাগইন minSdkVersion=21 বা তার বেশি স্তরের সেট করা সমস্ত মডিউলের জন্য নেটিভ মাল্টিডেক্স সক্ষম করে।

  • প্লাগইনটি এখন প্রোটোবাফ প্লাগইন (0.8.6), কোটলিন প্লাগইন (1.2.50) এবং ক্র্যাশলিটিক্স প্লাগইন (1.25.4) এর একটি ন্যূনতম সংস্করণ প্রয়োগ করে।

  • ফিচার মডিউল প্লাগইন, com.android.feature , এখন মডিউলের নাম নির্দিষ্ট করার সময় শুধুমাত্র অক্ষর, সংখ্যা এবং আন্ডারস্কোর ব্যবহার বাধ্যতামূলক করে। উদাহরণস্বরূপ, যদি আপনার ফিচার মডিউলের নামে ড্যাশ থাকে, তাহলে আপনি একটি বিল্ড ত্রুটি পাবেন। এই আচরণটি ডায়নামিক ফিচার প্লাগইনের সাথে মিলে যায়।

বাগ সংশোধন

  • জাভাকম্পাইল এখন ডেটা বাইন্ডিং সহ প্রকল্পগুলিতে ক্যাশেযোগ্য। ( ইস্যু #69243050 )
  • ডেটা বাইন্ডিং সহ লাইব্রেরি মডিউলগুলির জন্য আরও ভাল কম্পাইল এড়ানো। ( সংখ্যা #77539932 )
  • কিছু অপ্রত্যাশিত বিল্ড ত্রুটির কারণে যদি আপনি পূর্ববর্তী সংস্করণগুলিতে কনফিগার-অন-ডিমান্ড অক্ষম করে থাকেন, তাহলে এখন আপনি পুনরায় সক্ষম করতে পারবেন। ( ইস্যু #77910727 )