Gradle es un sistema de compilación (código abierto) que se utiliza para automatizar la creación, las pruebas, la implementación, etc. «build.gradle» son scripts en los que se pueden automatizar las tareas. Por ejemplo, la tarea simple de copiar algunos archivos de un directorio a otro puede realizarla el script de compilación de Gradle antes de que ocurra el proceso de compilación real.
¿Por qué se necesita Gradle?
Cada proyecto de Android necesita un Gradle para generar una aplicación a partir de los archivos .java y .xml del proyecto. En pocas palabras, un gradle toma todos los archivos fuente (java y XML) y aplica las herramientas apropiadas, por ejemplo, convierte los archivos java en archivos dex y los comprime en un solo archivo conocido como apk que realmente se usa. Hay dos tipos de scripts build.gradle
- build.gradle de nivel superior
- build.gradle a nivel de módulo
build.gradle de nivel superior:
Se encuentra en el directorio raíz del proyecto y su función principal es definir las configuraciones de compilación que se aplicarán a todos los módulos del proyecto. Se implementa como:
Java
// Top-level build file where you can add configuration // options common to all sub-projects/modules. buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:3.4.3' } } allprojects { repositories { google() mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir }
El build.gradle de nivel superior admite varias configuraciones de compilación como:
buildscript: este bloque se usa para configurar los repositorios y las dependencias para Gradle.
Nota: No incluya dependencias aquí. (esos se incluirán en el nivel de módulo build.gradle)
dependencias: este bloque en buildscript se usa para configurar las dependencias que Gradle necesita construir durante el proyecto.
Java
classpath 'com.android.tools.build:gradle:3.0.1'
Esta línea agrega los complementos como una dependencia de classpath para gradle 3.0.1.
- allprojects: este es el bloque donde se pueden configurar los complementos o bibliotecas de terceros. Para proyectos recién creados, Android Studio incluye mavenCentral() y el repositorio maven de Google de forma predeterminada.
- task clean(type:Delete): este bloque se utiliza para eliminar el directorio cada vez que se ejecuta el proyecto. De esta forma, los proyectos se mantienen limpios cuando alguien modifica algunos archivos de configuración, como durante settings.gradle, que requiere una limpieza completa.
build.gradle a nivel de módulo:
Ubicado en el directorio de proyecto/módulo del proyecto, este script de Gradle es donde se definen todas las dependencias y donde se declaran las versiones del SDK. Este script tiene muchas funciones en el proyecto que incluyen tipos de compilación adicionales y configuraciones de anulación en el manifiesto principal/de la aplicación o en el archivo build.gradle de nivel superior . Se implementa como:
Java
// The first line in this file indicates // the Android plugin is applied for Gradle to // this build apply plugin : 'com.android.application' android { compileSdkVersion 30 buildToolsVersion "30.0.3" { applicationId "example.mehakmeet.geeksforgeeks" minSdkVersion 19 targetSdkVersion 30 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(include : [ '*.jar' ], dir : 'libs') implementation 'com.android.support:appcompat-v7:26.1.0' }
El build.gradle de nivel de módulo admite varias configuraciones de compilación como:
- Android: este bloque se usa para configurar las opciones específicas de compilación de Android.
- compileSdkVersion : se usa para definir el nivel de API de la aplicación y la aplicación puede usar las funciones de este nivel y de niveles inferiores.
- configuración predeterminada:
- applicationId : se usa para identificar una identificación única para la publicación de la aplicación.
- minSdkVersion : define el nivel de API mínimo necesario para ejecutar la aplicación.
- targetSdkVersion : define el nivel de API utilizado para probar la aplicación.
- versionCode : define el código de versión de la aplicación. Cada vez que se necesita una actualización de la aplicación, el código de versión debe aumentarse en 1 o más.
- versionName : define el nombre de la versión de la aplicación. esto podría incrementarse mucho al crear una actualización.
- buildTypes (lanzamiento):
- minifyEnabled : esto habilitará la reducción de código para la compilación de la versión.
- proguardFiles : esto especificará el archivo de configuración de progaurd .
- dependencias: Esto especifica las dependencias que se necesitan para construir el proyecto.
Tanto los archivos build.gradle de nivel superior como los de nivel de módulo son los principales archivos de script para automatizar las tareas en un proyecto de Android y Gradle los utiliza para generar el APK a partir de los archivos de origen.