update ¿Qué es Gradle en Android Studio?




update gradle android studio (18)

En términos sencillos, Gradle es una herramienta proporcionada por Android Studio para implementar dos procesos importantes:

  1. Construye nuestros proyectos
  2. Empaquete AndroidManifest.xml, carpeta res y código binario en un archivo zip especialmente formateado llamado APK

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?


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


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.


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?


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


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.


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

  1. minimumSdk
  2. maximumSdk
  3. targettedSdk
  4. versionCode
  5. 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

Tutoriales de Vogella


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

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 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.


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:

  1. Gestión de la dependencia
  2. Usando la hormiga de Gradle
  3. Plugins Gradle
  4. Plugin de Java
  5. Plugin de Android
  6. Construcciones multiproyecto

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 ):

  1. Apache Ant y Apache Maven - Java
  2. sbt (Simple Build Tool) - para Scala (Play framework, etc.)
  3. AAP - Herramienta de construcción basada en Python
  4. Rastrillo (Apache Builder) - Ruby
  5. Leiningen para Clojure

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.


Gradle es una herramienta de compilación personalizada y utilizada para crear APK o conocida como paquete de paquetes de aplicaciones.


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 y keyAlias , 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 sistema de compilación que se ejecuta en Android Studio .

En otros idiomas por ejemplo:


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.







build-automation