Usando Variantes de Construcción de Gradle

Introducción

Una de las características clave de Android Studio es la integración de Gradle como sistema de compilación de Android. Si bien el propósito general de un sistema de compilación es tomar el código fuente y construir un archivo instalable para sus usuarios, un APK en el caso de Android, Gradle proporciona mucha más funcionalidad..

Gradle maneja la administración de dependencias, como los archivos JAR locales, los archivos .so nativos y las bibliotecas alojadas en Maven. También permite una fácil configuración de las propiedades del proyecto y permite a los desarrolladores crear diferentes versiones de sus aplicaciones de una manera bastante simple. El último elemento, conocido como variantes de compilación, es lo que aprenderá en este artículo.

1. ¿Qué son las variantes de construcción??

Las variantes de compilación son compilaciones específicas que puede producir desde Gradle, basadas en el código fuente compartido principal. Mientras que una aplicación estándar puede tener un depurar y lanzamiento tipo de compilación, puede ampliar esto añadiendo dimensiones del sabor.

Las dimensiones de sabor le permiten usar la estructura de carpetas de su proyecto para cambiar la apariencia de las construcciones individuales y cómo actúan para sus usuarios. Esto permite a los desarrolladores producir fácilmente múltiples aplicaciones similares con diferentes estilos y configuraciones.

2. Configuración de variantes de construcción en Gradle

Puedes empezar por entrar en tu proyecto construir.gradle archivo y añadiendo un sabordimensiones elemento dentro de la androidenodo de compilación.

saborDimensiones "número", "color"

Esto define qué dimensiones pueden usar las variantes de construcción. Cada construcción que produzcas debe tener una sabor del producto De cada una de las dimensiones. Esto significa que si solo necesita una dimensión para sus aplicaciones, que es un escenario común, entonces puede cambiar su sabordimensiones línea para definir solo una dimensión.

Bajo la sabordimensiones definición, puede definir la productos sabores. Para este ejemplo, mantendremos las cosas simples y definiremos dos tipos por dimensión..

productFlavors blue applicationId "com.tutsplus.bluevariant" flavorDimension "color" green applicationId "com.tutsplus.greenvariant" flavorDimension "color" uno flavorDimension "número" dos flavorDimension "número"

Cada compilación que crees necesitará un único ID de aplicación Para diferenciarlo de las otras construcciones. Dado que cualquier aplicación que construya tendrá al menos un sabor de cada dimensión, solo necesita definir el ID de aplicación en cada nodo para una dimensión.

Ahora que ha definido todo para sus variantes de construcción en construir.gradle, puedes abrir el Variantes de construcción Panel en la esquina inferior izquierda de Android Studio para ver qué variantes están disponibles para construir.

Notarás que cada sabor que agregues aumenta el número de variantes de manera exponencial. También tenga en cuenta que buildTypes de depurar y lanzamiento Se arrojan a la matriz de dimensiones..

3. Usando la Estructura del Proyecto

Si bien ahora puede instalar diferentes versiones de su aplicación, no hay nada que las distinga unas de otras. Aquí es donde realmente puedes usar el sistema de compilación Gradle para tu ventaja.

Gradle utiliza la estructura de carpetas de un proyecto para determinar qué archivos se utilizarán para compilar una aplicación. En su estructura de proyecto bajo app / src /,verá el principal directorio. Aquí es donde viven todos los recursos principales y de origen de Java. Puede agregar directorios adicionales al lado principal para reflejar los sabores de productos de sus aplicaciones para agregar recursos personalizados para cada variante de construcción.

Cualquier recurso que exista en un sabor de producto que también esté definido en principal automáticamente tendrá prioridad.

Podemos ver eso en acción mirando main / res / values ​​/ colors.xml. Si tu proyecto no tiene ya un colorprimaria Valor definido, adelante y definelo. Si comenzó con un nuevo proyecto vacío a seguir junto con este artículo, debería ver un valor predefinido de # 3F51B5. Ejecutar la aplicación debería mostrar el colorprimaria valor como el color para el Barra de herramientas en la aplicación.

Si creas una nueva colores.xml archivar bajo verde / src / valores /,puedes anular el colorprimaria atributo con un valor diferente. En este caso, vamos a utilizar # 00FF00.

  # 00FF00 

Cuando se crea su archivo y se establece el color, vuelva a la Variantes de construcción panel en Android Studio y seleccione el oneGreenDebug Variante de construcción. A continuación, puede compilar y ejecutar esa variante de la aplicación.

Aunque la variante verde ha coloreado la barra de herramientas verde, las otras propiedades de principal no se anulan Esto le permite configurar sus propiedades comunes en principal Y solo cambia lo que debería ser diferente..

Esto no solo funciona con los colores, sino que también puede cambiar cualquier cosa que exista dentro de las carpetas de recursos, como cadenas, estilos, dimensiones y enteros. Cuando se combina con carpetas de recursos anotadas, como valores-xhdpi para dispositivos de mayor densidad de píxeles, podrá controlar con precisión lo que el usuario ve desde su aplicación para garantizar que tengan la mejor experiencia posible.

Como bono adicional, ya que tienes diferentes ID de aplicación valores establecidos para cada una de las dimensiones de color, puede instalar varias versiones de la misma aplicación en un dispositivo.

Conclusión

Gradle es una herramienta poderosa que no solo construye archivos APK, sino que le permite tener un control preciso sobre la personalización de sus compilaciones. En este artículo, ha aprendido cómo crear variantes de compilación de su aplicación con diferentes recursos para que pueda producir fácilmente múltiples aplicaciones similares en una fracción del tiempo que tomaría construir cada una individualmente..

Si bien Gradle aún es un sistema de compilación bastante nuevo, ya ha demostrado que es un sistema de compilación increíblemente útil con el que todos los desarrolladores de Android deberían sentirse cómodos..