افزایه Android Gradle 3.2.0 (سپتامبر ۲۰۱۸)
این نسخه افزایه Android به موارد زیر نیاز دارد:
| حداقل نسخه | نسخه پیشفرض | یادداشتها | |
|---|---|---|---|
| Gradle | ۴.۶ | ۴.۶ | برای کسب اطلاعات بیشتر، بهروزرسانی Gradle را ببینید. |
| ابزارهای ساخت کیت توسعه نرمافزار | ۲۸.۰.۳ | ۲۸.۰.۳ | «ابزارهای ساخت کیت توسعه نرمافزار» را نصب یا پیکربندی کنید. |
۳.۲.۱ (اکتبر ۲۰۱۸)
با این بهروزرسانی، دیگر نیازی نیست نسخهای برای «ابزارهای ساخت کیت توسعه نرمافزار» مشخص کنید. افزایه Android Gradle اکنون بهطور پیشفرض از نسخه 28.0.3 استفاده میکند.
ویژگیهای جدید
-
پشتیبانی از ساختن «بستههای برنامه Android»: بسته برنامه قالب بارگذاری جدیدی است که شامل همه کدها و منابع ترجمهشده برنامه شما میشود و تولید و امضای فایل APK را به «فروشگاه Google Play» واگذار میکند. دیگر لازم نیست چندین فایل APK بسازید، امضا کنید، و مدیریت کنید، و کاربران بارگیریهای کوچکتری دریافت میکنند که برای دستگاهشان بهینهسازی شده است. برای کسب اطلاعات بیشتر، درباره Android App Bundles را بخوانید.
-
پشتیبانی از سرعتهای ساخت افزایشی بهبودیافته هنگام استفاده از پردازندههای گزارمان: زبان مدلسازی
AnnotationProcessorOptionsاکنونCommandLineArgumentProviderرا گسترش میدهد، که به شما یا نویسنده پردازنده گزارمان امکان میدهد بااستفاده از گزارمانهای نوع دارایی ساخت افزایشی، برای پردازنده گزارمان آرگومانگذاری کنید. استفاده از این گزارمانها صحت و عملکرد ساختهای پاکسازیشده افزایشی و ذخیرهشده در حافظه نهان را بهبود میبخشد. برای کسب اطلاعات بیشتر، انتقال آرگومانها به پردازشگرهای حاشیهنویسی را بخوانید. -
ابزار انتقال برای AndroidX: هنگام استفاده از افزایه Android Gradle نسخه ۳.۲.۰ با Android نسخه ۳.۲ و بالاتر، میتوانید وابستگیهای محلی و Maven پروژهتان را با انتخاب Refactor (بازسازی) > Migrate to AndroidX (انتقال به AndroidX) از نوار منو به کتابخانههای جدید AndroidX منتقل کنید. استفاده از این ابزار انتقال همچنین پرچمهای زیر را در فایل
gradle.propertiesشما رویtrueتنظیم میکند:-
android.useAndroidX: وقتی رویtrueتنظیم شود، افزایه Android بهجای «کتابخانه پشتیبانی» از کتابخانه AndroidX مناسب استفاده میکند. وقتی این پرچم مشخص نشده باشد، افزایه آن را بهطور پیشفرض رویfalseتنظیم میکند. -
android.enableJetifier: وقتی رویtrueتنظیم شود، افزایه Android بهطور خودکار کتابخانههای طرف سوم موجود را به AndroidX منتقل میکند و با بازنویسی باینریهای آنها از AndroidX استفاده میکند. وقتی این پرچم مشخص نشده باشد، افزایه آن را بهطور پیشفرض رویfalseتنظیم میکند. فقط زمانی میتوانید این پرچم را رویtrueتنظیم کنید کهandroid.useAndroidXنیز رویtrueتنظیم شده باشد، درغیراینصورت خطای ساخت دریافت میکنید.برای کسب اطلاعات بیشتر، نمای کلی AndroidX را بخوانید.
-
-
کوچککننده کد جدید، R8: R8 ابزار جدیدی برای کوچک کردن و مبهمسازی کد است که جایگزین ProGuard میشود. با افزودن موارد زیر به فایل
gradle.propertiesپروژه خود میتوانید استفاده از نسخه پیشنمایش R8 را شروع کنید:android.enableR8 = true
android.enableR8 = true
تغییرات رفتار
-
«جداسازی قند» با D8 اکنون بهطور پیشفرض فعال است.
-
AAPT2 اکنون در مخزن Maven متعلق به Google است. برای استفاده از AAPT2، مطمئن شوید که وابستگی
google()را در فایلbuild.gradleخود دارید، همانطور که در زیر نشان داده شده است:buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
Native multidex اکنون بهطور پیشفرض فعال است. نسخههای قبلی Android وقتی نسخه اشکالزدایی برنامه در دستگاهی با سطح API Android 21 یا بالاتر مستقر میشد، Studio از multidex بومی فعالشده پشتیبانی میکرد. اکنون، چه درحال استقرار در دستگاه باشید و چه درحال ساختن فایل APK برای انتشار، افزایه Android Gradle امکان استفاده از multidex بومی را برای همه واحدهایی که
minSdkVersion=21یا بالاتر را تنظیم کردهاند فراهم میکند. -
اکنون افزایه حداقل نسخه افزایه protobuf (0.8.6)، افزایه Kotlin (1.2.50)، و افزایه Crashlytics (1.25.4) را اعمال میکند.
-
افزایه واحد ویژگی،
com.android.feature، اکنون استفاده از فقط حروف، ارقام، و زیرخط را هنگام مشخص کردن نام واحد اجباری میکند. برای مثال، اگر نام واحد ویژگی شما شامل خط تیره باشد، خطای ساخت دریافت میکنید. این رفتار با رفتار افزایه ویژگی پویای مطابقت دارد.
رفع اشکالها
- JavaCompile اکنون در پروژههای دارای اتصال داده قابل ذخیره در حافظه نهان است. (مشکل شماره ۶۹۲۴۳۰۵۰)
- اجتناب بهتر از کامپایل برای واحدهای کتابخانه با اتصال داده. (مشکل شماره ۷۷۵۳۹۹۳۲)
- اکنون میتوانید configure-on-demand را دوباره فعال کنید اگر آن را در نسخههای قبلی بهدلیل برخی خطاهای ساخت غیرقابلپیشبینی غیرفعال کردهاید. (مشکل شماره ۷۷۹۱۰۷۲۷)