Cronograma de migración del DSL y la API del complemento de Android para Gradle

El complemento de Android para Gradle (AGP) es el sistema de compilación compatible con aplicaciones para Android. Además, admite la compilación de muchos tipos diferentes de fuentes y su vinculación a una aplicación que puedes ejecutar en un dispositivo Android físico o en un emulador.

En la siguiente sección, se describe la evolución planificada del DSL y la API del AGP. A medida que se incorporen nuevas API en versiones estables, las API anteriores se marcarán como obsoletas. Esas API obsoletas dejarán de estar disponibles en la próxima versión estable. A continuación, encontrarás información sobre los próximos cambios en cada versión importante del AGP.

AGP 7.0 (primera mitad de 2021)

Las nuevas API de variantes son estables, y las API antiguas dejaron de estar disponibles

  • Las API de variantes que estaban en preparación en 4.1 y 4.2 son estables.
  • Todas estas interfaces se encuentran en el artefacto gradle-api.
  • Las interfaces y clases anteriores que se utilizaban en la antigua API de variantes ya no están disponibles.

AGP 7.1 (segunda mitad de 2021)

Las nuevas interfaces DSL son estables, y las antiguas dejaron de estar disponibles

  • Las interfaces DSL que estaban en preparación en 4.1, 4.2 y 7.0 ahora son estables.
  • Todas estas interfaces se encuentran en el artefacto gradle-api.
  • Las interfaces y clases anteriores utilizadas en DSL ya no están disponibles.

A la hora de escribir complementos, te recomendamos que dependan solo del artefacto gradle-api para usar únicamente las interfaces y clases nuevas. Una pequeña excepción a esto son las clases del complemento que se moverán a gradle-api en 8.0:

Aún puedes acceder a las clases internas privadas del AGP

Se puede acceder a las clases internas privadas del AGP, ubicadas en otros artefactos, durante la compilación de archivos de compilación, pero no te recomendamos que las uses, ya que pueden cambiar por completo en cualquier momento.

AGP 8.0 (primera mitad de 2022)

Se quitaron las API anteriores

  • Se borraron todas las interfaces y clases anteriores que se usaban en el DSL y la antigua API de variantes.
  • El artefacto gradle-api es el único que necesitas para acceder a DSL y a las interfaces y las clases de la API de variantes, y deberás usarlo cuando desarrolles complementos.
  • Cuando uses los metadatos de Gradle, que ofrecen diferentes gráficos de dependencias para la compilación y el tiempo de ejecución, solo estará disponible el artefacto gradle-api durante la compilación de archivos de compilación.

Aún puedes acceder a las clases internas privadas del AGP

Aún es posible depender manualmente de un artefacto que usa clases internas privadas del AGP en la ruta de clase de la compilación (tanto para complementos como archivos de compilación), pero no recomendamos que hagas esto, ya que se quitará el acceso en la versión 9.0.

AGP 9.0 (primera mitad de 2023)

Se quitó el acceso a las clases internas privadas del AGP

La dependencia del artefacto gradle ahora oculta todas las clases internas y otorga acceso de compilación solo a las interfaces y clases disponibles en el artefacto gradle-api. Esto afecta tanto la compilación de archivos de compilación como el complemento.

No es posible agregar una dependencia de forma manual a fin de obtener acceso a las clases internas.