অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৯.২ একটি ছোটখাটো রিলিজ, যাতে বিভিন্ন নতুন ফিচার ও উন্নতি অন্তর্ভুক্ত করা হয়েছে।
সামঞ্জস্যতা
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৯.২ সর্বোচ্চ যে এপিআই লেভেলটি সমর্থন করে তা হলো এপিআই লেভেল ৩৭.০। অন্যান্য সামঞ্জস্যতার তথ্য নিচে দেওয়া হলো:
| সর্বনিম্ন সংস্করণ | ডিফল্ট সংস্করণ | নোট | |
|---|---|---|---|
| গ্রেডল | ৯.৪.১ | ৯.৪.১ | আরও জানতে, Gradle আপডেট করা দেখুন। |
| এসডিকে বিল্ড টুলস | ৩৬.০.০ | ৩৬.০.০ | এসডিকে বিল্ড টুলস ইনস্টল বা কনফিগার করুন । |
| এনডিকে | প্রযোজ্য নয় | ২৮.২.১৩৬৭৬৩৫৮ | NDK-এর একটি ভিন্ন সংস্করণ ইনস্টল বা কনফিগার করুন । |
| জেডিকে | ১৭ | ১৭ | আরও জানতে, JDK সংস্করণ নির্ধারণ দেখুন। |
একীভূত কভারেজ এবং পরীক্ষার প্রতিবেদন
AGP 9.2.0-alpha07-এ HTML ড্যাশবোর্ড তৈরির জন্য নতুন টাস্ক যুক্ত করা হয়েছে, যা বিভিন্ন ধরনের টেস্ট (ইউনিট ও ইন্সট্রুমেন্টেশন), মডিউল এবং বিল্ড ভ্যারিয়েন্ট থেকে টেস্টের ফলাফল ও কভারেজ একত্রিত করে একটি একক ড্যাশবোর্ডে একটি পূর্ণাঙ্গ চিত্র প্রদান করে। আরও তথ্যের জন্য, ‘ইউনিফাইড কোড কভারেজ রিপোর্ট তৈরি করুন’ এবং ‘ইউনিফাইড টেস্ট রিপোর্ট দেখুন’ দেখুন ।
R8 পরিবর্তন
AGP 9.2.0-তে নিম্নলিখিত R8 পরিবর্তনগুলি অন্তর্ভুক্ত করা হয়েছে।
রানটাইমে অদৃশ্য অ্যানোটেশন রাখার জন্য আরও কঠোর -keepattributes সিম্যান্টিকস
রানটাইমে অদৃশ্য অ্যানোটেশনগুলো রানটাইমে পড়া যায় না। তাই D8 নিঃশর্তভাবে রানটাইমে অদৃশ্য অ্যানোটেশনগুলো মুছে ফেলে, এবং এটি পরিবর্তন করার কোনো বিকল্প নেই।
ProGuard-এর সাথে সামঞ্জস্যের জন্য, R8 রানটাইমে অদৃশ্য অ্যানোটেশন আউটপুট করা সমর্থন করে। কিন্তু DEX-এ কম্পাইল করার সময়, রানটাইমে অদৃশ্য অ্যানোটেশন সাধারণত কখনোই রাখা উচিত নয়। তবে, R8-এ রানটাইমে দৃশ্যমান অ্যানোটেশন রাখার জন্য সুবিধাজনক নিয়ম -keepattributes *Annotation* (সরাসরি অথবা কনজিউমার কিপ রুল থেকে পরোক্ষভাবে) অন্তর্ভুক্ত করা একটি প্রচলিত অভ্যাস। দুর্ভাগ্যবশত, এর ফলে রানটাইমে অদৃশ্য অ্যানোটেশনগুলোও থেকে যায়।
এই সমস্যাটি সমাধান করতে এবং D8-এর আচরণের সাথে আরও ভালোভাবে মেলানোর জন্য, ওয়াইল্ডকার্ডসহ -keepattributes প্যাটার্নগুলো এখন আর RuntimeInvisibleAnnotations , RuntimeInvisibleParameterAnnotations , এবং RuntimeInvisibleTypeAnnotations সাথে মেলে না। ফলে, রানটাইম ইনভিজিবল অ্যানোটেশনগুলো কেবল তখনই রাখা হবে, যখন অ্যাট্রিবিউটের নামটি ওয়াইল্ডকার্ড ছাড়া স্পষ্টভাবে উল্লেখ করা হবে।
নিম্নলিখিত নিয়মগুলির কোনোটিই এখন রানটাইমে অদৃশ্য অ্যানোটেশনগুলি রাখবে না:
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
রানটাইমে অদৃশ্য অ্যানোটেশন রাখতে, নিম্নলিখিত নিয়মটি ব্যবহার করুন:
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
সদস্য নিয়মে বাতিল নামের জন্য সমর্থন
কনফিগারেশন ভাষাটি প্রসারিত করা হয়েছে, যার ফলে এখন আপনি নেগেটেড মেম্বার নেম প্যাটার্নের সাথেও ম্যাচ করতে পারবেন।
উদাহরণস্বরূপ, যেসব মেথডের শেষে "ForTesting" নেই, সেগুলোকে মেলানোর জন্য নিম্নলিখিত নিয়মটি ব্যবহার করুন:
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
-if নিয়মের পূর্বশর্তে মেম্বার নেম প্যাটার্নকেও নেগেট করা যেতে পারে। যদি কোনো নেগেট করা মেম্বার নেম প্যাটার্নে ওয়াইল্ডকার্ড থাকে, তবে সেই ওয়াইল্ডকার্ডগুলোকে -if কনসিকোয়েন্ট নিয়মে ব্যাক-রেফারেন্স করা যাবে না।
সমাধান করা সমস্যাগুলি
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৯.২.১
| সমাধান করা সমস্যাগুলি | ||
|---|---|---|
| অ্যান্ড্রয়েড গ্রেডল প্লাগইন |
| |
অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৯.২.০
| সমাধান করা সমস্যাগুলি | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| অ্যান্ড্রয়েড গ্রেডল প্লাগইন |
| |||||||||||||||
| লিন্ট |
| |||||||||||||||
| লিন্ট ইন্টিগ্রেশন |
| |||||||||||||||
| সঙ্কোচনকারী (R8) |
| |||||||||||||||