Плагин Android Gradle 2.2.0 (сентябрь 2016 г.)
- Зависимости:
- Новинка!
-
- Используется Gradle 2.14.1, в котором улучшена производительность, добавлены новые функции и устранена уязвимость, позволяющая повысить привилегии при использовании демона Gradle. Подробнее см. примечания к выпуску Gradle.
- С помощью
externalNativeBuild {}DSL Gradle теперь позволяет связывать источники C/C++ и компилировать библиотеки C/C++ с помощью CMake или ndk-build. После сборки библиотек C/C++ 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 версии 2 в дополнение к стандартной подписи JAR. Все платформы Android принимают полученные APK-файлы. Любые изменения в этих APK-файлах после подписания делают недействительными их подписи версии 2 и не позволяют установить их на устройство. Чтобы отключить эту функцию, добавьте в файл
build.gradleна уровне модуля следующий код:Яркий
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- При сборке с поддержкой нескольких файлов DEX теперь можно использовать правила ProGuard, чтобы определить, какие классы Gradle должен скомпилировать в основной файл DEX приложения. Поскольку при запуске приложения система Android сначала загружает основной DEX-файл, вы можете задать приоритет для определенных классов, скомпилировав их в основной DEX-файл. Создав файл конфигурации ProGuard специально для основного файла DEX, передайте путь к нему в Gradle с помощью
buildTypes.multiDexKeepProguard. Использование этого DSL отличается от использованияbuildTypes.proguardFiles, которое предоставляет общие правила ProGuard для вашего приложения и не указывает классы для основного файла DEX. - Добавлена поддержка флага
android:extractNativeLibs, который позволяет уменьшить размер приложения при установке на устройство. Если вы зададите для этого флага значениеfalseв элементе<application>манифеста приложения, Gradle упакует в APK-файл несжатые и выровненные версии библиотек C/C++. Это предотвращает копирование библиотек C/C++ из APK в файловую систему устройства во время установки и позволяет уменьшить размер дельта-обновлений приложения.PackageManager - Теперь для вкусов товаров можно указывать атрибуты
"вкус"
versionNameSuffixи "вкус"applicationIdSuffix. (ошибка 59614)
- Изменения:
-
-
getDefaultProguardFileтеперь возвращает файлы ProGuard по умолчанию, которые предоставляет плагин Android для Gradle, и больше не использует файлы из Android SDK. - Улучшения в компиляторе Jack:
- Теперь Jack поддерживает покрытие тестов Jacoco при установке значения
testCoverageEnabledвtrue. - Улучшена поддержка процессоров аннотаций. Аннотации, указанные в classpath, например в зависимостях
compile, автоматически применяются к сборке. Вы также можете указать процессор аннотаций в сборке и передать аргументы с помощью DSLjavaCompileOptions.annotationProcessorOptions {}в файлеbuild.gradleна уровне модуля:Яркий
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
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 }
Kotlin
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 }
- По умолчанию, если размер кучи демона Gradle составляет не менее 1,5 ГБ, Jack выполняется в том же процессе, что и Gradle. Чтобы изменить размер кучи демона, добавьте в файл
gradle.propertiesследующий код:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
Чтобы посмотреть список параметров, которые можно задать, выполните в командной строке следующую команду:
java -jar /build-tools/jack.jar --help-properties
- Теперь Jack поддерживает покрытие тестов Jacoco при установке значения
-
| Минимальная версия | Версия по умолчанию | Примечания | |
|---|---|---|---|
| Gradle | 2.14.1 | 2.14.1 | Подробнее о том, как обновить Gradle… |
| Инструменты сборки SDK | 23.0.2 | 23.0.2 | Установите или настройте инструменты сборки SDK. |