Linimasa migrasi DSL/API Plugin Android Gradle

Plugin Android Gradle (AGP) adalah sistem build yang didukung untuk aplikasi Android dan mencakup dukungan untuk mengompilasi berbagai jenis sumber dan menautkannya ke dalam aplikasi yang dapat Anda jalankan pada perangkat Android fisik atau emulator.

Bagian berikut menjelaskan evolusi yang direncanakan dari DSL dan API AGP. Saat API baru diperkenalkan dalam rilis stabil, API lama akan ditandai sebagai tidak digunakan lagi. API yang tidak digunakan lagi tersebut selanjutnya akan menjadi tidak tersedia dalam rilis stabil berikutnya. Di bawah ini Anda akan menemukan informasi tentang perubahan mendatang di setiap rilis AGP utama.

AGP 7.0 (Paruh pertama tahun 2021)

Variant API baru stabil, API lama tidak digunakan lagi

  • Variant API yang diinkubasi di 4.1 dan 4.2 bersifat stabil.
  • Semua antarmuka ini berada di artefak gradle-api.
  • Antarmuka dan class sebelumnya yang digunakan di Variant API versi lama kini tidak digunakan lagi.

AGP 7.1 (Paruh kedua tahun 2021)

Antarmuka DSL baru sudah stabil, antarmuka versi lama tidak digunakan lagi

  • Antarmuka DSL yang diinkubasi di 4.1, 4.2, dan 7.0 sekarang stabil.
  • Semua antarmuka ini berada di artefak gradle-api.
  • Antarmuka dan class sebelumnya yang digunakan dalam DSL kini tidak digunakan lagi.

Saat menulis plugin, sebaiknya hanya bergantung pada artefak gradle-api untuk hanya menggunakan antarmuka dan class baru. Satu pengecualian kecil di sini adalah class plugin yang akan pindah ke gradle-api di 8.0:

Class AGP internal pribadi masih dapat diakses

Class internal pribadi dari AGP, yang berada di artefak lain, masih dapat diakses selama kompilasi file build berlangsung, tetapi tidak direkomendasikan untuk menggunakannya karena dapat berubah dengan cara yang dapat menyebabkan gangguan kapan saja.

AGP 8.0 (Paruh pertama tahun 2022)

API lama dihapus

  • Semua antarmuka dan class sebelumnya yang digunakan di DSL dan Variant API lama dihapus.
  • Artefak gradle-api adalah satu-satunya artefak yang Anda perlukan untuk mengakses antarmuka dan class DSL dan Variant API, dan harus digunakan saat mengembangkan plugin.
  • Dengan menggunakan metadata Gradle, yang menawarkan grafik dependensi berbeda untuk kompilasi dan runtime, hanya artefak gradle-api yang tersedia selama kompilasi file build berlangsung.

Class AGP internal pribadi masih dapat diakses

Masih memungkinkan bagi Anda untuk secara manual bergantung pada artefak yang menggunakan class internal pribadi dari AGP pada classpath kompilasinya (untuk plugin dan file build), tetapi hal ini tidak disarankan karena akses akan dihapus di 9.0.

AGP 9.0 (Paruh pertama tahun 2023)

Akses ke class AGP internal pribadi dihapus

Dependensi pada artefak gradle sekarang menyembunyikan semua class internal dan memberikan akses kompilasi hanya ke antarmuka dan class yang tersedia di artefak gradle-api. Hal ini memengaruhi kompilasi file build dan plugin.

Tidak memungkinkan bagi Anda untuk menambahkan dependensi secara manual untuk mendapatkan akses ke class internal.