پلاگین Android Gradle 2.2.0 (سپتامبر 2016)

وابستگی ها:
حداقل نسخه نسخه پیش فرض یادداشت ها
گریدل 2.14.1 2.14.1 برای کسب اطلاعات بیشتر، به روز رسانی Gradle را ببینید.
ابزارهای ساخت SDK 23.0.2 23.0.2 ابزارهای ساخت SDK را نصب یا پیکربندی کنید .
جدید:
  • از Gradle 2.14.1 استفاده می‌کند که شامل بهبود عملکرد و ویژگی‌های جدید است، و یک آسیب‌پذیری امنیتی را برطرف می‌کند که اجازه می‌دهد در هنگام استفاده از Daemon Gradle، امتیاز محلی افزایش یابد. برای جزئیات بیشتر، به یادداشت‌های انتشار Gradle مراجعه کنید.
  • با استفاده از externalNativeBuild {} DSL، Gradle اکنون به شما امکان می دهد به منابع بومی خود پیوند دهید و کتابخانه های بومی را با استفاده از CMake یا ndk-build کامپایل کنید. پس از ساخت کتابخانه های بومی شما، Gradle آنها را در APK شما بسته بندی می کند. برای کسب اطلاعات بیشتر در مورد استفاده از CMake و ndk-build با Gradle، کدهای C و C++ را به پروژه خود اضافه کنید .
  • وقتی یک بیلد را از خط فرمان اجرا می‌کنید ، Gradle اکنون سعی می‌کند هر مؤلفه یا به‌روزرسانی گمشده SDK را که پروژه شما به آن وابسته است، به‌طور خودکار دانلود کند. برای کسب اطلاعات بیشتر، دانلود خودکار بسته‌های گمشده با Gradle را بخوانید.
  • یک ویژگی جدید ذخیره‌سازی آزمایشی به Gradle این امکان را می‌دهد تا با پیش‌دکس کردن، ذخیره‌سازی و استفاده مجدد از نسخه‌های از پیش dex شده کتابخانه‌های شما، زمان‌های ساخت را افزایش دهد. برای کسب اطلاعات بیشتر در مورد استفاده از این ویژگی آزمایشی، راهنمای ساخت کش را بخوانید.
  • عملکرد ساخت را با اتخاذ یک خط لوله بسته بندی پیش فرض جدید بهبود می بخشد که زیپ، امضا و زیپالاین را در یک کار مدیریت می کند. می توانید با افزودن android.useOldPackaging=true به فایل gradle.properties خود، به استفاده از ابزارهای بسته بندی قدیمی تر برگردید. هنگام استفاده از ابزار بسته بندی جدید، وظیفه zipalignDebug در دسترس نیست. با این حال، می‌توانید خودتان با فراخوانی متد createZipAlignTask(String taskName, File inputFile, File outputFile) یکی ایجاد کنید.
  • امضای APK اکنون از APK Signature Scheme v2 علاوه بر امضای سنتی JAR استفاده می‌کند. همه پلتفرم‌های اندروید فایل‌های APK حاصل را می‌پذیرند. هر گونه تغییر در این APK ها پس از امضا، امضای نسخه 2 آنها را باطل می کند و از نصب بر روی دستگاه جلوگیری می کند. برای غیرفعال کردن این ویژگی، موارد زیر را به فایل build.gradle سطح ماژول خود اضافه کنید:

    شیار

    android {
      ...
      signingConfigs {
        config {
          ...
          v2SigningEnabled false
        }
      }
    }
          

    کاتلین

    android {
      ...
      signingConfigs {
        create("config") {
          ...
          v2SigningEnabled = false
        }
      }
    }
          
  • برای ساخت های مولتی دکس، اکنون می توانید از قوانین ProGuard استفاده کنید تا تعیین کنید که Gradle کدام کلاس ها را در فایل اصلی DEX برنامه شما کامپایل کند. از آنجایی که سیستم اندروید هنگام راه‌اندازی برنامه، ابتدا فایل اصلی DEX را بارگیری می‌کند، می‌توانید کلاس‌های خاصی را در هنگام راه‌اندازی با کامپایل کردن آنها در فایل اصلی DEX اولویت‌بندی کنید. پس از ایجاد یک فایل پیکربندی ProGuard به طور خاص برای فایل اصلی DEX، مسیر فایل پیکربندی را با استفاده از buildTypes.multiDexKeepProguard به Gradle منتقل کنید. استفاده از این DSL با استفاده از buildTypes.proguardFiles متفاوت است، که قوانین عمومی ProGuard را برای برنامه شما ارائه می‌کند و کلاس‌هایی را برای فایل اصلی DEX مشخص نمی‌کند.
  • پشتیبانی از پرچم android:extractNativeLibs را اضافه می کند، که می تواند اندازه برنامه شما را هنگام نصب آن بر روی دستگاه کاهش دهد. وقتی این پرچم را در عنصر <application> در مانیفست برنامه خود روی false تنظیم می کنید، Gradle نسخه های فشرده نشده و تراز شده کتابخانه های بومی شما را با APK شما بسته بندی می کند. این کار از PackageManager از کپی کردن کتابخانه‌های بومی شما از APK در سیستم فایل دستگاه در حین نصب جلوگیری می‌کند و این مزیت را در کوچک‌تر کردن به‌روزرسانی‌های دلتا برنامه شما دارد.
  • اکنون می توانید versionNameSuffix و applicationIdSuffix برای طعم های محصول مشخص کنید. ( مسأله 59614 )
تغییرات:
  • getDefaultProguardFile اکنون فایل‌های ProGuard پیش‌فرض را که افزونه اندروید برای Gradle ارائه می‌کند، برمی‌گرداند و دیگر از آن‌هایی که در Android SDK هستند استفاده نمی‌کند.
  • بهبود عملکرد و ویژگی های کامپایلر جک:
    • جک اکنون هنگام تنظیم testCoverageEnabled روی true از پوشش آزمایشی Jacoco پشتیبانی می کند.
    • پشتیبانی بهبود یافته از پردازنده های حاشیه نویسی. پردازشگرهای حاشیه نویسی در مسیر کلاس شما، مانند هر وابستگی 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
      }
          
    • برای لیستی از پارامترهایی که می توانید تنظیم کنید، موارد زیر را از خط فرمان اجرا کنید:

      java -jar /build-tools/jack.jar --help-properties
      

    • به طور پیش فرض، اگر اندازه هیپ دیمون Gradle حداقل 1.5 گیگابایت باشد، جک اکنون در همان فرآیند Gradle اجرا می شود. برای تنظیم اندازه هیپ دیمون، موارد زیر را به فایل gradle.properties خود اضافه کنید:

      # This sets the daemon heap size to 1.5GB.
      org.gradle.jvmargs=-Xmx1536M