Hay varias tecnologías de automatización de compilación contemporáneas disponibles en la actualidad que se pueden utilizar para crear una compilación más rápida al crear un proyecto. Gradle es una de estas tecnologías de automatización modernas. Android ahora utiliza Gradle para automatizar y controlar el proceso de compilación y, al mismo tiempo, definir configuraciones de compilación personalizadas y flexibles. Como resultado, se requiere diseñar o construir una aplicación de Android utilizando herramientas de construcción tan sofisticadas como Gradle.
Entonces, en este artículo, aprenderemos cómo usar Gradle para mejorar nuestras compilaciones. Además, estudiaremos la sintaxis fundamental en el archivo build.gradle creado por Android Studio. Aprenderemos sobre las tareas de Gradlew, las variaciones de compilación y muchos otros usos más adelante en este blog.
¿Qué es exactamente Gradle?
Antes de continuar, echemos un breve vistazo a Gradle. Gradle, un sofisticado conjunto de herramientas de compilación, es utilizado por Android Studio para automatizar y controlar el proceso de compilación, al mismo tiempo que le permite diseñar configuraciones de compilación personalizadas y flexibles. Entonces, con Gradle, puede compilar, probar e implementar su aplicación, y los archivos responsables de este tipo de automatización son los archivos «Build.gradle». Los scripts de compilación de Gradle, por ejemplo, pueden realizar tareas simples, como copiar imágenes de una ubicación/directorio a otro antes de que comience el proceso de compilación real. Se requiere Gradle para los proyectos de Android con el fin de compilar el código fuente y los recursos.
Cuando crea un proyecto de Android en Android Studio, el archivo build.gradle se produce automáticamente y cuando presiona el botón ejecutar en Android Studio, se llama a la tarea de Gradle asociada y la aplicación se inicia o inicia. Cuando ejecute su código fuente en Android Studio, se transformará en archivos DEX (Dalvik Executable). Estos archivos DEX contienen el código de bytes necesario para ejecutar el programa en Android. APK Packager se utiliza para agrupar varios archivos DEX con los recursos de la aplicación. Luego, APK Packager firma su APK usando el almacén de claves de depuración o liberación, y antes de crear su APK final, optimiza su programa para eliminar el código innecesario.
Crear archivos de configuración
Cuando crea un nuevo proyecto en Android Studio, genera varios archivos para usted. Primero definamos el alcance y propósito de estos archivos. La vista de proyecto típica de un proyecto de Android es la siguiente:
- El archivo de configuración de Gradle: El archivo settings.gradle se puede encontrar en el directorio raíz. Se compone de todos los módulos incluidos en la aplicación.
- El archivo de compilación de nivel superior es el archivo build.gradle, que se almacena en el directorio raíz. Si desea utilizar la misma configuración para todos los módulos de su proyecto, declárelos en este archivo.
- El archivo de compilación a nivel de módulo es el siguiente: El archivo build.gradle a nivel de módulo, que se puede encontrar en cada proyecto/módulo/directorio, nos permite definir los parámetros de compilación para el módulo en el que se coloca.
- Archivo de configuración de Gradle: puede definir parámetros para el kit de herramientas de Gradle en el archivo de propiedades de Gradle.
Comandos para Gradle
Ya hemos cubierto los fundamentos de Gradle, y ahora veremos algunos de los comandos de Gradle que se pueden usar para realizar el proceso de compilación sin usar Android Studio, es decir, a través de la línea de comandos. Puede abrir gradle y luego usar los siguientes comandos que lo ayudarán.
1. Gradle Wrapper: Gradle aún está en desarrollo y es posible que llegue una nueva versión en cualquier momento. Gradle Wrapper se utiliza para proporcionar un flujo fluido mientras se ejecutan las instrucciones de Gradle. En Mac OS o Linux, Gradle Wrapper es un script de shell llamado gradlew, mientras que en Windows es un archivo por lotes llamado gradlew.bat. Por lo tanto, si ejecuta este script y la versión especificada de Gradle no está presente, descargará la versión seleccionada de Gradle por usted.
Si usa Android Studio para crear un proyecto de Android, este Gradle Wrapper se generará automáticamente. Si desea crear su propio Gradle Wrapper, descargue Gradle desde aquí y luego ejecute el siguiente comando en el directorio de su proyecto:
$ gradle wrapper --gradle-version x.x
2. gradlew: el envoltorio de Gradle es gradlew. Si usó Android Studio para compilar el proyecto de Android, navegue hasta el directorio raíz de su proyecto en la línea de comando
Esto proporcionará una lista de cosas que puede realizar con Gradle:
> Task :help Welcome to Gradle 5.1.1. To run a build, run gradlew <task> ... To see a list of available tasks, run gradlew tasks To see a list of command-line options, run gradlew --help To see more detail about a task, run gradlew help --task <task> For troubleshooting, visit https://help.gradle.org
3. responsabilidades de gradlew: esto se usa para mostrar una lista de trabajos disponibles. En la línea de comando, escriba el siguiente comando:
> Task :tasks ----------------------------------------------------------- Tasks runnable from root project ----------------------------------------------------------- Android tasks ------------- androidDependencies - Displays the Android dependencies of the project. signingReport - Displays the signing info for the base and test modules sourceSets - Prints out all the source sets defined in this project. Build tasks ----------- assemble - Assemble main outputs for all the variants. assembleAndroidTest - Assembles all the Test applications. build - Assembles and tests this project. buildDependents - Assembles and tests this project and all projects that depend on it. buildNeeded - Assembles and tests this project and all projects it depends on. bundle - Assemble bundles for all the variants. clean - Deletes the build directory. cleanBuildCache - Deletes the build cache directory. compileDebugAndroidTestSources compileDebugSources compileDebugUnitTestSources compileReleaseSources compileReleaseUnitTestSources Build Setup tasks ----------------- init - Initializes a new Gradle build. wrapper - Generates Gradle wrapper files.
4. gradlew lint: el comando gradlew lint se usa para descubrir errores en todo el proyecto, es decir, buscará diferentes errores, errores tipográficos y vulnerabilidades. Cuando esté en la raíz de su proyecto, puede usar todos estos comandos
> Task :app:lint Ran lint on variant debug: 30 issues found Ran lint on variant release: 102 issues found Wrote HTML report to file: Wrote XML report to file:
5. gradlew build: Para construir su proyecto, ejecute el siguiente comando en su directorio raíz:
$ ./gradlew build
6 _ gradlew clean build: puede usar este comando para borrar y optimizar su código, la compilación se reescribirá desde cero.
$ ./gradlew clean build
7. examen gradlew: use el siguiente comando para realizar la prueba de la aplicación:
$ ./gradlew test
Otras características de Gradle
Gradle, además de ser útil en las líneas de comando, tiene muchas otras capacidades. Algunos de estos son los siguientes:
Administrar la versión de las dependencias: en un proyecto de varios módulos, se utilizan varias dependencias y, como resultado, el problema más común que surge es un conflicto en la versión de las dependencias, es decir, solo si tiene la dependencia del servidor. entonces solo ellos correrán. Las versiones de estas dependencias son difíciles de mantener, sin embargo, Gradle proporciona un bloque de extensión donde podemos declarar nuestros valores de propiedad común y utilizarlos en las dependencias.
apply plugin: 'com.android.application' android { defaultConfig{...} buildTypes{...} ProductFlavours{...} } ext { supportLibraryVersion = '28.1.0' } dependencies { // android supported libraries implementation "com.android.support:appcompat-v7:$supportLibraryVersion" implementation "com.android.support:design:$supportLibraryVersion" implementation "com.android.support:cardview-v7:$supportLibraryVersion" // google play service implementation "com.google.android.gms:play-services:$playServiceVersion" implementation "com.google.android.gms:play-services-fitness:$playServiceVersion" // your other project files }
Construir tipos y construir sabores
De forma predeterminada, hay dos tipos de compilaciones en Android: depuración y lanzamiento. Estos tipos de edificios se utilizan para generar distintas variantes de aplicación. Por «sabor» implicamos que el mismo programa puede tener características distintas para varios usuarios. Por ejemplo, la edición premium del software debe tener características diferentes a la gratuita. Puede usar el cierre productFlavors en el archivo build.gradle del nivel de su aplicación para especificar varios sabores. Como ejemplo, considere lo siguiente:
productFlavors { paid { applicationId = "your app id goes here" versionName = "1.1-paid" }
free { applicationId = "your app id" versionName = "1.0-free" } }
Creando tareas
Como hemos visto, el comando de tareas ./gradlew se puede usar para recuperar una lista de tareas disponibles. Sin embargo, también podemos construir nuestras propias tareas. Por ejemplo, podríamos escribir una tarea que le indique a Gradle que genere un archivo APK con la fecha de compilación en su nombre. Para hacerlo, agregue el siguiente código a su archivo build.gradle a nivel de módulo:
Java
task postTopic() { android.seeAllVariants.all { here -> here.outputs.all { output -> def gfg = new Date().format("dd-yyyy") def geeksforgeeks = here.name + "_" + date + ".apk" output.finalName = last } } }
Tenemos un trabajo aquí llamado postTopic(), y está creando un nuevo nombre de archivo al agregarle la variable y la fecha de compilación.
Conclusión
Aprendimos a utilizar Gradle en nuestro proyecto de Android en este artículo. Aprendimos varios comandos de Gradle. El conjunto completo de comandos está disponible en el sitio web de Gradle.
Publicación traducida automáticamente
Artículo escrito por therebootedcoder y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA