افزونه اندروید گریدل ۹.۲ یک نسخه جزئی است که شامل مجموعهای از ویژگیها و بهبودهای جدید میشود.
سازگاری
حداکثر سطح API که افزونه اندروید Gradle نسخه ۹.۲ پشتیبانی میکند، سطح API ۳۷.۰ است. در اینجا اطلاعات سازگاری دیگری نیز وجود دارد:
| حداقل نسخه | نسخه پیشفرض | یادداشتها | |
|---|---|---|---|
| گرادل | ۹.۴.۱ | ۹.۴.۱ | برای کسب اطلاعات بیشتر، به بهروزرسانی Gradle مراجعه کنید. |
| ابزارهای ساخت SDK | ۳۶.۰.۰ | ۳۶.۰.۰ | ابزارهای ساخت SDK را نصب یا پیکربندی کنید . |
| ان دی کی | ناموجود | ۲۸.۲.۱۳۶۷۶۳۵۸ | نسخه دیگری از NDK را نصب یا پیکربندی کنید . |
| جیدیکی | ۱۷ | ۱۷ | برای کسب اطلاعات بیشتر، به تنظیم نسخه JDK مراجعه کنید. |
پوشش یکپارچه و گزارشهای آزمایش
AGP 9.2.0-alpha07 وظایفی را برای تولید داشبوردهای HTML معرفی میکند که نتایج تست و پوشش انواع مختلف تست (واحد و ابزار دقیق)، ماژولها و انواع ساخت را تجمیع میکند و یک مرور کلی جامع را در یک داشبورد واحد ارائه میدهد. برای اطلاعات بیشتر، به «ایجاد گزارشهای پوشش کد یکپارچه» و «مشاهده گزارشهای تست یکپارچه» مراجعه کنید.
تغییرات R8
تغییرات R8 زیر در AGP 9.2.0 لحاظ شدهاند.
معانی سختگیرانهتر -keepattributes برای حفظ حاشیهنویسیهای نامرئی در زمان اجرا
حاشیهنویسیهای نامرئی زمان اجرا را نمیتوان در زمان اجرا خواند. بنابراین D8 بدون قید و شرط حاشیهنویسیهای نامرئی زمان اجرا را حذف میکند، بدون اینکه گزینهای برای تغییر این مورد وجود داشته باشد.
برای سازگاری با ProGuard، R8 از خروجی حاشیهنویسیهای نامرئی زمان اجرا پشتیبانی میکند. اما هنگام کامپایل به DEX، حاشیهنویسیهای نامرئی زمان اجرا معمولاً هرگز نباید حفظ شوند. با این حال، معمولاً قانون مناسب -keepattributes *Annotation* (به طور مستقیم یا غیرمستقیم از قوانین نگهدارنده مصرفکننده) برای R8 در نظر گرفته میشود تا حاشیهنویسیهای قابل مشاهده زمان اجرا حفظ شوند. متأسفانه این امر منجر به حفظ حاشیهنویسیهای نامرئی زمان اجرا نیز میشود.
برای کاهش این مشکل و تطابق بهتر با رفتار D8، الگوهای -keepattributes با wildcards دیگر با RuntimeInvisibleAnnotations ، RuntimeInvisibleParameterAnnotations و RuntimeInvisibleTypeAnnotations مطابقت ندارند. در نتیجه، حاشیهنویسیهای نامرئی زمان اجرا فقط در صورتی حفظ میشوند که نام ویژگی به صراحت و بدون wildcards ذکر شود.
هیچ یک از قوانین زیر اکنون حاشیهنویسیهای نامرئی زمان اجرا را حفظ نمیکنند:
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
برای اینکه حاشیهنویسیهای زمان اجرا نامرئی بمانند، از قانون زیر استفاده کنید:
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
پشتیبانی از نامهای منفی در قوانین اعضا
زبان پیکربندی گسترش یافته است، به طوری که اکنون میتوانید الگوهای نام عضو منفیشده را مطابقت دهید.
برای مثال، برای تطبیق تمام متدهایی که به "ForTesting" ختم نمیشوند، از قانون زیر استفاده کنید:
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
الگوهای نام عضو همچنین میتوانند در پیششرط قوانین -if منفی شوند. اگر یک الگوی نام عضو منفی شده حاوی کاراکترهای عمومی باشد، چنین کاراکترهای عمومی نمیتوانند در قانون -if به عقب ارجاع داده شوند.
مشکلات برطرف شده
افزونه اندروید گریدل ۹.۲.۱
| مشکلات برطرف شده | ||
|---|---|---|
| افزونه گرادل اندروید |
| |
افزونه اندروید گریدل ۹.۲.۰
| مشکلات برطرف شده | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| افزونه گرادل اندروید |
| |||||||||||||||
| پرز |
| |||||||||||||||
| ادغام Lint |
| |||||||||||||||
| شرینکر (R8) |
| |||||||||||||||