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