پلاگین 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
-
حداقل نسخه | نسخه پیش فرض | یادداشت ها | |
---|---|---|---|
گریدل | 2.14.1 | 2.14.1 | برای کسب اطلاعات بیشتر، به روز رسانی Gradle را ببینید. |
ابزارهای ساخت SDK | 23.0.2 | 23.0.2 | ابزارهای ساخت SDK را نصب یا پیکربندی کنید . |