Gradle para Android (primera parte)

Este es el primero de una serie de artículos sobre Gradle y su uso en Android Studio, explicando que es y para que sirve. Adelante!

  • QUE ES GRADLE

Gradle es el sistema de compilación y construcción (builds) que Google ha elegido para Android. Es un sistema independiente, que se integra en Android Studio a través de un plugin. AS, por tanto, no se encarga de compilar y ejecutar los proyectos, sino que delega esa funcionalidad en Gradle.

El funcionamiento de Gradle se estructura en torno a unidades de ejecución autocontenidas, llamadas ‘task’ (tareas). Cada tarea incluye una o varias órdenes a ejecutar, y opcionalmente dependencias de otras tareas, inputs y outputs (archivos de entrada/salida de datos), etc.

  • EJERCICIO: GRADLE Y JAVA

Puesto que Android se programa en Java, te propongo un ejercicio muy sencillo para empezar con lo mas básico de Gradle, desde la terminal. Esto te será muy útil cuando te plantees poner tus proyectos bajo un servicio de Integración Continua (como Jenkins), por ejemplo. Asumo que tienes instalado Android Studio en tu ordenador ( y por lo tanto, Java y Gradle), y usas la terminal (si estás en Windows, puedes usar la que viene al instalar Git, que por supuesto también tienes instalado).

1-Crea una carpeta y dentro, crea a su vez el típico HolaMundo.java que devuelve “Hola Mundo” en su función main (por seguir la tradición, vaya):

2-Compila y ejecuta el archivo como cuando estudiabas java:

La ejecución debería devolver “Hola Mundo”. Ahora viene lo interesante, vamos a hacer que Gradle se encargue de realizar la compilación y ejecución de este ejemplo (borra cualquier archivo *.class generado).

3-Comprueba tu instalación de Gradle:

Deberías obtener algo como esto:

Para ver las tareas disponibles en Gradle por defecto, ejecuta el comando: gradle tasks  y obtendrás:

La tarea que nos interesa ahora es gradle init. Con ella creamos un nuevo build. Al hacerlo verás que han sido creados algunos archivos familiares (te sonarán de verlos en Android Studio) al proyecto. Para asegurar que los builds de proyectos Android son independientes de la versión de Gradle instalada en cada pc (una pesadilla de compatibilidad al trabajar en equipo, por ejemplo), Android Studio usa el ‘gradle wrapper’. Es algo así como un ‘gradle portátil’ que se empaqueta dentro del proyecto y lo hace independiente de la configuración de Gradle instalada. Está formado por:

gradle (carpeta) contiene las librerias .jar y los archivos de configuración del gradle wrapper.

gradlew (linux y mac) y gradle.bat (windows) los archivos ejecutables que usaremos.

settings.gradle contiene info sobre la configuración global del projecto, útil para incluir nuevos módulos (mas adelante)

build.gradle el mas importante, y donde se incluyen las tareas y parámetros con los que Gradle realizará el build.

Abre build.gradle con tu editor favorito (yo soy de Vim), verás una plantilla (la sintaxis es Groovy, muy fácil de entender), bórralo todo y escribe:

Como puedes ver hemos definido una tarea nueva, de tipo JavaExec. Al aplicar el plugin de Java, podrás usar tareas y plantillas predefinidas. Ejecuta  ./gradlew tasks (en windows, ‘gradle.bat tasks’), y (tras descargarse los componentes necesarios) verás tareas java añadidas a la lista, así como la tarea miTarea en Other Tasks. Antes de ejecutarla, mueve el archivo HolaMundo.java al directorio /src/main/java pues es donde Gradle espera encontrarlo (otro estándar de Java). Ahora si, ejecuta:

y deberías obtener:

Enhorabuena! Ya has compilado y ejecutado tu primer proyecto con Gradle.

En el siguiente post seguiremos profundizando en Gradle, comparte si te ha parecido interesante. Saludos!

Pedro Gonzalez

RSS
Facebook
Google+
http://elcaminodelandroide.es/gradle-para-android-primera-parte/
LinkedIn