Los entresijos de Gradle

Como el primer IDE (entorno de desarrollo integrado) dedicado por completo a Android, el Android Studio respaldado por Google es una perspectiva emocionante para los desarrolladores de Android. Pero también significa familiarizarse con algunas nuevas tecnologías, especialmente con el sistema de construcción Gradle..

Este artículo lo pone en funcionamiento con el nuevo sistema de compilación de Android, desde los conceptos básicos de lo que Gradle es y lo que hace, hasta un análisis en profundidad de algunos de los archivos de Gradle más importantes, para aprender cómo ejecutar y monitorear las tareas de Gradle..

También verás más de cerca las distintas ventanas de herramientas de Gradle en Android Studio y aprenderás cómo agregar dependencias a un proyecto, todo esto sin la experiencia previa de Gradle necesaria..

El primer paso para familiarizarse con el nuevo sistema de compilación de Android es entender exactamente qué es Gradle y por qué su inclusión en Android Studio es una buena noticia para los desarrolladores de Android..

1. Que es Gradle?

Gradle es un kit de herramientas de compilación automatizada que se puede integrar en muchos entornos diferentes, a través de complementos. En Android Studio, la integración de Gradle se logra a través del complemento Gradle de Android, que tiene un nombre adecuado.

Si nunca ha usado Gradle antes, puede parecer una barrera frustrante para la entrada cuando está considerando mudarse a Android Studio. Sin embargo, Gradle tiene mucho que ofrecer a los desarrolladores de Android, por lo que vale la pena invertir algo de tiempo en aprender los entresijos de Gradle. Estas son algunas de las cosas que puedes hacer con Gradle..

Minimizar la configuración requerida para nuevos proyectos

Gradle tiene un conjunto de ajustes de configuración predeterminados que se aplican automáticamente a cada proyecto que creas en Android Studio. Si está desarrollando un proyecto que no cumple con estas reglas de configuración predeterminadas, Gradle es fácil de personalizar.

Declarar las dependencias del proyecto

Las dependencias pueden ser módulos, archivos JAR o bibliotecas, y pueden ubicarse en el sistema de archivos local o en un servidor remoto.

Prueba tu proyecto

Gradle genera automáticamente un directorio de prueba y un APK de prueba de las fuentes de prueba de su proyecto y puede ejecutar sus pruebas durante el proceso de compilación.

Generar APKs firmados

Si agrega toda la información necesaria, como contraseña clave y keyAlias, a su archivo de compilación de Gradle, puede usar Gradle para generar archivos APK firmados.

Generar múltiples APKs desde un solo módulo

Gradle puede generar múltiples APK con diferentes paquetes y crear configuraciones desde un solo módulo. Esta característica es particularmente útil para los desarrolladores de Android, por varias razones:

1. Soporta una amplia gama de dispositivos

Una gran parte del desarrollo para la plataforma Android es admitir la mayor cantidad posible de dispositivos y versiones diferentes del sistema operativo Android. La tienda Google Play incluso tiene soporte para múltiples APK, por lo que puede crear múltiples versiones de su aplicación, donde cada versión apunta a una configuración de dispositivo diferente, ofreciéndolas como una sola lista de Play Store..

Aquí es donde entra en juego Gradle. Puedes usar el nuevo sistema de compilación de Android para generar múltiples variantes de APK desde el mismo módulo. Solo dé a estas variantes el mismo nombre del paquete y podrá subirlas a la misma lista de Google Play.

2. Ofrecer diferentes versiones de una aplicación

A veces, tu querer para enumerar varias versiones de su aplicación en Play Store, por ejemplo, si está ofreciendo una versión gratuita y "Pro" de su aplicación. Nuevamente, puede usar Gradle para generar múltiples APK desde el mismo módulo y darle a cada APK un nombre de paquete diferente. Luego puedes subir cada APK a la Play Store por separado..

2. Explorando los archivos de Gradle

Cada vez que creas un proyecto en Android Studio, el sistema de compilación genera automáticamente todos los archivos de compilación necesarios de Gradle..

Ya que encontrará el mismo conjunto de archivos de Gradle cada vez que cree un proyecto de Android Studio, crearemos un proyecto de ejemplo básico y luego analizaremos estos archivos generados automáticamente..

