جدول زمانی مهاجرت DSL/API افزونه Android Gradle

پلاگین Android Gradle (AGP) یک سیستم ساخت پشتیبانی شده برای برنامه های اندروید است و شامل پشتیبانی از کامپایل انواع مختلف منابع و پیوند آنها به یکدیگر به یک برنامه است که می توانید آن را بر روی یک دستگاه اندروید فیزیکی یا شبیه ساز اجرا کنید.

بخش زیر تکامل برنامه ریزی شده DSL و API AGP را شرح می دهد. با معرفی API های جدید در نسخه های پایدار، API های قدیمی به عنوان منسوخ علامت گذاری می شوند. آن APIهای منسوخ شده در نسخه پایدار بعدی از دسترس خارج می شوند. در زیر اطلاعاتی در مورد تغییرات آتی در هر نسخه اصلی AGP خواهید یافت.

برای گزارش دقیق‌تر از حذف یا حذف AGP API، به‌روزرسانی‌های AGP API را ببینید.

AGP 9.0 (اواسط 2024)

API های جدید متغیر پایدار هستند، API های قدیمی منسوخ شده اند

  • API های Variant که در 4.1 و 4.2 در حال رشد بودند، پایدار هستند.
  • همه این رابط ها در آرتیفکت gradle-api قرار دارند.
  • رابط‌ها و کلاس‌های قبلی مورد استفاده در Variant API قدیمی اکنون منسوخ شده‌اند.

رابط های DSL جدید پایدار هستند، رابط های قدیمی منسوخ شده اند

  • رابط‌های DSL که در نسخه‌های 4.1، 4.2 و 7.0 در حال رشد بودند، اکنون پایدار هستند.
  • همه این رابط ها در آرتیفکت gradle-api قرار دارند.
  • رابط ها و کلاس های قبلی که در DSL استفاده می شد اکنون منسوخ شده اند.

کلاس های داخلی خصوصی AGP هنوز در دسترس هستند

کلاس‌های داخلی خصوصی از AGP، واقع در دیگر مصنوعات، هنوز در حین کامپایل کردن فایل‌های ساخت قابل دسترسی هستند، اما استفاده از آنها توصیه نمی‌شود ، زیرا ممکن است در هر زمان به روش‌های شکسته تغییر کنند.

AGP 10.0 (2025)

API های قدیمی حذف می شوند

  • تمام رابط‌ها و کلاس‌های قبلی مورد استفاده در DSL و Variant API قدیمی حذف می‌شوند.
  • آرتیفکت gradle-api تنها آرتیفکتی است که برای دسترسی به رابط‌ها و کلاس‌های DSL و انواع API نیاز دارید و باید هنگام توسعه افزونه‌ها از آن استفاده کنید.
  • با استفاده از ابرداده Gradle، که نمودارهای وابستگی متفاوتی را برای کامپایل و زمان اجرا ارائه می‌دهد، تنها آرتیفکت gradle-api در طول کامپایل کردن فایل‌های ساخت در دسترس است.

(آزمایشی) دسترسی به کلاس های خصوصی داخلی AGP حذف شده است

وابستگی به مصنوع gradle اکنون تمام کلاس های داخلی را پنهان می کند و دسترسی کامپایل را فقط به رابط ها و کلاس های موجود در آرتیفکت gradle-api می دهد. این هم بر کامپایل فایل پلاگین و هم بر روی بیلد تأثیر می گذارد.

نمی توان به صورت دستی یک وابستگی برای دسترسی به کلاس های داخلی اضافه کرد.