График миграции DSL/API плагина Android Gradle

Плагин Android Gradle (AGP) — это поддерживаемая система сборки приложений Android, которая включает поддержку компиляции множества различных типов источников и их связывания в приложение, которое можно запускать на физическом устройстве Android или в эмуляторе.

В следующем разделе описывается запланированное развитие DSL и API AGP. По мере появления новых API в стабильных выпусках старые API будут помечены как устаревшие. Эти устаревшие API станут недоступными в следующей стабильной версии. Ниже вы найдете информацию о предстоящих изменениях в каждом основном выпуске AGP.

Более подробный журнал об устаревании или удалении API AGP см. в разделе Обновления API AGP .

AGP 9.0 (середина 2024 г.)

Новые варианты API стабильны, старые API устарели.

  • Варианты API , которые находились в стадии разработки в версиях 4.1 и 4.2, стабильны.
  • Все эти интерфейсы расположены в артефакте gradle-api .
  • Предыдущие интерфейсы и классы, использовавшиеся в старом Variant API, теперь устарели.

Новые интерфейсы DSL стабильны, старые устарели.

  • Интерфейсы DSL , которые находились в стадии разработки в версиях 4.1, 4.2 и 7.0, теперь стабильны.
  • Все эти интерфейсы расположены в артефакте gradle-api .
  • Предыдущие интерфейсы и классы, используемые в DSL, теперь устарели.

Частные внутренние классы AGP по-прежнему доступны.

Частные внутренние классы из AGP, расположенные в других артефактах, по-прежнему доступны во время компиляции файлов сборки, но использовать их не рекомендуется, поскольку они могут в любой момент измениться критическим образом.

АГП 10.0 (2025 г.)

Старые API удалены.

  • Все предыдущие интерфейсы и классы, используемые в DSL и старом Variant API, удалены .
  • Артефакт gradle-api — единственный артефакт, который вам нужен для доступа к DSL и вариантам интерфейсов и классов API, и его следует использовать при разработке плагинов.
  • При использовании метаданных Gradle, которые предлагают различные графики зависимостей для компиляции и выполнения, во время компиляции файлов сборки доступен только артефакт gradle-api .

(Предварительно) Доступ к частным внутренним классам AGP удален.

Зависимость от артефакта gradle теперь скрывает все внутренние классы и предоставляет доступ компиляции только к интерфейсам и классам, доступным в артефакте gradle-api . Это влияет как на компиляцию плагина, так и на компиляцию файла сборки.

Невозможно вручную добавить зависимость для получения доступа к внутренним классам.