El primer paso es crear su proyecto de muestra:

  1. Lanzar Android Studio.
  2. Hacer clic Iniciar un nuevo proyecto de Android Studio.
  3. Asígnele un nombre a su proyecto, ingrese un dominio y elija dónde se debe almacenar su proyecto de muestra. Hacer clic Siguiente.
  4. Asegurar solo Teléfono y tableta está seleccionado y acepta la configuración de SDK mínima predeterminada. Hacer clic Siguiente.
  5. Seleccionar Actividad en blanco y haga clic Siguiente.
  6. Quédate con la configuración predeterminada y haz clic en Terminar.

Archivos de compilación de Gradle

Los archivos de compilación de Gradle utilizan un lenguaje específico de dominio o DSL para definir la lógica de compilación personalizada e interactuar con los elementos específicos de Android del complemento de Android para Gradle.

Los proyectos de Android Studio constan de uno o más módulos, que son componentes que puede crear, probar y depurar de forma independiente. Cada módulo tiene su propio archivo de compilación, por lo que cada proyecto de Android Studio contiene dos tipos de archivos de compilación de Gradle:

  • Archivo de compilación de nivel superior: Aquí es donde encontrará las opciones de configuración que son comunes a todos los módulos que conforman su proyecto..
  • Archivo de compilación de nivel de módulo: Cada módulo tiene su propio archivo de compilación Gradle que contiene configuraciones de compilación específicas del módulo. Pasará la mayor parte de su tiempo editando archivos de compilación de nivel de módulo en lugar del archivo de compilación de nivel superior de su proyecto.

Para ver estos archivos de build.gradle, abra Android Studio's Proyecto panel (seleccionando la Proyecto pestaña) y expanda la Guiones de Gradle carpeta. En nuestro proyecto de muestra, los dos primeros elementos de la lista son los archivos de compilación de nivel superior y de módulo del proyecto..


Nuestro proyecto de ejemplo solo tiene un único archivo de compilación a nivel de módulo, pero la siguiente captura de pantalla le da una idea de cómo Guiones de Gradle carpeta podría buscar un proyecto con múltiples módulos.


Archivo de compilación de Gradle de nivel superior

Cada proyecto de Android Studio contiene un único archivo de compilación de Gradle de nivel superior. Este archivo build.gradle es el primer elemento que aparece en el Guiones de Gradle carpeta y está claramente marcado Proyecto.

La mayoría de las veces, no necesitará realizar ningún cambio en este archivo, pero sigue siendo útil para comprender su contenido y el papel que desempeña dentro de su proyecto. A continuación se muestra una versión comentada de un archivo de compilación típico de nivel superior.

buildscript // Los archivos de compilación Gradle a nivel de proyecto utilizan buildscript para definir dependencies.// repositories jcenter () // Este archivo se basa en el repositorio jJCenter.// dependencies classpath 'com.android.tools.build:gradle: 1.0.0 '// El proyecto depende de la versión 1.0.0 del complemento de Android para Gradle.// allprojects // Define las dependencias requeridas por su aplicación.// repositorios jcenter () // Aplicación depende en el repositorio jCenter.// 

Archivos de compilación de Gradle a nivel de módulo

Además del archivo de compilación Gradle a nivel de proyecto, cada módulo tiene su propio archivo de compilación Gradle. A continuación se muestra una versión comentada de un archivo de compilación Gradle básico a nivel de módulo.

