افزونه اندروید برای Gradle، نسخه ۱.۵.۰ (نوامبر ۲۰۱۵)

وابستگی‌ها:
حداقل نسخه نسخه پیش‌فرض یادداشت‌ها
گرادل ۲.۲.۱ ۲.۲.۱ برای کسب اطلاعات بیشتر، به به‌روزرسانی Gradle مراجعه کنید.
ابزارهای ساخت SDK ۲۱.۱.۱ ۲۱.۱.۱ ابزارهای ساخت SDK را نصب یا پیکربندی کنید .
نکات عمومی:
  • افزونه Data Binding را در افزونه اندروید برای Gradle ادغام کرد. برای فعال کردن آن، کد زیر را به هر فایل build.gradle مربوط به هر پروژه که از این افزونه استفاده می‌کند، اضافه کنید:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • یک API Transform جدید اضافه شده است تا به افزونه‌های شخص ثالث اجازه دهد فایل‌های کامپایل شده .class را قبل از تبدیل به فایل‌های .dex دستکاری کنند. API Transform تزریق دستکاری‌های کلاس سفارشی را ساده می‌کند و در عین حال انعطاف‌پذیری بیشتری در مورد آنچه می‌توانید دستکاری کنید، ارائه می‌دهد. برای وارد کردن یک transform به یک build، یک کلاس جدید که یکی از رابط‌های Transform پیاده‌سازی می‌کند، ایجاد کنید و آن را با android.registerTransform(theTransform) یا android.registerTransform(theTransform, dependencies) ثبت کنید. نیازی به اتصال وظایف به یکدیگر نیست. به موارد زیر در مورد API Transform توجه کنید:
    • یک تبدیل می‌تواند به یک یا چند مورد از موارد زیر اعمال شود: پروژه فعلی، زیرپروژه‌ها و کتابخانه‌های خارجی.
    • یک تبدیل باید به صورت جهانی ثبت شود، که آنها را برای همه انواع اعمال می‌کند.
    • پردازش کد داخلی، از طریق کتابخانه پوشش کد جاوا (JaCoCo)، ProGuard و MultiDex، اکنون از Transform API استفاده می‌کند. با این حال، کیت کامپایلر اندروید جاوا (Jack) از این API استفاده نمی‌کند: فقط مسیر کد javac/dx از آن استفاده می‌کند.
    • Gradle تبدیل‌ها را به این ترتیب اجرا می‌کند: JaCoCo، افزونه‌های شخص ثالث، ProGuard. ترتیب اجرا برای افزونه‌های شخص ثالث با ترتیبی که تبدیل‌ها توسط افزونه‌های شخص ثالث اضافه می‌شوند، مطابقت دارد؛ توسعه‌دهندگان افزونه‌های شخص ثالث نمی‌توانند ترتیب اجرای تبدیل‌ها را از طریق API کنترل کنند.
  • دریافت‌کننده‌ی dex از کلاس ApplicationVariant منسوخ شد. دیگر نمی‌توانید از طریق API نوع داده به وظیفه‌ی Dex دسترسی داشته باشید زیرا اکنون از طریق یک تبدیل انجام می‌شود. در حال حاضر هیچ جایگزینی برای کنترل فرآیند dex وجود ندارد.
  • پشتیبانی افزایشی ثابت برای دارایی‌ها.
  • پشتیبانی از MultiDex با در دسترس قرار دادن آن برای پروژه‌های آزمایشی بهبود یافته است، و آزمایش‌ها اکنون به طور خودکار وابستگی com.android.support:multidex-instrumentation را دارند.
  • قابلیتی اضافه شده است که به طور صحیح یک نسخه Gradle را با شکست مواجه می‌کند و علت خطای اصلی را گزارش می‌دهد، زمانی که نسخه Gradle وظایف ناهمزمان را فراخوانی می‌کند و در فرآیند worker با شکست مواجه می‌شود.
  • پشتیبانی برای پیکربندی یک رابط دودویی برنامه (ABI) خاص در نسخه‌هایی که حاوی چندین ABI هستند، اضافه شد.
  • پشتیبانی از فهرست جدا شده با کاما از شماره سریال دستگاه برای متغیر محیطی ANDROID_SERIAL هنگام نصب یا اجرای تست‌ها اضافه شد.
  • مشکل نصب ناموفق در دستگاه‌های دارای اندروید ۵.۰ (سطح API ۲۰) و بالاتر، زمانی که نام APK حاوی فاصله بود، برطرف شد.
  • مشکلات مختلف مربوط به خروجی خطای ابزار بسته‌بندی دارایی‌های اندروید (AAPT) برطرف شد.
  • پشتیبانی از ابزار افزایشی JaCoCo برای ساخت‌های افزایشی سریع‌تر اضافه شد. افزونه اندروید برای Gradle اکنون مستقیماً ابزار JaCoCo را فراخوانی می‌کند. برای مجبور کردن نسخه جدیدتر ابزار JaCoCo، باید آن را به عنوان یک وابستگی اسکریپت ساخت اضافه کنید.
  • پشتیبانی از JaCoCo برطرف شد، به طوری که فایل‌هایی که کلاس نیستند را نادیده می‌گیرد.
  • پشتیبانی از vector drawable برای تولید PNG در زمان ساخت برای سازگاری با نسخه‌های قبلی اضافه شده است. افزونه اندروید برای Gradle، برای هر vector drawable موجود در دایرکتوری منابع که نسخه API را مشخص نمی‌کند یا ویژگی android:minSdkVersion آن 20 یا کمتر در عنصر <uses-sdk> در مانیفست برنامه است، PNG تولید می‌کند. می‌توانید چگالی PNG را با استفاده از ویژگی generatedDensities در بخش‌های defaultConfig یا productFlavor از فایل build.gradle تنظیم کنید.
  • اشتراک‌گذاری فایل android.jar قابل تقلید که افزونه فقط یک بار تولید می‌کند و برای تست واحد از آن استفاده می‌کند، اضافه شد. چندین ماژول، مانند app و lib ، اکنون آن را به اشتراک می‌گذارند. برای تولید مجدد آن، $rootDir/build حذف کنید.
  • پردازش منابع جاوا به جای بسته‌بندی APK، قبل از وظایف مبهم‌سازی انجام شود. این تغییر به وظایف مبهم‌سازی اجازه می‌دهد تا پس از مبهم‌سازی بسته‌ها، منابع جاوا را تطبیق دهند.
  • مشکل استفاده از کد رابط بومی جاوا (JNI) در افزونه کتابخانه آزمایشی برطرف شد.
  • قابلیت تنظیم نسخه پلتفرم به صورت جداگانه از ویژگی android:compileSdkVersion در افزونه کتابخانه آزمایشی اضافه شد.