Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android Gradle Eklentisi 2.2.0 (Eylül 2016)
- Bağımlılıklar:
|
Minimum sürüm |
Varsayılan sürüm |
Notlar |
Gradle |
2.14.1 |
2.14.1 |
Daha fazla bilgi edinmek için Gradle'ı güncelleme başlıklı makaleyi inceleyin. |
SDK Derleme Araçları |
23.0.2 |
23.0.2 |
SDK derleme araçlarını yükleyin veya yapılandırın. |
- Yeni:
-
- Gradle 2.14.1 kullanılır. Bu sürümde performans iyileştirmeleri ve yeni özellikler yer alır. Ayrıca Gradle daemon kullanılırken yerel ayrıcalık yükseltmesine izin veren bir güvenlik açığı düzeltilir. Daha fazla
bilgi için
Gradle sürüm notlarını inceleyin.
- Gradle,
externalNativeBuild {}
DSL'yi kullanarak artık yerel kaynaklarınıza bağlantı oluşturmanıza ve CMake veya ndk-build kullanarak yerel kitaplıkları derlemenize olanak tanıyor. Yerel kitaplıklarınızı oluşturduktan sonra Gradle bunları APK'nize paketler. CMake ve ndk-build'i Gradle ile kullanma hakkında daha fazla bilgi edinmek için Projenize C ve C++ Kodu Ekleme başlıklı makaleyi inceleyin.
- Komut satırından derleme çalıştırdığınızda Gradle artık projenizin bağlı olduğu eksik SDK bileşenlerini veya güncellemeleri otomatik olarak indirmeye çalışır.
Daha fazla bilgi edinmek için Gradle ile eksik paketleri otomatik olarak indirme başlıklı makaleyi inceleyin.
- Yeni bir deneysel önbelleğe alma özelliği, Gradle'ın kitaplıklarınızın önceden dexlenmiş sürümlerini önceden dexleyerek, depolayarak ve yeniden kullanarak derleme sürelerini hızlandırmasına olanak tanır. Bu deneysel özelliği kullanma hakkında daha fazla bilgi edinmek için Derleme Önbelleği kılavuzunu inceleyin.
- Sıkıştırma, imzalama ve zipaligning işlemlerini tek bir görevde gerçekleştiren yeni bir varsayılan paketleme işlem hattı kullanılarak derleme performansı iyileştirilir.
android.useOldPackaging=true
dosyanıza gradle.properties
ekleyerek eski paketleme araçlarını kullanmaya geri dönebilirsiniz. Yeni paketleme aracı kullanılırken zipalignDebug
görevi kullanılamaz. Ancak,
createZipAlignTask(String taskName, File inputFile, File
outputFile)
yöntemini çağırarak kendiniz oluşturabilirsiniz.
- APK imzalama artık geleneksel JAR imzalamaya ek olarak APK İmza Şeması v2'yi kullanıyor. Tüm Android platformları, ortaya çıkan APK'ları kabul eder. İmzalama işleminden sonra bu APK'larda yapılan değişiklikler, v2 imzalarını geçersiz kılar ve cihazlara yüklenmelerini engeller. Bu özelliği devre dışı bırakmak için
modül düzeyindeki
build.gradle
dosyanıza aşağıdakileri ekleyin:
Groovy
android {
...
signingConfigs {
config {
...
v2SigningEnabled false
}
}
}
Kotlin
android {
...
signingConfigs {
create("config") {
...
v2SigningEnabled = false
}
}
}
- Çoklu DEX derlemelerinde artık Gradle'ın hangi sınıfları uygulamanızın main DEX dosyasına derleyeceğini belirlemek için ProGuard kurallarını kullanabilirsiniz. Android sistemi, uygulamanızı başlatırken önce ana DEX dosyasını yüklediğinden, belirli sınıfları ana DEX dosyasına derleyerek başlangıçta öncelik verebilirsiniz. Ana DEX dosyanız için özel olarak bir ProGuard yapılandırma dosyası oluşturduktan sonra, yapılandırma dosyasının yolunu
buildTypes.multiDexKeepProguard
kullanarak Gradle'a iletin. Bu DSL'nin kullanımı, uygulamanız için genel ProGuard kuralları sağlayan ve ana DEX dosyası için sınıfları belirtmeyen
buildTypes.proguardFiles
kullanımından farklıdır.
- Uygulamanızı bir cihaza yüklediğinizde boyutunu küçültebilen
android:extractNativeLibs
işaretinin desteği eklendi. Uygulama manifestinizin <application>
öğesinde bu işareti false
olarak ayarladığınızda Gradle, yerel kitaplıklarınızın sıkıştırılmamış ve hizalanmış sürümlerini APK'nızla birlikte paketler. Bu, PackageManager
'ın kurulum sırasında yerel kitaplıklarınızı APK'dan cihazın dosya sistemine kopyalamasını önler ve uygulamanızın delta güncellemelerini daha küçük hale getirmenin ek avantajını sunar.
- Artık ürün aromaları için
versionNameSuffix
ve
applicationIdSuffix
özelliklerini belirtebilirsiniz. (59614 numaralı sorun)
-
Değişiklikler:
-
-
getDefaultProguardFile
artık Gradle için Android eklentisinin sağladığı varsayılan ProGuard dosyalarını döndürüyor ve Android SDK'daki dosyaları kullanmıyor.
- Jack derleyici performansında ve özelliklerinde iyileştirmeler:
- Jack artık
testCoverageEnabled
, true
olarak ayarlandığında Jacoco test kapsamını destekliyor.
- Açıklama işlemcileri için destek iyileştirildi. Sınıf yolunuzdaki ek açıklama işlemcileri (ör.
compile
bağımlılıkları) derlemenize otomatik olarak uygulanır. Ayrıca, derlemenizde bir ek açıklama işlemcisi belirtebilir ve modül düzeyindeki build.gradle
dosyanızda
javaCompileOptions.annotationProcessorOptions {}
DSL'sini kullanarak bağımsız değişkenler iletebilirsiniz:
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"))
}
}
}
}
Derleme sırasında bir ek açıklama işleme birimi uygulamak ancak bunu APK'nıza dahil etmek istemiyorsanız annotationProcessor
bağımlılık kapsamını kullanın:
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
}
Ayarlayabileceğiniz parametrelerin listesi için komut satırından aşağıdakileri çalıştırın:
java -jar /build-tools/jack.jar --help-properties
- Varsayılan olarak, Gradle daemon'ın yığın boyutu en az 1, 5 GB ise Jack artık Gradle ile aynı süreçte çalışır. Daemon yığın boyutunu ayarlamak için
gradle.properties
dosyanıza aşağıdakileri ekleyin:
# This sets the daemon heap size to 1.5GB.
org.gradle.jvmargs=-Xmx1536M
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-30 UTC.
[null,null,["Son güncelleme tarihi: 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"]]