গ্রেডলের জন্য অ্যান্ড্রয়েড প্লাগইন, সংশোধন 1.5.0 (নভেম্বর 2015)

নির্ভরতা:
ন্যূনতম সংস্করণ ডিফল্ট সংস্করণ নোট
গ্রেডল 2.2.1 2.2.1 আরও জানতে, Gradle আপডেট করা দেখুন।
SDK বিল্ড টুলস 21.1.1 21.1.1 SDK বিল্ড টুল ইনস্টল বা কনফিগার করুন
সাধারণ নোট:
  • Gradle-এর জন্য Android প্লাগইনে ডেটা বাইন্ডিং প্লাগইনকে একীভূত করা হয়েছে। এটি সক্ষম করতে, প্লাগইন ব্যবহার করে এমন প্রতিটি প্রতি-প্রকল্প build.gradle ফাইলে নিম্নলিখিত কোড যোগ করুন:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • তৃতীয় পক্ষের প্লাগইনগুলিকে .dex ফাইলে রূপান্তর করার আগে কম্পাইল করা .class ফাইলগুলিকে ম্যানিপুলেট করার অনুমতি দেওয়ার জন্য একটি নতুন Transform API যোগ করা হয়েছে৷ ট্রান্সফর্ম এপিআই কাস্টম ক্লাস ম্যানিপুলেশন ইনজেকশন সহজ করে যখন আপনি কি ম্যানিপুলেট করতে পারেন সে সম্পর্কে আরও নমনীয়তা প্রদান করে। একটি বিল্ডে একটি রূপান্তর সন্নিবেশ করতে, Transform ইন্টারফেসের একটি বাস্তবায়ন করে একটি নতুন ক্লাস তৈরি করুন এবং এটিকে android.registerTransform(theTransform) বা android.registerTransform(theTransform, dependencies) দিয়ে নিবন্ধন করুন। কাজগুলিকে একসাথে সংযুক্ত করার দরকার নেই। Transform API সম্পর্কে নিম্নলিখিত নোট করুন:
    • একটি রূপান্তর নিম্নলিখিত এক বা একাধিক ক্ষেত্রে প্রযোজ্য হতে পারে: বর্তমান প্রকল্প, উপপ্রকল্প এবং বহিরাগত লাইব্রেরি।
    • একটি রূপান্তর অবশ্যই বিশ্বব্যাপী নিবন্ধিত হতে হবে, যা সেগুলি সমস্ত ভেরিয়েন্টে প্রযোজ্য।
    • জাভা কোড কভারেজ লাইব্রেরি (জ্যাকোকো), প্রোগার্ড এবং মাল্টিডেক্সের মাধ্যমে অভ্যন্তরীণ কোড প্রক্রিয়াকরণ এখন ট্রান্সফর্ম এপিআই ব্যবহার করে। যাইহোক, জাভা অ্যান্ড্রয়েড কম্পাইলার কিট (জ্যাক) এই API ব্যবহার করে না: শুধুমাত্র javac/dx কোড পাথ করে।
    • Gradle এই ক্রমে রূপান্তরগুলি সম্পাদন করে: JaCoCo, তৃতীয় পক্ষের প্লাগইন, ProGuard৷ তৃতীয় পক্ষের প্লাগইনগুলির সম্পাদনের আদেশটি তৃতীয় পক্ষের প্লাগইনগুলির দ্বারা রূপান্তরগুলি যোগ করা ক্রম অনুসারে মেলে; থার্ড-পার্টি প্লাগইন ডেভেলপাররা এপিআই-এর মাধ্যমে ট্রান্সফর্মের এক্সিকিউশন অর্ডার নিয়ন্ত্রণ করতে পারে না।
  • ApplicationVariant ক্লাস থেকে dex গেটারকে অবমূল্যায়ন করা হয়েছে। আপনি আর ভেরিয়েন্ট API এর মাধ্যমে Dex টাস্ক অ্যাক্সেস করতে পারবেন না কারণ এটি এখন একটি রূপান্তরের মাধ্যমে সম্পন্ন হয়েছে। ডেক্স প্রক্রিয়া নিয়ন্ত্রণের জন্য বর্তমানে কোন প্রতিস্থাপন নেই।
  • সম্পদের জন্য স্থির বৃদ্ধিমূলক সমর্থন।
  • মাল্টিডেক্স সমর্থনকে পরীক্ষামূলক প্রকল্পের জন্য উপলব্ধ করে উন্নত করা হয়েছে এবং পরীক্ষায় এখন স্বয়ংক্রিয়ভাবে com.android.support:multidex-instrumentation ইনস্ট্রুমেন্টেশন নির্ভরতা রয়েছে।
  • Gradle বিল্ড সঠিকভাবে ব্যর্থ করার ক্ষমতা যোগ করা হয়েছে এবং যখন Gradle বিল্ড অ্যাসিঙ্ক্রোনাস কাজগুলিকে আহ্বান করে এবং কর্মী প্রক্রিয়ায় একটি ব্যর্থতা হয় তখন অন্তর্নিহিত ত্রুটির কারণটি রিপোর্ট করে৷
  • একটি নির্দিষ্ট অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) কনফিগার করার জন্য সমর্থন যোগ করা হয়েছে যা একাধিক ABI ধারণ করে।
  • ইনস্টলেশন বা পরীক্ষা চালানোর সময় ANDROID_SERIAL এনভায়রনমেন্ট ভেরিয়েবলের জন্য ডিভাইস সিরিয়াল নম্বরগুলির একটি কমা-বিচ্ছিন্ন তালিকার জন্য সমর্থন যোগ করা হয়েছে।
  • Android 5.0 (API স্তর 20) এবং উচ্চতর চলমান ডিভাইসগুলিতে একটি ইনস্টলেশন ব্যর্থতার সমাধান করা হয়েছে যখন APK নামের একটি স্থান থাকে৷
  • অ্যান্ড্রয়েড অ্যাসেট প্যাকেজিং টুল (AAPT) এরর আউটপুট সংক্রান্ত বিভিন্ন সমস্যা সমাধান করা হয়েছে।
  • দ্রুত ইনক্রিমেন্টাল বিল্ডের জন্য JaCoCo ইনক্রিমেন্টাল ইন্সট্রুমেন্টেশন সাপোর্ট যোগ করা হয়েছে। Gradle-এর জন্য অ্যান্ড্রয়েড প্লাগইন এখন সরাসরি JaCoCo ইন্সট্রুমেন্টারকে আহ্বান করে। JaCoCo ইন্সট্রুমেন্টারের একটি নতুন সংস্করণ জোর করতে, আপনাকে এটি একটি বিল্ড স্ক্রিপ্ট নির্ভরতা হিসাবে যুক্ত করতে হবে।
  • স্থির JaCoCo সমর্থন যাতে এটি ক্লাস নয় এমন ফাইলগুলিকে উপেক্ষা করে।
  • ব্যাকওয়ার্ড-কম্প্যাটিবিলিটির জন্য বিল্ড টাইমে PNG জেনারেট করার জন্য ভেক্টর ড্রয়েবল সমর্থন যোগ করা হয়েছে। গ্রেডলের জন্য অ্যান্ড্রয়েড প্লাগইন একটি রিসোর্স ডিরেক্টরিতে পাওয়া প্রতিটি ভেক্টরের জন্য PNG তৈরি করে যা একটি API সংস্করণ নির্দিষ্ট করে না বা অ্যাপ ম্যানিফেস্টে <uses-sdk> এলিমেন্টে 20 বা তার চেয়ে কম একটি android:minSdkVersion অ্যাট্রিবিউট নির্দিষ্ট করে। আপনি একটি build.gradle ফাইলের defaultConfig বা productFlavor বিভাগে generatedDensities বৈশিষ্ট্য ব্যবহার করে PNG ঘনত্ব সেট করতে পারেন।
  • উপহাসযোগ্য android.jar এর শেয়ারিং যোগ করা হয়েছে, যা প্লাগইন শুধুমাত্র একবার তৈরি করে এবং ইউনিট পরীক্ষার জন্য ব্যবহার করে। একাধিক মডিউল, যেমন app এবং lib , এখন এটি শেয়ার করুন। এটি পুনরুত্পাদন করতে $rootDir/build মুছুন।
  • APK-এর প্যাকেজিংয়ের পরিবর্তে অস্পষ্ট কাজগুলির আগে ঘটতে জাভা সংস্থানগুলির প্রক্রিয়াকরণ পরিবর্তন করা হয়েছে৷ এই পরিবর্তনটি প্যাকেজ অস্পষ্টকরণের পরে জাভা সংস্থানগুলিকে মানিয়ে নেওয়ার সুযোগ পেতে অস্পষ্ট কাজগুলিকে অনুমতি দেয়।
  • পরীক্ষামূলক লাইব্রেরি প্লাগইনে জাভা নেটিভ ইন্টারফেস (JNI) কোড ব্যবহার করে একটি সমস্যা সমাধান করা হয়েছে।
  • পরীক্ষামূলক লাইব্রেরি প্লাগইনে android:compileSdkVersion অ্যাট্রিবিউট থেকে আলাদাভাবে প্ল্যাটফর্ম সংস্করণ সেট করার ক্ষমতা যোগ করা হয়েছে।