গ্র্যাডেলের জন্য অ্যান্ড্রয়েড প্লাগইন, সংস্করণ ১.৫.০ (নভেম্বর ২০১৫)

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