Complemento de Android para Gradle 2.2.0 (septiembre de 2016)
- Dependencias:
- Nuevo:
-
- Usa Gradle 2.14.1, que incluye mejoras de rendimiento y funciones nuevas, además de corregir una vulnerabilidad de seguridad que permite la elevación de privilegios local cuando se usa el daemon de Gradle. Para obtener más información, consulta las notas de la versión de Gradle.
- Con el DSL de
externalNativeBuild {}
, Gradle ahora permite vincular a fuentes nativas y compilar bibliotecas nativas usando CMake o ndk-build. Después de compilar las bibliotecas nativas, Gradle las empaqueta en tu APK. Si deseas obtener más información para usar CMake y ndk-build con Gradle, lee Cómo agregar código C y C++ a tu proyecto. - Cuando ejecutas una compilación desde la línea de comandos, Gradle ahora intenta descargar automáticamente los componentes del SDK faltantes o las actualizaciones de las que depende el proyecto. Para obtener más información, consulta Cómo descargar automáticamente los paquetes que faltan con Gradle.
- Una nueva función experimental de almacenamiento en caché permite a Gradle acelerar los tiempos de compilación a través del proceso de pre-dexing, el almacenamiento y la reutilización de las versiones anteriores de las bibliotecas convertidas a DEX. Si quieres obtener más información para usar esta función experimental, consulta la guía sobre Caché de compilación.
- Mejora el rendimiento de compilación, ya que adopta una canalización de empaquetado predeterminada nueva que controla la compresión, la firma y el uso de zipalign en una tarea. Puedes volver a usar las herramientas de empaquetado anteriores agregando
android.useOldPackaging=true
al archivogradle.properties
. Mientras se usa la nueva herramienta de empaquetado, no está disponible la tareazipalignDebug
. Sin embargo, puedes crear una llamando al métodocreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - La firma del APK ahora usa el Esquema de firma de APK v2, además de la de JAR tradicional. Todas las plataformas de Android aceptan los APK resultantes. Cualquier modificación a esos APK después de firmar invalida las firmas v2 y evita la instalación en un dispositivo. Para inhabilitar esta función, agrega lo siguiente al archivo
build.gradle
a nivel del módulo:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Para compilaciones multidex, ahora puedes usar las reglas de ProGuard a fin de determinar qué clases debe compilar Gradle en el archivo DEX principal de la app. Dado que el sistema de Android primero carga el archivo DEX principal cuando se inicia la app, puedes priorizar ciertas clases en el inicio mediante su compilación en ese archivo DEX. Después de crear un archivo de configuración de ProGuard especial para el archivo DEX principal, pasa la ruta de acceso del archivo de configuración a Gradle mediante
buildTypes.multiDexKeepProguard
. El uso de este DSL es diferente del debuildTypes.proguardFiles
, que proporciona reglas generales de ProGuard para la app y no especifica las clases del archivo DEX principal. - Agrega compatibilidad con la marca
android:extractNativeLibs
, que puede reducir el tamaño de la app cuando la instalas en un dispositivo. Cuando estableces esta marca enfalse
en el elemento<application>
del manifiesto de la app, Gradle empaqueta las versiones sin comprimir y alineadas de las bibliotecas nativas con el APK. De esta manera, se evita quePackageManager
copie las bibliotecas nativas del APK en el sistema de archivos del dispositivo durante la instalación y permite realizar actualizaciones delta de la app más pequeñas. - Ahora puedes especificar
versionNameSuffix
yapplicationIdSuffix
para las variantes de producto (Error #59614).
- Cambios:
-
getDefaultProguardFile
ahora muestra los archivos ProGuard predeterminados que proporciona el complemento para Gradle de Android y ya no usa los del SDK de Android.- Rendimiento y funciones mejorados del compilador Jack:
- Jack ahora es compatible con la cobertura de prueba Jacoco cuando se establece
testCoverageEnabled
entrue
. - Se mejoró la compatibilidad para procesadores de anotaciones. Los procesadores de anotaciones de la ruta de clase, como cualquier dependencia de
compile
, se aplican automáticamente a la compilación. También puedes especificar un procesador de anotaciones en tu compilación y pasar argumentos mediante el DSL dejavaCompileOptions.annotationProcessorOptions {}
en el archivobuild.gradle
a nivel del módulo:Groovy
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")) } } } }
Si deseas aplicar un procesador de anotaciones durante el tiempo de compilación, pero no quieres incluirlo en el APK, usa el alcance de la dependencia
annotationProcessor
:Groovy
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 }
- De forma predeterminada, si el tamaño del montón del daemon de Gradle es de al menos 1.5 GB, Jack ahora se ejecutará en el mismo proceso que Gradle. Para ajustar el tamaño del montón de daemon, agrega lo siguiente a tu archivo
gradle.properties
:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
Para obtener una lista de los parámetros que puedes configurar, ejecuta lo siguiente desde la línea de comandos:
java -jar /build-tools/jack.jar --help-properties
- Jack ahora es compatible con la cobertura de prueba Jacoco cuando se establece
Versión mínima | Versión predeterminada | Notas | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | Para obtener más información, consulta cómo actualizar Gradle. |
Herramientas de desarrollo del SDK | 23.0.2 | 23.0.2 | Instala o configura las herramientas de compilación del SDK. |