افزایه Android برای Gradle، نسخه اصلاح‌شده ۱.۵.۰ (نوامبر ۲۰۱۵)

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