aplique el complemento: 'com.android.application' // Dado que este proyecto es una aplicación de Android, el archivo build.gradle utiliza el complemento de Android.// android // La siguiente sección configura todos los parámetros específicos de Android de su proyecto, y dice Gradle con qué versión de Android debería construir tu proyecto. Si ha desarrollado aplicaciones de Android anteriormente, lo siguiente debería ser familiar.// compileSdkVersion 21 // La API a la que se dirige su proyecto.// buildToolsVersion "21.1.1" //// La versión de las herramientas de compilación que desea use.// defaultConfig applicationId "com.example.jessica.myapplication" // Define el ID de su aplicación. Tenga en cuenta que las versiones anteriores del complemento de Android utilizaron 'packageName' en lugar de 'applicationID.' // minSdkVersion 16 // La API mínima requerida por su proyecto.// targetSdkVersion 21 // La versión de Android para la que está desarrollando su aplicación. // versionCode 1 versionName "1.0" buildTypes release // 'BuildTypes' controla cómo se construye y se empaqueta su aplicación. Si desea crear sus propias variantes de compilación, deberá agregarlas a esta sección.// minifyEnabled true // Gradle ejecuta ProGuard durante el proceso de compilación.// proguardFiles getDefaultProguardFile ('proguard-android.txt'), ' proguard-rules.pro '// Aplica la configuración predeterminada de ProGuard desde las dependencias de Android SDK.// // Declara las dependencias para el módulo actual.// compile fileTree (dir:' libs ', include: [' * .jar ']) // Aunque puedes agregar archivos JAR al compilarlos individualmente, esto puede llevar mucho tiempo si tienes muchos JAR. En este ejemplo, le estamos diciendo a Gradle que agregue todos los archivos JAR en la carpeta app / libs.// compile 'com.android.support:appcompat-v7:21.0.3' // Para crear más dependencias, agréguelas el cierre de las dependencias. 

Otros archivos de Gradle

Además de los archivos build.gradle, su Guiones de Gradle carpeta contiene algunos otros archivos de Gradle. La mayoría de las veces no tendrá que editar manualmente estos archivos, ya que se actualizarán automáticamente cuando realice cambios relevantes en su proyecto. Sin embargo, es una buena idea entender el papel que juegan estos archivos dentro de su proyecto..

gradle-wrapper.properties (Versión Gradle)

Este archivo permite a otras personas crear su código, incluso si no tienen Gradle instalado en su máquina. Este archivo verifica si la versión correcta de Gradle está instalada y descarga la versión necesaria si es necesario. En nuestra aplicación de muestra, gradle-wrapper.properties contiene lo siguiente:

distributionBase = GRADLE_USER_HOME // Determina si la distribución de la envoltura desempaquetada debe almacenarse en el proyecto, o en el directorio de inicio del usuario de Gradle. zipStoreBase = GRADLE_USER_HOME zipStorePath = wrapper / dists distributionUrl = https \: //services.gradle.org/distributions/gradle-2.2.1-all.zip // La URL desde donde se debe descargar la versión correcta de Gradle..

settings.gradle

Este archivo hace referencia a todos los módulos que conforman su proyecto. Como nuestro proyecto de ejemplo tiene un solo módulo, este archivo es muy sencillo, como puede ver a continuación..

incluir ': app'

gradle.properties (Propiedades del proyecto)

Este archivo contiene información de configuración para su proyecto completo. Está vacío de forma predeterminada, pero puede aplicar una amplia gama de propiedades a su proyecto al agregarlas a este archivo.

local.properties (ubicación SDK)

Este archivo le indica al complemento Gradle de Android dónde puede encontrar la instalación de su SDK de Android. Por ejemplo:

sdk.dir = / Users / jessica / Library / Android / sdk

Tenga en cuenta que propiedades locales contiene información que es específica de la local Instalación del SDK de Android. Esto significa que no debe mantener este archivo bajo control de código fuente.

3. Interfaz de usuario de Android Studio

Ahora que está familiarizado con todos los archivos de Gradle generados automáticamente, es hora de pasar a interactuar con el sistema de compilación de Gradle. La buena noticia es que puede interactuar con Gradle directamente desde la interfaz de usuario de Android Studio.

Alrededor de los bordes verticales y horizontales de Andorid Studio hay pestañas que abren varias ventanas de herramientas. En las siguientes secciones, le presentaré algunas de las ventanas de herramientas específicas de Gradle de Android Studio y le mostraré cómo interactuar con el sistema de construcción de Gradle a través de estas ventanas..

Ventana de tareas Gradle

Puede usar la ventana de tareas de Gradle para explorar y ejecutar las diversas tareas involucradas en la compilación de su proyecto en una aplicación ejecutable.

Para abrir la ventana de tareas de Gradle, haga clic en Gradle pestaña a lo largo del lado derecho de la instalación de Android Studio. Si ha personalizado su interfaz de usuario de Android Studio y ya no puede encontrar la Gradle pestaña, entonces puede seleccionar Ver> Ventanas de herramientas> Gradle en lugar.

