Android Gradle Plugin 2.2.0 (сентябрь 2016 г.)
- Зависимости:
- Новый:
- Используется Gradle 2.14.1, который включает в себя улучшения производительности и новые функции, а также исправляет уязвимость безопасности, позволяющую локально повышать привилегии при использовании демона Gradle. Для получения более подробной информации см. примечания к выпуску Gradle .
- Используя DSL
externalNativeBuild {}, Gradle теперь позволяет вам связываться с вашими нативными исходными кодами и компилировать нативные библиотеки с помощью CMake или ndk-build. После сборки ваших нативных библиотек Gradle упаковывает их в ваш APK-файл. Чтобы узнать больше об использовании CMake и ndk-build с Gradle, прочитайте статью «Добавление кода C и C++ в ваш проект» . - При запуске сборки из командной строки Gradle теперь пытается автоматически загрузить все отсутствующие компоненты SDK или обновления, от которых зависит ваш проект. Для получения дополнительной информации прочитайте статью «Автоматическая загрузка отсутствующих пакетов с помощью Gradle» .
- Новая экспериментальная функция кэширования позволяет Gradle ускорить время сборки за счет предварительного создания, хранения и повторного использования предварительно созданных версий ваших библиотек. Чтобы узнать больше об использовании этой экспериментальной функции, ознакомьтесь с руководством по кэшированию сборки .
- Улучшена производительность сборки за счет использования нового конвейера упаковки по умолчанию, который обрабатывает архивирование, подписание и выравнивание архива в одной задаче. Вы можете вернуться к использованию старых инструментов упаковки, добавив
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 } } }
Котлин
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. Это предотвращает копирование ваших нативных библиотек из 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' ] } } } }
Котлин
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 }
- По умолчанию, если размер кучи демона 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 при установке
- Теперь
| Минимальная версия | Версия по умолчанию | Примечания | |
|---|---|---|---|
| Грэдл | 2.14.1 | 2.14.1 | Для получения более подробной информации см. раздел «Обновление Gradle» . |
| Инструменты сборки SDK | 23.0.2 | 23.0.2 | Установите или настройте инструменты сборки SDK. |