Plugin Android untuk Gradle, revisi 1.5.0 (November 2015)

Dependensi:
  • Gradle 2.2.1 atau yang lebih tinggi.
  • Build Tools 21.1.1 atau yang lebih tinggi.
Catatan Umum:
  • Mengintegrasikan plugin Data Binding ke dalam plugin Android untuk Gradle. Untuk mengaktifkannya, tambahkan kode berikut ke setiap file build.gradle per project yang menggunakan plugin:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Menambahkan Transform API baru untuk memungkinkan plugin pihak ketiga memanipulasi file .class terkompilasi sebelum dikonversi menjadi file .dex. Transform API menyederhanakan injeksi manipulasi class kustom sekaligus menawarkan fleksibilitas yang lebih baik terkait apa saja yang dapat Anda manipulasi. Untuk menyisipkan transform ke dalam build, buatlah class baru yang mengimplementasikan salah satu antarmuka Transform, lalu daftarkan ke android.registerTransform(theTransform) atau android.registerTransform(theTransform, dependencies). Tidak perlu menyatukan tugas. Perhatikan hal-hal berikut terkait Transform API:
    • Sebuah transform dapat berlaku untuk satu atau beberapa dari berikut ini: project saat ini, subproject, library eksternal.
    • Transform harus didaftarkan secara global, yang akan menerapkannya ke semua varian.
    • Pemrosesan kode internal, melalui Java Code Coverage Library (JaCoCo), ProGuard, dan MultiDex, sekarang menggunakan Transform API. Namun, Java Android Compiler Kit (Jack) tidak menggunakan API ini: hanya jalur kode javac/dx yang menggunakannya.
    • Gradle menjalankan transform dalam urutan sebagai berikut: JaCoCo, plugin pihak ketiga, ProGuard. Urutan eksekusi untuk plugin pihak ketiga cocok dengan urutan penambahan transform oleh plugin pihak ketiga; developer plugin pihak ketiga tidak dapat mengontrol urutan eksekusi transform melalui API.
  • Menghentikan penggunaan pengambil dex dari classApplicationVariant. Anda tidak dapat lagi mengakses tugas Dex melalui API varian karena hal tersebut sekarang diselesaikan melalui transform. Saat ini belum ada pengganti untuk mengontrol proses dex.
  • Memperbaiki dukungan inkremental untuk aset.
  • Meningkatkan dukungan MultiDex dengan menyediakannya untuk project pengujian, dan pengujian sekarang otomatis memiliki dependensi com.android.support:multidex-instrumentation.
  • Menambahkan kemampuan untuk menggagalkan proses build Gradle dengan baik dan melaporkan penyebab error yang mendasarinya saat build Gradle memanggil tugas asinkron dan terjadi kegagalan dalam proses pekerja.
  • Menambahkan dukungan untuk mengonfigurasi Antarmuka Biner Aplikasi (ABI) khusus pada varian yang memuat banyak ABI.
  • Menambahkan dukungan untuk daftar nomor seri perangkat yang dipisahkan koma untuk variabel lingkungan ANDROID_SERIAL saat menginstal atau menjalankan pengujian.
  • Memperbaiki kegagalan penginstalan pada perangkat yang menjalankan Android 5.0 (API level 20) dan yang lebih tinggi jika nama APK memuat spasi.
  • Memperbaiki berbagai masalah yang terkait dengan output error Android Asset Packaging Tool (AAPT).
  • Menambahkan dukungan instrumentasi inkremental JaCoCo untuk mempercepat proses build inkremental. Plugin Android untuk Gradle sekarang memanggil instrumenter JaCoCo secara langsung. Untuk memaksakan versi instrumenter JaCoCo yang lebih baru, Anda harus menambahkannya sebagai dependensi skrip build.
  • Memperbaiki dukungan JaCoCo sehingga mengabaikan file yang bukan merupakan class.
  • Menambahkan dukungan vektor drawable untuk menghasilkan PNG selama waktu build agar kompatibel dengan versi sebelumnya. Plugin Android untuk Gradle menghasilkan PNG untuk setiap vector drawable yang ditemukan di direktori resource yang tidak menentukan versi API atau yang menentukan atribut android:minSdkVersion 20 atau lebih lama dalam elemen <uses-sdk> di manifes aplikasi. Anda dapat menetapkan kepadatan PNG menggunakan properti generatedDensities di bagian defaultConfig atau productFlavor file build.gradle.
  • Menambahkan kemampuan berbagi android.jar tiruan, yang hanya dihasilkan satu kali oleh plugin dan digunakan untuk pengujian unit. Beberapa modul, seperti app dan lib, sekarang membagikannya. Hapus $rootDir/build untuk membuatnya kembali.
  • Mengubah pemrosesan resource Java agar terjadi sebelum tugas obfuscation, bukan selama pengemasan APK. Perubahan ini memungkinkan tugas obfuscation memiliki kesempatan untuk menyesuaikan resource Java setelah obfuscation paket.
  • Memperbaiki masalah penggunaan kode Java Native Interface (JNI) dalam plugin library eksperimental.
  • Menambahkan kemampuan untuk menetapkan versi platform secara terpisah dari atribut android:compileSdkVersion dalam plugin library eksperimental.