Android Gradle Plugin 3.2.0 (সেপ্টেম্বর 2018)

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

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

3.2.1 (অক্টোবর 2018)

এই আপডেটের সাথে, আপনাকে আর SDK বিল্ড টুলের জন্য একটি সংস্করণ নির্দিষ্ট করতে হবে না। অ্যান্ড্রয়েড গ্রেডল প্লাগইন এখন ডিফল্টরূপে 28.0.3 সংস্করণ ব্যবহার করে।

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

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

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

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

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

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

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

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

            android.enableR8 = true
            
            android.enableR8 = true
            

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

  • ডি 8 এর সাথে ডিসুগারিং এখন ডিফল্টরূপে সক্রিয় করা হয়েছে।

  • 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()
                }
              
  • নেটিভ মাল্টিডেক্স এখন ডিফল্টরূপে সক্রিয়। অ্যান্ড্রয়েড স্টুডিওর পূর্ববর্তী সংস্করণগুলি Android API স্তর 21 বা উচ্চতর চলমান ডিভাইসে একটি অ্যাপের ডিবাগ সংস্করণ স্থাপন করার সময় নেটিভ মাল্টিডেক্স সক্ষম করে। এখন, আপনি একটি ডিভাইসে স্থাপন করছেন বা মুক্তির জন্য একটি APK তৈরি করছেন, Android Gradle প্লাগইন minSdkVersion=21 বা উচ্চতর সেট করা সমস্ত মডিউলের জন্য নেটিভ মাল্টিডেক্স সক্ষম করে৷

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

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

বাগ ফিক্স

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