En la pestaña Tareas de Gradle, haga doble clic en su proyecto, seguido de su módulo. Verá una lista de todas las tareas de Gradle relacionadas con este módulo..


Cuando hace doble clic en una tarea en la ventana de tareas de Gradle, comienza a ejecutarse y la salida aparece en otra ventana específica de Gradle, la Consola gradle.

Consola gradle

La consola de Gradle muestra la salida de las tareas de Gradle a medida que se ejecutan, junto con cualquier mensaje de error o advertencia..

Para abrir la consola Gradle, seleccione la Consola gradle pestaña hacia la parte inferior derecha de su IDE. Si ha personalizado la interfaz de usuario de Android Studio y ya no puede encontrar esta pestaña, siempre puede seleccionar Ver> Ventanas de herramientas> Consola Gradle en lugar.

Vamos a tomar la consola Gradle para dar una vuelta. En la ventana de tareas de Gradle, encuentra la montar tarea, que crea una versión de lanzamiento de su aplicación lista para su distribución, y haga doble clic en ella. Como el montar la tarea se ejecuta, la salida de la tarea aparece en la consola de Gradle.

La Consola de Gradle le notificará que su proyecto se ha creado con éxito o mostrará un mensaje de "versión fallida" junto a la información sobre por qué ha fallado la construcción..


Terminal

También puedes ejecutar tareas de Gradle desde la aplicación integrada de Android Studio. Terminal. Si sabe exactamente qué tarea de Gradle desea ejecutar, el Terminal suele ser mucho más rápido y conveniente que navegar por las listas de tareas en la consola de Gradle..

Para abrir la Terminal, haga clic en Terminal pestaña hacia la parte inferior izquierda de Android Studio, o seleccione Ver> Ventanas de herramientas> Consola Gradle. La Terminal se abrirá con el directorio actual ya seleccionado. Luego puede ejecutar las tareas de Gradle escribiéndolas en la Terminal y presionando la tecla Regreso o la Entrar tecla en tu teclado.

4. Agregando Dependencias

En esta sección, exploraremos cómo puede usar Gradle para administrar las dependencias del módulo de su proyecto, las dependencias binarias locales y las dependencias binarias remotas.

Cuando se trata de agregar dependencias a su proyecto, Gradle le ofrece varias opciones..

Opción 1: soltar archivos en el directorio libs / Project del proyecto

El archivo build.gradle relevante se actualizará automáticamente..

Opción 2: Modificar el archivo build.gradle manualmente

Abra su archivo build.gradle y agregue una nueva regla de compilación al cierre de dependencias. Por ejemplo, si desea agregar los servicios de Google Play, la sección de dependencias de su proyecto se vería así:

dependencias compile fileTree (dir: 'libs', incluye: ['* .jar']) compile 'com.google.android.gms: play-services: 6.5. +'

Opción 3: Usar la interfaz de usuario de Android Studio

En el Proyecto panel, Control + Clic El módulo al que desea agregar la dependencia y seleccionar Abrir la configuración del módulo.


Selecciona el Dependencias pestaña, seguido de la + botón en la esquina inferior izquierda. Puede elegir de la siguiente lista de opciones:

  • Dependencia de la biblioteca
  • Dependencia de archivos
  • Dependencia del módulo

Luego puede ingresar más información sobre la dependencia que desea agregar a su proyecto. Por ejemplo, si eliges Dependencia de la biblioteca, Android Studio muestra una lista de bibliotecas para que usted elija.

Una vez que haya agregado su dependencia, verifique su archivo build.gradle a nivel de módulo. Debería haberse actualizado automáticamente para incluir la nueva dependencia..

Conclusión

Este artículo le presenta todos los archivos de compilación de Gradle generados automáticamente que encontrará en su proyecto típico de Android Studio, particularmente los archivos de compilación de Gradle de nivel superior y de módulo. También ha aprendido cómo interactuar directamente con el sistema de compilación Gradle desde la interfaz de usuario de Android Studio.

Si está interesado en obtener más información sobre Gradle, encontrará mucha información adicional en el sitio web para desarrolladores de Android y en el sitio web de Gradle..