با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
پلاگین Android Gradle 2.2.0 (سپتامبر 2016)
- وابستگی ها:
- جدید:
- از Gradle 2.14.1 استفاده میکند که شامل بهبود عملکرد و ویژگیهای جدید است، و یک آسیبپذیری امنیتی را برطرف میکند که اجازه میدهد در هنگام استفاده از Daemon Gradle، امتیاز محلی افزایش یابد. برای جزئیات بیشتر، به یادداشتهای انتشار Gradle مراجعه کنید.
- با استفاده از
externalNativeBuild {}
DSL، Gradle اکنون به شما امکان می دهد به منابع بومی خود پیوند دهید و کتابخانه های بومی را با استفاده از CMake یا ndk-build کامپایل کنید. پس از ساخت کتابخانه های بومی شما، Gradle آنها را در APK شما بسته بندی می کند. برای کسب اطلاعات بیشتر در مورد استفاده از CMake و ndk-build با Gradle، کدهای C و C++ را به پروژه خود اضافه کنید . - وقتی یک بیلد را از خط فرمان اجرا میکنید ، Gradle اکنون سعی میکند هر مؤلفه یا بهروزرسانی گمشده SDK را که پروژه شما به آن وابسته است، بهطور خودکار دانلود کند. برای کسب اطلاعات بیشتر، دانلود خودکار بستههای گمشده با Gradle را بخوانید.
- یک ویژگی جدید ذخیرهسازی آزمایشی به Gradle این امکان را میدهد تا با پیشدکس کردن، ذخیرهسازی و استفاده مجدد از نسخههای از پیش dex شده کتابخانههای شما، زمانهای ساخت را افزایش دهد. برای کسب اطلاعات بیشتر در مورد استفاده از این ویژگی آزمایشی، راهنمای ساخت کش را بخوانید.
- عملکرد ساخت را با اتخاذ یک خط لوله بسته بندی پیش فرض جدید بهبود می بخشد که زیپ، امضا و زیپالاین را در یک کار مدیریت می کند. می توانید با افزودن
android.useOldPackaging=true
به فایل gradle.properties
خود، به استفاده از ابزارهای بسته بندی قدیمی تر برگردید. هنگام استفاده از ابزار بسته بندی جدید، وظیفه zipalignDebug
در دسترس نیست. با این حال، میتوانید خودتان با فراخوانی متد createZipAlignTask(String taskName, File inputFile, File outputFile)
یکی ایجاد کنید. - امضای APK اکنون از APK Signature Scheme v2 علاوه بر امضای سنتی JAR استفاده میکند. همه پلتفرمهای اندروید فایلهای APK حاصل را میپذیرند. هر گونه تغییر در این APK ها پس از امضا، امضای نسخه 2 آنها را باطل می کند و از نصب بر روی دستگاه جلوگیری می کند. برای غیرفعال کردن این ویژگی، موارد زیر را به فایل
build.gradle
سطح ماژول خود اضافه کنید: شیار
android {
...
signingConfigs {
config {
...
v2SigningEnabled false
}
}
}
کاتلین
android {
...
signingConfigs {
create("config") {
...
v2SigningEnabled = false
}
}
}
- برای ساخت های مولتی دکس، اکنون می توانید از قوانین ProGuard استفاده کنید تا تعیین کنید که Gradle کدام کلاس ها را در فایل اصلی DEX برنامه شما کامپایل کند. از آنجایی که سیستم اندروید هنگام راهاندازی برنامه، ابتدا فایل اصلی DEX را بارگیری میکند، میتوانید کلاسهای خاصی را در هنگام راهاندازی با کامپایل کردن آنها در فایل اصلی DEX اولویتبندی کنید. پس از ایجاد یک فایل پیکربندی ProGuard به طور خاص برای فایل اصلی DEX، مسیر فایل پیکربندی را با استفاده از
buildTypes.multiDexKeepProguard
به Gradle منتقل کنید. استفاده از این DSL با استفاده از buildTypes.proguardFiles
متفاوت است، که قوانین عمومی ProGuard را برای برنامه شما ارائه میکند و کلاسهایی را برای فایل اصلی DEX مشخص نمیکند. - پشتیبانی از پرچم
android:extractNativeLibs
را اضافه می کند، که می تواند اندازه برنامه شما را هنگام نصب آن بر روی دستگاه کاهش دهد. وقتی این پرچم را در عنصر <application>
در مانیفست برنامه خود روی false
تنظیم می کنید، Gradle نسخه های فشرده نشده و تراز شده کتابخانه های بومی شما را با APK شما بسته بندی می کند. این کار از PackageManager
از کپی کردن کتابخانههای بومی شما از APK در سیستم فایل دستگاه در حین نصب جلوگیری میکند و این مزیت را در کوچکتر کردن بهروزرسانیهای دلتا برنامه شما دارد. - اکنون می توانید
versionNameSuffix
و applicationIdSuffix
را برای طعم های محصول مشخص کنید. ( مسأله 59614 )
- تغییرات:
-
getDefaultProguardFile
اکنون فایلهای ProGuard پیشفرض را که افزونه اندروید برای Gradle ارائه میکند، برمیگرداند و دیگر از آنهایی که در Android SDK هستند استفاده نمیکند. - بهبود عملکرد و ویژگی های کامپایلر جک:
- جک اکنون هنگام تنظیم
testCoverageEnabled
روی true
از پوشش آزمایشی Jacoco پشتیبانی می کند. - پشتیبانی بهبود یافته از پردازنده های حاشیه نویسی. پردازشگرهای حاشیه نویسی در مسیر کلاس شما، مانند هر وابستگی
compile
، به طور خودکار در ساخت شما اعمال می شود. همچنین می توانید با استفاده از javaCompileOptions.annotationProcessorOptions {}
DSL در فایل build.gradle
سطح ماژول خود، یک پردازنده حاشیه نویسی را در ساخت خود مشخص کنید و آرگومان ها را ارسال کنید: شیار
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
className 'com.example.MyProcessor'
// Arguments are optional.
arguments = [ foo : 'bar' ]
}
}
}
}
کاتلین
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
className = "com.example.MyProcessor"
// Arguments are optional.
arguments(mapOf(foo to "bar"))
}
}
}
}
اگر میخواهید یک پردازشگر حاشیهنویسی را در زمان کامپایل اعمال کنید اما آن را در APK خود وارد نکنید، از محدوده وابستگی annotationProcessor
استفاده کنید:
شیار
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
}
کاتلین
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
}
برای لیستی از پارامترهایی که می توانید تنظیم کنید، موارد زیر را از خط فرمان اجرا کنید:
java -jar /build-tools/jack.jar --help-properties
- به طور پیش فرض، اگر اندازه هیپ دیمون Gradle حداقل 1.5 گیگابایت باشد، جک اکنون در همان فرآیند Gradle اجرا می شود. برای تنظیم اندازه هیپ دیمون، موارد زیر را به فایل
gradle.properties
خود اضافه کنید:
# This sets the daemon heap size to 1.5GB.
org.gradle.jvmargs=-Xmx1536M
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی."],[],[],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"]]