Android Gradle Plugin 3.2.0 (সেপ্টেম্বর ২০১৮)

Android প্লাগ-ইনের এই ভার্সনের জন্য নিম্নলিখিত বিষয়গুলি প্রয়োজন:

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

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

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

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

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

  • অ্যানোটেশন প্রসেসর ব্যবহার করার সময় উন্নত ইনক্রিমেন্টাল বিল্ড স্পিডের জন্য সহায়তা: AnnotationProcessorOptions DSL এখন CommandLineArgumentProvider-এর এক্সটেনশন, যা আপনাকে বা অ্যানোটেশন প্রসেসর লেখকের জন্য ইনক্রিমেন্টাল বিল্ড প্রপার্টি টাইপ অ্যানোটেশন ব্যবহার করে প্রসেসরের আর্গুমেন্ট অ্যানোটেট করতে দেয়। এইসব অ্যানোটেশন ব্যবহার করলে ইনক্রিমেন্টাল ও ক্যাশে করা ক্লিন বিল্ডের সঠিকতা ও পারফর্ম্যান্স উন্নত হয়। আরও জানতে, অ্যানোটেশন প্রসেসরকে আর্গুমেন্ট পাস করুন লিঙ্কে যান।

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

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

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

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

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

            android.enableR8 = true
            
            android.enableR8 = true
            

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

  • D8-এর মাধ্যমে চিনি কমানোর সুবিধা এখন ডিফল্ট হিসেবে চালু করা হয়েছে।

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

              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-এর আগের যেকোনও ভার্সন Android API লেভেল 21 বা তার পরের যেকোনও ভার্সনে চলে এমন ডিভাইসে কোনও অ্যাপের ডিবাগ ভার্সন ডেপ্লয় করার সময় Studio নেটিভ মাল্টিডেক্স চালু করে। এখন, আপনি কোনও ডিভাইসে ডিপ্লয় করুন বা রিলিজ করার জন্য APK তৈরি করুন, Android Gradle প্লাগ-ইন minSdkVersion=21 বা তার পরবর্তী ভার্সন সেট করা সব মডিউলের জন্য নেটিভ মাল্টিডেক্স চালু করে।

  • প্লাগ-ইন এখন protobuf প্লাগ-ইনের (0.8.6), Kotlin প্লাগ-ইনের (1.2.50) এবং Crashlytics প্লাগ-ইনের (1.25.4) ন্যূনতম ভার্সন প্রয়োগ করে।

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

সমস্যার সমাধান

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