Zeitplan für die DSL/API-Migration des Android-Gradle-Plug-ins

Das Android Gradle-Plug-in (AGP) ist das unterstützte Build-System für Android-Anwendungen. Es unterstützt das Kompilieren vieler verschiedener Arten von Quellen und deren Verknüpfung zu einer Anwendung, die auf einem physischen Android-Gerät oder einem Emulator ausgeführt werden kann.

Im folgenden Abschnitt wird die geplante Weiterentwicklung der DSL und API von AGP beschrieben. Wenn neue APIs in stabilen Releases eingeführt werden, werden alte APIs als verworfen gekennzeichnet. Diese verworfenen APIs sind dann im nächsten stabilen Release nicht mehr verfügbar. Im Folgenden finden Sie Informationen zu anstehenden Änderungen in den einzelnen Hauptversionen von AGP.

Ein ausführliches Protokoll der AGP API-Einstellungen oder -Entfernungen finden Sie in den AGP API-Updates.

AGP 9.0 (Mitte 2024)

Neue Variant APIs sind stabil, alte APIs werden eingestellt

  • Die in 4.1 und 4.2 entwickelten Varianten APIs sind stabil.
  • Alle diese Schnittstellen befinden sich im Artefakt gradle-api.
  • Die vorherigen Schnittstellen und Klassen, die in der alten Variant API verwendet wurden, wurden eingestellt.

Neue DSL-Schnittstellen sind stabil, alte werden eingestellt

  • Die DSL-Schnittstellen, die in Version 4.1, 4.2 und 7.0 entstanden sind, sind jetzt stabil.
  • Alle diese Schnittstellen befinden sich im Artefakt gradle-api.
  • Die bisherigen Schnittstellen und Klassen, die in DSL verwendet wurden, wurden eingestellt.

Private interne AGP-Kurse weiterhin zugänglich

Private interne Klassen von AGP, die sich in anderen Artefakten befinden, sind während der Kompilierung von Build-Dateien weiterhin zugänglich. Es wird jedoch nicht empfohlen, sie zu verwenden, da sie sich jederzeit ändern können.

AGP 10.0 (2025)

Alte APIs werden entfernt

  • Alle vorherigen Schnittstellen und Klassen, die in DSL und der alten Variant API verwendet wurden, werden gelöscht.
  • Das Artefakt gradle-api ist das einzige Artefakt, das Sie für den Zugriff auf DSL- und Variant API-Schnittstellen und -Klassen benötigen. Es sollte beim Entwickeln von Plug-ins verwendet werden.
  • Wenn die Gradle-Metadaten verschiedene Abhängigkeitsdiagramme für Kompilierung und Laufzeit bieten, ist während der Kompilierung von Build-Dateien nur das gradle-api-Artefakt verfügbar.

(Mit Vorbehalt) Zugriff auf private interne AGP-Klassen wird entfernt

Durch die Abhängigkeit vom gradle-Artefakt werden jetzt alle internen Klassen ausgeblendet und der Kompilierungszugriff nur auf die im Artefakt gradle-api verfügbaren Schnittstellen und Klassen gewährt. Dies wirkt sich sowohl auf die Plug-in- als auch die Build-Dateikompilierung aus.

Es ist nicht möglich, manuell eine Abhängigkeit hinzuzufügen, um Zugriff auf die internen Klassen zu erhalten.