Plugin Android Gradle 2.2.0 (September 2016)
- Dependensi:
- Baru:
-
- Menggunakan Gradle 2.14.1, yang mencakup peningkatan performa dan fitur baru, serta memperbaiki kerentanan keamanan yang memungkinkan eskalasi akses lokal saat menggunakan daemon Gradle. Lihat Catatan rilis Gradle untuk detail selengkapnya.
- Menggunakan DSL
externalNativeBuild {}
, sekarang Gradle memungkinkan Anda menautkan ke sumber native dan mengompilasi library native menggunakan CMake atau ndk-build. Setelah mem-build library native, Gradle akan memaketkannya ke dalam APK. Untuk mempelajari lebih lanjut cara menggunakan CMake dan ndk-build dengan Gradle, baca Menambahkan Kode C dan C++ ke Project Anda. - Jika menjalankan build dari command line, Gradle akan berupaya mendownload otomatis komponen SDK yang hilang atau update yang menjadi dependensi project Anda. Untuk mempelajari lebih lanjut, baca Mendownload otomatis paket yang tidak ditemukan dengan Gradle.
- Fitur caching eksperimental baru memungkinkan Gradle mempercepat waktu build dengan melakukan pre-dexing, menyimpan, dan menggunakan kembali library versi pre-dexed. Untuk mempelajari lebih lanjut cara menggunakan fitur eksperimental ini, baca panduan Cache Build.
- Meningkatkan performa build dengan mengadopsi pipeline pengemasan default baru yang menangani pembuatan zip, penandatanganan, dan zipaligning dalam satu tugas. Anda
dapat kembali ke alat pengemasan lama dengan menambahkan
android.useOldPackaging=true
ke filegradle.properties
Anda. Saat menggunakan alat pengemasan baru, tugaszipalignDebug
tidak tersedia. Namun, Anda dapat membuatnya sendiri dengan memanggil metodecreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - Penandatanganan APK kini menggunakan APK Signature Scheme v2 selain penandatanganan JAR tradisional. Semua platform Android akan menerima
APK yang dihasilkan. Setiap modifikasi pada APK setelah penandatanganan akan menjadikan tanda tangan v2 tidak valid dan mencegah penginstalan pada perangkat. Untuk menonaktifkan fitur ini,
tambahkan kode berikut ke file
build.gradle
level modul:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Untuk build multidex, sekarang Anda dapat menggunakan aturan ProGuard untuk menentukan class
mana yang harus dikompilasi Gradle ke dalam file DEX utama aplikasi Anda. Karena
sistem Android memuat file DEX utama terlebih dahulu saat memulai aplikasi, Anda
dapat memprioritaskan class tertentu selama proses startup dengan mengompilasinya ke dalam file DEX
utama. Setelah membuat file konfigurasi ProGuard khusus untuk file DEX utama, teruskan jalur file konfigurasi ini ke Gradle menggunakan
buildTypes.multiDexKeepProguard
. Penggunaan DSL ini berbeda dengan penggunaanbuildTypes.proguardFiles
, yang menyediakan aturan ProGuard umum untuk aplikasi Anda dan tidak menentukan class untuk file DEX utama. - Menambahkan dukungan untuk tanda
android:extractNativeLibs
, yang dapat mengurangi ukuran aplikasi Anda saat diinstal di perangkat. Jika Anda menetapkan tanda ini kefalse
dalam elemen<application>
manifes aplikasi, Gradle akan memaketkan versi library native yang tidak terkompresi dan telah diselaraskan ke dalam APK. Akibatnya,PackageManager
tidak akan menyalin library native dari APK ke sistem file perangkat selama penginstalan dan memberikan manfaat tambahan berupa ukuran update delta yang lebih kecil untuk aplikasi Anda. - Sekarang Anda dapat menetapkan
versionNameSuffix
danapplicationIdSuffix
untuk ragam produk. (Masalah 59614)
- Perubahan:
-
-
getDefaultProguardFile
sekarang menampilkan file ProGuard default yang disediakan oleh plugin Android untuk Gradle dan tidak lagi menggunakan file ProGuard yang ada di Android SDK. - Peningkatan performa dan fitur kompiler Jack:
- Sekarang Jack mendukung cakupan pengujian Jacoco jika
testCoverageEnabled
ditetapkan ketrue
. - Peningkatan kualitas dukungan untuk pemroses anotasi. Pemroses anotasi di classpath Anda, seperti dependensi
compile
, otomatis diterapkan ke build Anda. Anda juga dapat menentukan pemroses anotasi dalam argumen build dan pass menggunakanjavaCompileOptions.annotationProcessorOptions {}
DSL dalam filebuild.gradle
level modul:Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
Jika ingin menerapkan pemroses anotasi selama proses kompilasi tetapi tidak ingin menyertakannya ke dalam APK, gunakan lingkup dependensi
annotationProcessor
:Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
- Secara default, jika ukuran heap daemon Gradle setidaknya 1,5 GB, Jack akan berjalan dalam proses yang sama dengan Gradle. Untuk menyesuaikan ukuran heap daemon, tambahkan baris berikut ke file
gradle.properties
Anda:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
Untuk daftar parameter yang dapat Anda tetapkan, jalankan perintah berikut dari command line:
java -jar /build-tools/jack.jar --help-properties
- Sekarang Jack mendukung cakupan pengujian Jacoco jika
-
Versi minimum | Versi default | Catatan | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | Untuk mempelajari lebih lanjut, lihat mengupdate Gradle. |
SDK Build Tools | 23.0.2 | 23.0.2 | Instal atau konfigurasi SDK Build Tools. |