افزونه اندروید Gradle نسخه ۲.۲.۰ (سپتامبر ۲۰۱۶)
- وابستگیها:
- جدید:
- از Gradle 2.14.1 استفاده میکند که شامل بهبودهای عملکرد و ویژگیهای جدید است و یک آسیبپذیری امنیتی را که امکان افزایش امتیاز محلی را هنگام استفاده از سرویس Gradle فراهم میکند، برطرف میکند. برای جزئیات بیشتر، به یادداشتهای انتشار Gradle مراجعه کنید.
-  با استفاده از externalNativeBuild {}DSL، Gradle اکنون به شما امکان میدهد تا به منابع بومی خود پیوند دهید و کتابخانههای بومی را با استفاده از CMake یا ndk-build کامپایل کنید. پس از ساخت کتابخانههای بومی، Gradle آنها را در APK شما بستهبندی میکند. برای کسب اطلاعات بیشتر در مورد استفاده از CMake و ndk-build با Gradle، بخش «افزودن کد C و C++ به پروژه خود» را مطالعه کنید.
- وقتی از خط فرمان یک نسخه را میسازید ، Gradle اکنون سعی میکند هر مؤلفه یا بهروزرسانی SDK مفقود شدهای را که پروژه شما به آن وابسته است، بهطور خودکار دانلود کند. برای کسب اطلاعات بیشتر، دانلود خودکار بستههای مفقود شده با Gradle را مطالعه کنید.
- یک ویژگی جدید ذخیرهسازی آزمایشی به Gradle اجازه میدهد تا با پیشدکس کردن، ذخیرهسازی و استفاده مجدد از نسخههای پیشدکسشده کتابخانههای شما، زمان ساخت را سرعت بخشد. برای کسب اطلاعات بیشتر در مورد استفاده از این ویژگی آزمایشی، راهنمای Build Cache را مطالعه کنید.
-  با اتخاذ یک خط لوله بستهبندی پیشفرض جدید که فشردهسازی، امضا و زیپلاین کردن را در یک وظیفه مدیریت میکند، عملکرد ساخت را بهبود میبخشد. میتوانید با اضافه کردن android.useOldPackaging=trueبه فایلgradle.propertiesخود، به استفاده از ابزارهای بستهبندی قدیمیتر برگردید. هنگام استفاده از ابزار بستهبندی جدید، وظیفهzipalignDebugدر دسترس نیست. با این حال، میتوانید با فراخوانی متدcreateZipAlignTask(String taskName, File inputFile, File outputFile)خودتان یکی ایجاد کنید.
-  امضای APK اکنون علاوه بر امضای سنتی JAR، از طرح امضای APK نسخه ۲ نیز استفاده میکند. همه پلتفرمهای اندروید APKهای حاصل را میپذیرند. هرگونه تغییر در این APKها پس از امضا، امضای نسخه ۲ آنها را باطل میکند و از نصب روی دستگاه جلوگیری میکند. برای غیرفعال کردن این ویژگی، موارد زیر را به فایل build.gradleدر سطح ماژول خود اضافه کنید:گروویandroid { ... signingConfigs { config { ... v2SigningEnabled false } } } کاتلینandroid { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } } 
-  برای ساختهای چندبعدی (multidex)، اکنون میتوانید از قوانین ProGuard برای تعیین اینکه Gradle کدام کلاسها را باید در فایل DEX اصلی برنامه شما کامپایل کند، استفاده کنید. از آنجا که سیستم اندروید هنگام شروع برنامه، ابتدا فایل DEX اصلی را بارگذاری میکند، میتوانید با کامپایل کردن کلاسهای خاص در هنگام راهاندازی، آنها را در فایل DEX اصلی اولویتبندی کنید. پس از ایجاد یک فایل پیکربندی ProGuard به طور خاص برای فایل DEX اصلی خود، مسیر فایل پیکربندی را با استفاده از buildTypes.multiDexKeepProguardبه Gradle ارسال کنید. استفاده از این DSL با استفاده ازbuildTypes.proguardFilesمتفاوت است، که قوانین کلی ProGuard را برای برنامه شما ارائه میدهد و کلاسهایی را برای فایل DEX اصلی مشخص نمیکند.
-  پشتیبانی از پرچم android:extractNativeLibsرا اضافه میکند، که میتواند هنگام نصب برنامه روی دستگاه، اندازه آن را کاهش دهد. وقتی این پرچم را در عنصر<application>در مانیفست برنامه خود رویfalseتنظیم میکنید، Gradle نسخههای فشرده نشده و همتراز شده کتابخانههای بومی شما را با APK شما بستهبندی میکند. این کار مانع از کپی کردن کتابخانههای بومی شما از APK به سیستم فایل دستگاهPackageManagerدر حین نصب میشود و مزیت دیگری نیز دارد و آن کوچکتر کردن بهروزرسانیهای دلتا برنامه شماست.
-  اکنون میتوانید versionNameSuffixوapplicationIdSuffixرا برای طعمهای محصول مشخص کنید. ( شماره ۵۹۶۱۴ )
 
- تغییرات:
-  getDefaultProguardFileاکنون فایلهای پیشفرض ProGuard را که افزونه اندروید برای Gradle ارائه میدهد، برمیگرداند و دیگر از فایلهای موجود در Android SDK استفاده نمیکند.
-  بهبود عملکرد و ویژگیهای کامپایلر جک:-  جک اکنون از پوشش تست Jacoco هنگام تنظیم testCoverageEnabledرویtrueپشتیبانی میکند.
-  پشتیبانی بهبود یافته برای پردازندههای حاشیهنویسی. پردازندههای حاشیهنویسی در classpath شما، مانند هرگونه وابستگی 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 } 
-  به طور پیشفرض، اگر اندازه هیپ سرویس Gradle حداقل ۱.۵ گیگابایت باشد، Jack اکنون در همان فرآیند Gradle اجرا میشود. برای تنظیم اندازه هیپ سرویس، موارد زیر را به فایل gradle.propertiesخود اضافه کنید:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M 
 برای مشاهده لیستی از پارامترهایی که میتوانید تنظیم کنید، دستور زیر را از خط فرمان اجرا کنید: java -jar /build-tools/jack.jar --help-properties 
-  جک اکنون از پوشش تست Jacoco هنگام تنظیم 
 
-  
| حداقل نسخه | نسخه پیشفرض | یادداشتها | |
|---|---|---|---|
| گرادل | ۲.۱۴.۱ | ۲.۱۴.۱ | برای کسب اطلاعات بیشتر، به بهروزرسانی Gradle مراجعه کنید. | 
| ابزارهای ساخت SDK | ۲۳.۰.۲ | ۲۳.۰.۲ | ابزارهای ساخت SDK را نصب یا پیکربندی کنید . | 
