para - ¿Qué es Gradle en Android Studio?
gradle version android studio (22)
Respuesta corta
Gradle es un sistema de compilación.
Respuesta larga
Antes de Android Studio, estaba usando Eclipse para sus propósitos de desarrollo y, lo más probable es que no supiera cómo construir su APK de Android sin Eclipse.
Puede hacer esto en la línea de comandos, pero debe aprender qué hace cada herramienta (dx, aapt) en el SDK. Eclipse nos salvó a todos de estos detalles de bajo nivel, pero importantes y fundamentales, al darnos su propio sistema de compilación.
Ahora, ¿alguna vez te has preguntado por qué la carpeta res
está en el mismo directorio que tu carpeta src
?
Aquí es donde el sistema de construcción entra en la imagen. El sistema de compilación toma automáticamente todos los archivos de origen ( .java
o .xml
), luego aplica la herramienta adecuada (por ejemplo, toma los archivos de clase java
y los convierte en archivos dex
), y los agrupa en un archivo comprimido, nuestro querido APK.
Este sistema de compilación usa algunas convenciones: un ejemplo de uno es especificar el directorio que contiene los archivos de origen (en Eclipse es la carpeta /src
) o los archivos de recursos (en Eclipse es la carpeta de /res
).
Ahora, para automatizar todas estas tareas, tiene que haber un script; puede escribir su propio sistema de compilación utilizando shell scripting en linux o sintaxis de archivos por lotes en Windows. ¿Lo tengo?
Gradle es otro sistema de compilación que toma las mejores características de otros sistemas de compilación y las combina en uno. Se ha mejorado en base a sus deficiencias. Es un sistema de compilación basado en JVM , lo que significa que puedes escribir tu propio script en Java, que Android Studio utiliza.
Una cosa interesante acerca de gradle es que es un sistema basado en plugin . Esto significa que si tiene su propio lenguaje de programación y desea automatizar la tarea de compilar algún paquete (salida como un JAR para Java) desde las fuentes, puede escribir un complemento completo en Java o Groovy (o Kotlin, consulte here ), y Distribúyelo al resto del mundo.
¿Por qué lo usó Google?
Google vio uno de los sistemas de compilación más avanzados del mercado y se dio cuenta de que podía escribir sus propios scripts con poca o ninguna curva de aprendizaje, y sin aprender Groovy o cualquier otro idioma nuevo. Así que escribieron el plugin de Android para Gradle.
Debe haber visto los archivos de build.gradle
en su proyecto. Ahí es donde puede escribir scripts para automatizar sus tareas. El código que viste en estos archivos es el código Groovy. Si escribe System.out.println("Hello Gradle!");
entonces se imprimirá en su consola.
¿Qué puedes hacer en un script de compilación?
Un ejemplo simple es que tiene que copiar algunos archivos de un directorio a otro antes de que ocurra el proceso de construcción real. Un script de compilación de Gradle puede hacer esto.
Gradle es un poco confuso para mí y también para el nuevo desarrollador de Android. ¿Alguien puede explicar qué es Gradle en Android Studio y cuál es su propósito? ¿Por qué se incluye Gradle en Android Studio?
A riesgo de ser discursivo, creo que detrás de esto está la pregunta de por qué la experiencia de Android Studio / Gradle es tan mala.
Experiencia típica de Clojure:
- descargar proyecto con las dependencias enumeradas en project.clj.
- Leiningen obtiene las dependencias gracias a Clojars y Maven.
- Proyecto compila.
Experiencia típica de Android Studio / Gradle:
- "Importar mi proyecto Eclipse".
- OK proyecto importado.
- Gradle lo está haciendo, es ... espera ... espera ... espera ... Gradle ha terminado.
- Compilar ... no se puede compilar porque no sé qué es una X y no puedo encontrar la biblioteca Y.
No estoy seguro de que esto sea culpa de Gradle exactamente. Pero la "importación desde el proyecto Eclipse" parece bastante escamosa. A pesar de toda la supuesta sofisticación de Gradle y las virtudes de un sistema de compilación, Android Studio no parece importar muy bien las dependencias de compilación o el proceso de compilación de Eclipse.
No le dice cuándo falló al importar un gráfico de dependencia completo. Android Studio no ofrece ayuda útil ni consejos sobre cómo resolver el problema. No le indica dónde puede buscar manualmente las carpetas de Eclipse. No te dice qué biblioteca parece faltar. O ayudarlo a buscar Maven, etc. para ellos.
En 2016, cosas como Leiningen / Clojars, o node npm, Python''s pip, o Debian apkg (y estoy seguro de que muchos gestores de paquetes similares para otros idiomas y sistemas) funcionan a la perfección ... las dependencias que faltan son cosa del pasado.
Excepto con Android. Android Studio es ahora el único lugar en el que todavía parece experimentar un infierno de dependencias perdidas.
Me inclino a decir que esto es culpa de Google. Rompieron el ecosistema de Android (y miles de proyectos existentes de Android / tutoriales en línea) cuando decidieron cambiar de Eclipse a Android Studio / Gradle sin producir un proceso de conversión sólido. Las personas cuyos proyectos trabajan en Eclipse no los están adaptando a AS (probablemente porque es un dolor para ellos). Y las personas que intentan usar esos proyectos en AS están teniendo los mismos problemas.
Y de todos modos, si Gradle es este súper poderoso sistema de compilación, ¿por qué sigo administrando muchas otras dependencias en el administrador de SDK? ¿Por qué no puede un proyecto que necesita, por ejemplo, el ndk especificar esto en su archivo Gradle para que se instale automáticamente y se construya en contra cuando sea necesario? ¿Por qué es especial el NDK? Del mismo modo para las plataformas de destino? ¿Por qué los estoy instalando explícitamente en el IDE en lugar de solo comparar mi proyecto con ellos y tener todo esto arreglado para mí entre bambalinas?
Aquí hay una explicación detallada sobre qué es Gradle
y cómo usarlo en Android Studio.
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.
Archivos de compilación de Gradle
Los archivos de compilación de Gradle utilizan un
Domain Specific Language or 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 1 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 2 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 de 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 el panel Proyecto de Android Studio (seleccionando la pestaña Proyecto) y expanda la carpeta de secuencias de comandos de Gradle. Los dos primeros elementos de la carpeta de secuencias de comandos de Gradle son los archivos de compilación de Gradle a nivel de proyecto y nivel de módulo
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 la carpeta de secuencias de comandos de Gradle y está claramente marcado como 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.
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.
Otros archivos de Gradle
Además de los archivos build.gradle, su carpeta de secuencias de comandos de Gradle 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 construir 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.
settings.gradle
Este archivo hace referencia a todos los módulos que conforman su proyecto.
gradle.properties (Propiedades del proyecto)
Este archivo contiene información de configuración para todo su proyecto. 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.
Nota: local.properties
contiene información que es específica de la instalación local del SDK de Android. Esto significa que no debe mantener este archivo bajo control de código fuente.
Lectura sugerida - Tutorial de Tutsplus
Tengo una clara comprensión de Gradle de esto.
El sistema de compilación Gradle está diseñado para admitir escenarios complejos en la creación de aplicaciones de Android:
Multidistribución : la misma aplicación debe personalizarse para varios clientes o empresas.
Multi-apk: admite la creación de múltiples apk para diferentes tipos de dispositivos mientras reutiliza partes del código
En Android Studio, Gradle es una herramienta de compilación personalizada que se utiliza para crear paquetes de Android (archivos apk) mediante la gestión de dependencias y el suministro de lógica de compilación personalizada.
El archivo APK (paquete de aplicación de Android) es un archivo zip especialmente formateado que contiene
- Código de byte
- Recursos (imágenes, IU, xml, etc.)
- Archivo de manifiesto
Un archivo apk se firma y se empuja al dispositivo utilizando ADB (Android Debug Bridge) donde se ejecuta.
Es la nueva herramienta de compilación que Google quiere usar para Android. Se está utilizando debido a que es más extensible y útil que la hormiga. Está destinado a mejorar la experiencia del desarrollador.
Puede ver una charla de Xavier Ducrohet del Equipo de Desarrolladores de Android en Google I / O aquí.
También hay otra charla sobre Android Studio de Xavier y Tor Norbye, también durante Google I / O aquí .
Gradle es lo que hace posible automatizar la construcción de proyectos complejos de Android que involucran 10s de miles de líneas de código de múltiples fuentes, proyectos, bibliotecas, etc. Puede generar múltiples APKs optimizados condicionalmente basados en una gran cantidad de especificaciones de configuración, si es Interesado, las otras respuestas proporcionan más detalles de este aspecto de Gradle.
Sin embargo, si eres nuevo en el desarrollo de Android, Gradle en el 99% de los casos es lo que detiene la construcción de tu proyecto. Es un sistema inescrutable y complejo que confunde eficazmente el proceso de compilación de Android y, esencialmente, hace que no esté disponible para desarrolladores inexpertos, es decir, para crear una aplicación de Android de nivel de entrada simple. como:
- Android APK estructura y ecosistema
- Android Studio
- Java Classpaths y dependencias
- Maravilloso
- Scripts de construcción de Gradle
- Muchas otras tecnologías complejas e interesantes.
Todas estas cosas son interesantes y útiles para los desarrolladores de Android, pero están lejos de ser fáciles y presentan una barrera de entrada formidable. Sospecho que lo que inspiró al OP a hacer esta pregunta es el sentimiento de frustración que inevitablemente golpea al desarrollador neófito después de pasar demasiado tiempo tratando de obtener una aplicación simple para construir y ser frustrado continuamente por Gradle. El problema se ve exacerbado perversamente por la abrumadora cantidad de documentación altamente técnica disponible para todas estas tecnologías. También para una gran cantidad de necesidades de desarrollo, Gradle es una exageración.
Una alternativa es escribir un script de shell que genere su proyecto mediante la automatización de las herramientas disponibles en el SDK de Android.Las ventajas de este enfoque son muchas, para empezar, probablemente sea la mejor manera de estudiar y comprender el proceso de construcción y el ecosistema de Android, y le permite controlar completamente cómo se crea su aplicación. Sin embargo, este enfoque es más adecuado para los jefes de tecnología profundamente irredimibles que para los noobs inexpertos que prueban Android.
Lo que llama la atención por su ausencia (por favor, infórmeme si hay algo así) es un IDE liviano de nivel de entrada con un conjunto de características reducido que simplifica el proceso de compilación al mismo tiempo que no lo oculta (por lo tanto, no es posible utilizar netbeans o eclipse) Utilice Gradle (lo que estaba mal con Ant). Debería facilitar la generación de archivos APK que se ajusten a algunas configuraciones comunes y usar una estructura de proyecto que pueda evolucionar a un proyecto completo de Android Studio en caso de que decida tomarlo de esa manera.
Gradle es para el lenguaje Groovy JVM lo que ant es para Java. Básicamente, es la herramienta de construcción de Groovy. A diferencia de Ant, se basa en el lenguaje completo Groovy. Por ejemplo, puede escribir el código del script Groovy en el script Gradle para hacer algo en lugar de confiar en un idioma de dominio específico.
No conozco la integración específica de IntelliJ, pero imagina que puedes "extender" Groovy de forma que puedas escribir primitivos de lenguaje "de construcción" específicos y que se conviertan en parte del lenguaje de Groovy. (La metaprogramación de Groovy es toda una discusión en sí misma). IntelliJ / Google podría usar Gradle para construir un lenguaje de compilación de muy alto nivel, sin embargo, es un lenguaje de compilación en un estándar abierto y ampliable.
Gradle es un sistema de compilación . Los sistemas de compilación son herramientas de software diseñadas para automatizar el proceso de compilación de programas. Los sistemas de compilación vienen en varias formas y se utilizan para una variedad de tareas de compilación de software. Mientras que su objetivo principal es crear ejecutables de manera eficiente.
Otro término relacionado es la automatización de la compilación, que es el proceso de automatizar la creación de una compilación de software y los procesos asociados, que incluyen: compilar el código fuente de la computadora en código binario, empaquetar el código binario y ejecutar pruebas automatizadas.
Algunos sistemas de compilación similares para otros idiomas son (vea la lista completa here ):
- Apache Ant y Apache Maven - Java
- sbt (Simple Build Tool) - para Scala (Play framework, etc.)
- AAP - Herramienta de construcción basada en Python
- Rastrillo (Apache Builder) - Ruby
- Leiningen para Clojure
Gradle es un kit de herramientas de compilación automatizada que puede integrarse en muchos entornos diferentes, no solo para proyectos de Android.
Aquí hay algunas cosas que puedes hacer con Gradle.
Se requiere una configuración mínima para nuevos proyectos porque Gradle tiene configuraciones predeterminadas para sus proyectos de Android Studio.
Declaración de dependencia. Puede declarar los archivos jar de dependencia o los archivos de biblioteca alojados en un servidor local o remoto.
Gradle genera automáticamente un directorio de prueba y un APK de prueba desde la fuente de su proyecto.
Si agrega toda la información necesaria, como
keyPassword
ykeyAlias
, a su archivo de compilación de Gradle, puede usar Gradle para generar archivos APK firmados.Gradle puede generar múltiples APK con diferentes paquetes y crear configuraciones desde un solo módulo.
Gradle es un kit de herramientas de compilación avanzada para Android que administra las dependencias y le permite definir la lógica de compilación personalizada. las características son como 1. Personalizar, configurar y extender el proceso de compilación. 2. Cree múltiples APKs para su aplicación con diferentes características usando el mismo proyecto. 3. Reutilizar código y recursos. Consulte este enlace http://developer.android.com/sdk/installing/studio-build.html
Gradle es un tipo de herramienta de compilación que construye el código fuente del programa. Así que es una parte importante de Android Studio y debe instalarse antes de comenzar a desarrollar su aplicación.
No tenemos que instalarlo por separado, porque Android Studio lo hace por nosotros cuando hacemos nuestro primer proyecto.
Gradle es una herramienta de compilación personalizada y utilizada para crear APK o conocida como paquete de paquetes de aplicaciones.
Puede encontrar todo lo que necesita saber sobre Gradle aquí: Guía del usuario del complemento Gradle
Objetivos del nuevo sistema de construcción.
Los objetivos del nuevo sistema de construcción son:
- Facilita la reutilización de código y recursos.
- Facilita la creación de varias variantes de una aplicación, ya sea para la distribución multi-apk o para diferentes versiones de una aplicación.
- Facilita la configuración, ampliación y personalización del proceso de construcción.
- Buena integración de IDE
¿Por qué Gradle?
Gradle es un sistema de compilación avanzado, así como un kit de herramientas de compilación avanzada que permite crear una lógica de compilación personalizada a través de complementos.
Estas son algunas de sus características que nos hicieron elegir Gradle:
- Dominio específico del lenguaje (DSL) para describir y manipular la lógica de compilación
- Los archivos de compilación se basan en Groovy y permiten la mezcla de elementos declarativos a través del DSL y el uso de código para manipular los elementos del DSL para proporcionar una lógica personalizada.
- Gestión de dependencias incorporada a través de Maven y / o Ivy.
- Muy flexible. Permite utilizar las mejores prácticas, pero no obliga a su propio modo de hacer las cosas.
- Los complementos pueden exponer su propio DSL y su propia API para que los archivos de compilación puedan usar.
- Buena API de herramientas que permite la integración de IDE
Una de las ventajas de Gradle que encontré es:
Gradle fue diseñado para compilaciones de múltiples proyectos que pueden llegar a ser bastante grandes, y admite compilaciones incrementales al determinar de manera inteligente qué partes del árbol de compilación están actualizadas, de modo que no será necesario volver a realizar ninguna tarea que dependa de esas partes. -ejecutado.
por @Brian Gardner:
Gradle es una herramienta de construcción extensa y un administrador de dependencias para proyectos de programación. Tiene un lenguaje específico de dominio basado en Groovy. Gradle también proporciona compatibilidad con la creación de convenciones para muchos tipos de proyectos, incluidos Java, Android y Scala.
Característica de Gradle:
- Gestión de la dependencia
- Usando la hormiga de Gradle
- Plugins Gradle
- Plugin de Java
- Plugin de Android
- Construcciones multiproyecto
Gradle
es un sistema de compilación avanzado así como un kit de herramientas de compilación avanzado que permite crear una lógica de compilación personalizada a través de complementos!
Ventajas:
- Dsl - Lenguaje específico de dominio, basado en groovy
- DAG - Gráfico Acíclico Dirigido
- Construcciones incrementales
- Modelo de dominio extensible
- Gradle está siempre al día.
- Antes de que se ejecute una tarea, Gradle toma una instantánea de la entrada y salida de su tarea.
- En caso de que la instantánea haya cambiado o no exista, Gralde volverá a ejecutar esta tarea.
Entradas de manifiesto
A través del DSL es posible configurar las siguientes entradas de manifiesto:
Variante de construcción
De forma predeterminada, el complemento de Android configura automáticamente el proyecto para crear tanto una versión de depuración como una versión de lanzamiento de la aplicación.
Dependencias
- Dependencias locales:
Si tiene archivos binarios en su sistema de archivos local del que depende un módulo, como los archivos JAR, puede declarar estas dependencias en el archivo de compilación para ese módulo.
- Dependencias remotas:
Primero se debe agregar el repositorio a la lista, y luego se debe declarar la dependencia de manera que Maven o Ivy declaren sus artefactos.
DEFINICIÓN: Gradle puede describirse como un mecanismo de construcción estructurado en el que proporciona al desarrollador las herramientas y la flexibilidad para administrar los recursos de un proyecto para crear construcciones que son smaller in size
, targeting specific requirements
para ciertos dispositivos de ciertas configuraciones
CONFIGURACIONES BASICAS
-
minimumSdk
-
maximumSdk
-
targettedSdk
-
versionCode
-
versionName
BIBLIOTECAS :: Podemos agregar bibliotecas de Android o cualquier otra biblioteca de terceros, además, según los requisitos, lo cual fue una tarea tediosa anteriormente. Si la biblioteca no se ajusta al proyecto existente, al desarrollador se le muestra un registro en el que la persona puede encontrar una solución adecuada para realizar cambios en el proyecto y poder agregar la biblioteca. Es solo una linea de dependencia.
GENERANDO VARIEDADES DE EDIFICIOS
Combinando tipos de compilación con sabores de compilación para obtener una variedad de variantes de compilación
==================== ====================
| BuildTypes | | ProductFlavours |
-------------------- ====================== --------------------
| Debug,Production | || || | Paid,Free,Demo,Mock|
==================== || || ====================
|| ||
VV VV
=================================================================
| DebugPaid, DebugFree, DebugDemo, DebugMock |
| ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
=================================================================
TAMAÑO REDUCTOR
Gradle ayuda a reducir el tamaño de la compilación generada al eliminar los recursos no utilizados y las cosas no utilizadas de las bibliotecas integradas
GESTIÓN DE PERMISOS
Podemos especificar ciertos permisos para ciertas construcciones agregando ciertos permisos en ciertos escenarios según los requisitos
EDIFICIOS PARA CIERTOS DISPOSITIVOS
Podemos administrar la generación generada para ciertos dispositivos que incluyen ciertas densidades y ciertos niveles de API. Esto ayuda en las implementaciones de productos en la tienda de aplicaciones de acuerdo con los requisitos de múltiples tipos de dispositivos
BUENA REFERENCIA
Me refiero a dos tutoriales para escribir la respuesta one , two
Gradel es una herramienta de construcción declarativa de propósito general. Es de propósito general porque puede usarse para compilar casi cualquier cosa que quiera implementar en el script de compilación. Es declarativo ya que no desea ver mucho código en el archivo de compilación, que no es legible y menos mantenible. Entonces, mientras que Gradle proporciona la idea de convenciones y una construcción simple y declarativa, también hace que la herramienta sea adaptable y que los desarrolladores puedan ampliarla. También proporciona una forma fácil de personalizar el comportamiento predeterminado y diferentes ganchos para agregar características de terceros.
Gradle combina las partes buenas de ambas herramientas y proporciona funciones adicionales y utiliza Groovy como lenguaje específico de dominio (DSL). Tiene la potencia y flexibilidad de la herramienta Ant con características de Maven como el ciclo de vida de la construcción y la facilidad de uso.
¿Por qué Gradle? ¿Porqué ahora?
La respuesta de la herramienta de construcción es agregar funcionalidad de scripting a través de mecanismos de extensión no estándar. Terminas mezclando código de scripting con XML o invocando scripts externos desde tu lógica de compilación. Es fácil imaginar que necesitará agregar más y más códigos personalizados a lo largo del tiempo. Como resultado, inevitablemente introduces una complejidad accidental y la capacidad de mantenimiento sale por la ventana.
Supongamos que desea copiar un archivo en una ubicación específica cuando está creando la versión de lanzamiento de su proyecto. Para identificar la versión, verifique una cadena en los metadatos que describen su proyecto. Si coincide con un esquema de numeración específico (por ejemplo, 1.0-RELEASE), copie el archivo del punto A al punto B. Desde una perspectiva externa, esto puede parecer una tarea trivial. Si tiene que confiar en XML, el lenguaje de compilación de muchas herramientas tradicionales, expresar esta lógica simple se vuelve bastante difícil.
Evolución de las herramientas de construcción de Java
La lógica de compilación de Java debe describirse en XML. XML es excelente para describir datos jerárquicos, pero no logra expresar el flujo del programa y la lógica condicional. A medida que la secuencia de comandos de compilación crece en complejidad, mantener el código de construcción se convierte en una pesadilla.
En Ant , haces que el objetivo JAR dependa del objetivo de compilación. Ant no da ninguna guía sobre cómo estructurar su proyecto. Aunque permite la máxima flexibilidad, Ant hace que cada script de compilación sea único y difícil de entender. Las bibliotecas externas requeridas por su proyecto generalmente se incorporan al control de versiones porque no existe un mecanismo automatizado para extraerlas de una ubicación central.
Maven 1 , lanzado en julio de 2004, trató de facilitar ese proceso. Proporcionó una estructura estandarizada de proyectos y directorios, así como la gestión de dependencias. Desafortunadamente, la lógica personalizada es difícil de implementar
Gradle se adapta perfectamente a esa generación de herramientas de construcción y satisface muchos de los requisitos de las herramientas de construcción modernas (Figura 1). Proporciona un DSL expresivo, una convención sobre el enfoque de configuración y una potente administración de dependencias. Hace el movimiento correcto para abandonar XML e introducir el lenguaje dinámico Groovy para definir su lógica de compilación. Suena convincente, ¿no?
Gradle combina las mejores características de otras herramientas de construcción.
Conjunto de características convincentes de Gradle
¿Por qué construir tus proyectos Java con Gradle en lugar de Ant o Maven?
La herramienta de compilación predeterminada para Android (y la nueva estrella de herramientas de compilación en la JVM) está diseñada para facilitar la creación de scripts de compilaciones complejas en varios idiomas. Sin embargo, ¿deberías cambiarlo si estás usando Ant o Maven?
La clave para desbloquear las potentes funciones de Gradle en su script de compilación reside en descubrir y aplicar su modelo de dominio, como se muestra en la imagen de abajo.
Gradle no puede conocer todos los requisitos específicos para la construcción de su empresa. Al exponer los ganchos en las fases del ciclo de vida, Gradle permite monitorear y configurar el comportamiento de ejecución del script de compilación.
Gradle establece un vocabulario para su modelo al exponer un DSL implementado en Groovy. Cuando se trata de un dominio de problema complejo, en este caso, la tarea de crear software, poder usar un lenguaje común para expresar su lógica puede ser una herramienta poderosa.
Otro ejemplo es la forma en que puede expresar dependencias a bibliotecas externas, un problema muy común que se resuelve con las herramientas de compilación. Gradle fuera de la caja le proporciona dos bloques de configuración para su script de compilación que le permite definir las dependencias y los repositorios de los que desea recuperarlos. Si los elementos DSL estándar no se ajustan a sus necesidades, incluso puede introducir su propio vocabulario a través del mecanismo de extensión de Gradle.
Integración con otras herramientas de construcción
Gradle juega bien con sus antecesores ''Ant, Maven e Ivy, como se muestra en la imagen de abajo.
Automatizando su proyecto desde la compilación hasta la implementación
En imagen: Etapas de un oleoducto de despliegue.
Compilando el codigo
Ejecución de pruebas de unidad e integración.
Realizando análisis de código estático y generando cobertura de prueba.
Creando la distribución
Aprovisionamiento del entorno de destino.
Desplegando el entregable
Realización de humos y pruebas funcionales automatizadas.
Me refiero a dos tutoriales para escribir la respuesta one , two
En términos sencillos, Gradle es una herramienta proporcionada por Android Studio para implementar dos procesos importantes:
- Construye nuestros proyectos
- Empaquete AndroidManifest.xml, carpeta res y código binario en un archivo zip especialmente formateado llamado APK
Gradle = Groovy + Cradle Hans Dockter comentario en el foro
La confusión es un poco innecesaria cuando podría haberse llamado "Build" o algo así en Android Studio.
Nos gusta hacer las cosas difíciles para nosotros mismos en la comunidad de Desarrollo.