افزونه اندروید برای Gradle، ویرایش 1.5.0 (نوامبر 2015)

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