Плагин 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, который включает улучшения производительности и новые функции, а также устраняет уязвимость безопасности, которая позволяет локально повысить привилегии при использовании демона Gradle. Дополнительные сведения см. в примечаниях к выпуску Gradle .
  • Используя externalNativeBuild {} DSL, Gradle теперь позволяет вам ссылаться на собственные источники и компилировать собственные библиотеки с помощью CMake или ndk-build. После создания собственных библиотек Gradle упаковывает их в APK. Чтобы узнать больше об использовании CMake и ndk-build с Gradle, прочтите статью «Добавление кода C и C++ в ваш проект» .
  • Когда вы запускаете сборку из командной строки , Gradle теперь пытается автоматически загрузить все недостающие компоненты SDK или обновления, от которых зависит ваш проект. Чтобы узнать больше, прочитайте Автоматическую загрузку отсутствующих пакетов с помощью Gradle .
  • Новая экспериментальная функция кэширования позволяет Gradle ускорить время сборки за счет предварительного индексирования, хранения и повторного использования предварительно индексированных версий ваших библиотек. Чтобы узнать больше об использовании этой экспериментальной функции, прочтите руководство по сборке кэша .
  • Повышает производительность сборки за счет применения нового конвейера упаковки по умолчанию, который обрабатывает сжатие, подписание и выравнивание по zip-архиву в одной задаче. Вы можете вернуться к использованию старых инструментов упаковки, добавив android.useOldPackaging=true в файл gradle.properties . При использовании нового инструмента упаковки задача zipalignDebug недоступна. Однако вы можете создать его самостоятельно, вызвав метод createZipAlignTask(String taskName, File inputFile, File outputFile) .
  • Для подписи APK теперь используется схема подписи APK v2 в дополнение к традиционной подписи JAR. Все платформы Android принимают полученные APK. Любое изменение этих APK-файлов после подписания делает недействительными их подписи версии 2 и предотвращает установку на устройство. Чтобы отключить эту функцию, добавьте следующее в файл build.gradle на уровне модуля:

    классный

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

    Котлин

    android {
      ...
      signingConfigs {
        create("config") {
          ...
          v2SigningEnabled = false
        }
      }
    }
          
  • Для мультидексных сборок теперь вы можете использовать правила ProGuard, чтобы определить, какие классы Gradle следует скомпилировать в основной файл DEX вашего приложения. Поскольку система Android при запуске приложения сначала загружает основной файл DEX, вы можете установить приоритет определенных классов при запуске, скомпилировав их в основной файл DEX. После создания файла конфигурации ProGuard специально для вашего основного файла DEX передайте путь к файлу конфигурации в Gradle с помощью buildTypes.multiDexKeepProguard . Использование этого DSL отличается от использования buildTypes.proguardFiles , который предоставляет общие правила ProGuard для вашего приложения и не указывает классы для основного файла DEX.
  • Добавляет поддержку флага android:extractNativeLibs , который может уменьшить размер вашего приложения при его установке на устройство. Когда вы устанавливаете для этого флага значение false в элементе <application> манифеста вашего приложения, Gradle упаковывает несжатые и выровненные версии ваших собственных библиотек с вашим APK. Это не позволяет PackageManager копировать ваши собственные библиотеки из APK в файловую систему устройства во время установки, а дополнительным преимуществом является уменьшение размера разностных обновлений вашего приложения.
  • Теперь вы можете указать versionNameSuffix и applicationIdSuffix для разновидностей продукта. ( Выпуск 59614 )
Изменения:
  • getDefaultProguardFile теперь возвращает файлы ProGuard по умолчанию, которые предоставляет плагин Android для Gradle, и больше не использует файлы из Android SDK.
  • Улучшена производительность и возможности компилятора Jack:
    • Джек теперь поддерживает тестовое покрытие Jacoco при установке для testCoverageEnabled значения true .
    • Улучшена поддержка процессоров аннотаций. Обработчики аннотаций в вашем пути к классам, такие как любые зависимости 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 ГБ, Jack теперь работает в том же процессе, что и Gradle. Чтобы настроить размер кучи демона, добавьте в файл gradle.properties следующее:

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