Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Plugin Android Gradle 2.2.0 (September 2016)
- Dependensi:
|
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. |
- 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 file
gradle.properties
Anda. Saat menggunakan alat pengemasan
baru, tugas zipalignDebug
tidak tersedia. Namun,
Anda dapat membuatnya sendiri dengan memanggil metode
createZipAlignTask(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 penggunaan buildTypes.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 ke false
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
dan
applicationIdSuffix
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 ke true
.
- 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 menggunakan javaCompileOptions.annotationProcessorOptions {}
DSL dalam file build.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
}
Untuk daftar parameter yang dapat Anda tetapkan, jalankan perintah berikut dari
command line:
java -jar /build-tools/jack.jar --help-properties
- 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
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-30 UTC.
[null,null,["Terakhir diperbarui pada 2025-08-30 UTC."],[],[],null,["\u003cbr /\u003e\n\nAndroid Gradle Plugin 2.2.0 (September 2016)\n\nDependencies:\nNew:\n:\n - Uses Gradle 2.14.1, which includes performance improvements and new features, and fixes a security vulnerability that allows local privilege escalation when using the Gradle daemon. For more details, see the [Gradle release notes](https://docs.gradle.org/2.14.1/release-notes).\n - Using the [`externalNativeBuild {}`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ExternalNativeBuild.html) DSL, Gradle now lets you link to your native sources and compile native libraries using CMake or ndk-build. After building your native libraries, Gradle packages them into your APK. To learn more about using CMake and ndk-build with Gradle, read [Add C and C++ Code to Your\n Project](/studio/projects/add-native-code).\n - When you [run a\n build from the command line](/studio/build/building-cmdline), Gradle now attempts to auto-download any missing SDK components or updates that your project depends on. To learn more, read [Auto-download\n missing packages with Gradle](/studio/intro/update#download-with-gradle).\n - A new experimental caching feature lets Gradle speed up build times by pre-dexing, storing, and reusing the pre-dexed versions of your libraries. To learn more about using this experimental feature, read the [Build\n Cache](/studio/build/build-cache) guide.\n - Improves build performance by adopting a new default packaging pipeline which handles zipping, signing, and [zipaligning](/studio/command-line/zipalign) in one task. You can revert to using the older packaging tools by adding `android.useOldPackaging=true` to your `gradle.properties` file. While using the new packaging tool, the `zipalignDebug` task is not available. However, you can create one yourself by calling the `createZipAlignTask(String taskName, File inputFile, File\n outputFile)` method.\n - APK signing now uses [APK Signature Scheme\n v2](/about/versions/nougat/android-7.0#apk_signature_v2) in addition to traditional JAR signing. All Android platforms accept the resulting APKs. Any modification to these APKs after signing invalidates their v2 signatures and prevents installation on a device. To disable this feature, add the following to your module-level `build.gradle` file: \n\n Groovy \n\n ```groovy\n android {\n ...\n signingConfigs {\n config {\n ...\n v2SigningEnabled false\n }\n }\n }\n \n ```\n\n Kotlin \n\n ```kotlin\n android {\n ...\n signingConfigs {\n create(\"config\") {\n ...\n v2SigningEnabled = false\n }\n }\n }\n \n ```\n - For multidex builds, you can now use ProGuard rules to determine which classes Gradle should compile into your app's *main* DEX file. Because the Android system loads the main DEX file first when starting your app, you can prioritize certain classes at startup by compiling them into the main DEX file. After you create a ProGuard configuration file specifically for your main DEX file, pass the configuration file's path to Gradle using [buildTypes.multiDexKeepProguard](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.BuildType.html#com.android.build.gradle.internal.dsl.BuildType:multiDexKeepProguard). Using this DSL is different from using [`buildTypes.proguardFiles`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.BuildType.html#com.android.build.gradle.internal.dsl.BuildType:proguardFiles(java.lang.Object[])), which provides general ProGuard rules for your app and does not specify classes for the main DEX file.\n - Adds support for the `android:extractNativeLibs` flag, which can reduce the size of your app when you install it on a device. When you set this flag to `false` in the [`\u003capplication\u003e`](/guide/topics/manifest/application-element) element of your app manifest, Gradle packages uncompressed and aligned versions of your native libraries with your APK. This prevents [`PackageManager`](/reference/android/content/pm/PackageManager) from copying out your native libraries from the APK to the device's file system during installation and has the added benefit of making delta updates of your app smaller.\n - You can now specify [`versionNameSuffix`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ProductFlavor.html#com.android.build.gradle.internal.dsl.ProductFlavor:versionNameSuffix) and [`applicationIdSuffix`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ProductFlavor.html#com.android.build.gradle.internal.dsl.ProductFlavor:applicationIdSuffix) for product flavors. ([Issue 59614](http://b.android.com/59614))\n\n\nChanges:\n:\n - `getDefaultProguardFile` now returns the default ProGuard files that Android plugin for Gradle provides and no longer uses the ones in the Android SDK.\n - Improved Jack compiler performance and features:\n - Jack now supports Jacoco test coverage when setting [testCoverageEnabled](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.BuildType.html#com.android.build.gradle.internal.dsl.BuildType:testCoverageEnabled) to `true`.\n - Improved support for annotation processors. Annotation processors on your classpath, such as any `compile` dependencies, are automatically applied to your build. You can also specify an annotation processor in your build and pass arguments by using the [`javaCompileOptions.annotationProcessorOptions {}`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.AnnotationProcessorOptions.html) DSL in your module-level `build.gradle` file: \n\n Groovy \n\n ```groovy\n android {\n ...\n defaultConfig {\n ...\n javaCompileOptions {\n annotationProcessorOptions {\n className 'com.example.MyProcessor'\n // Arguments are optional.\n arguments = [ foo : 'bar' ]\n }\n }\n }\n }\n \n ```\n\n Kotlin \n\n ```kotlin\n android {\n ...\n defaultConfig {\n ...\n javaCompileOptions {\n annotationProcessorOptions {\n className = \"com.example.MyProcessor\"\n // Arguments are optional.\n arguments(mapOf(foo to \"bar\"))\n }\n }\n }\n }\n \n ```\n\n\n If you want to apply an annotation processor at compile\n time but not include it in your APK, use the\n `annotationProcessor` dependency scope: \n\n Groovy \n\n ```groovy\n dependencies {\n compile 'com.google.dagger:dagger:2.0'\n annotationProcessor 'com.google.dagger:dagger-compiler:2.0'\n // or use buildVariantAnnotationProcessor to target a specific build variant\n }\n \n ```\n\n Kotlin \n\n ```kotlin\n dependencies {\n implementation(\"com.google.dagger:dagger:2.0\")\n annotationProcessor(\"com.google.dagger:dagger-compiler:2.0\")\n // or use buildVariantAnnotationProcessor to target a specific build variant\n }\n \n ```\n - For a list of parameters you can set, run the following from the command line: \n\n ```\n java -jar /build-tools/jack.jar --help-properties\n ```\n - By default, if the Gradle daemon's heap size is at least 1.5 GB, Jack now runs in the same process as Gradle. To adjust the daemon heap size, add the following to your `gradle.properties` file:\n\n \u003cbr /\u003e\n\n ```\n # This sets the daemon heap size to 1.5GB.\n org.gradle.jvmargs=-Xmx1536M\n ```\n\n \u003cbr /\u003e\n\n\n\u003cbr /\u003e"]]