Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Qué es Gradle en Android Studio?

Gradle es poco confuso para mí y también para el nuevo desarrollador de Android. ¿Puede alguien explicar qué gradle en Android Studio es y cuál es su propósito? ¿Por qué Gradle está incluido en Android Studio?

  • Cómo cambiar el directorio libs en Gradle?
  • Las configuraciones de Gradle no funcionan como se espera en el nuevo sistema de compilación de Android
  • Android Studio publica una biblioteca local
  • ¿Pueden las bibliotecas de Android en Gradle tener otras bibliotecas de Android como dependencias?
  • Habilitar Soporte MultiDex en Android para lograr métodos de 65K + en Eclipse
  • Cómo utilizar múltiples res.srcDirs y anular algunos recursos con gradle
  • EXCEPCIÓN INESPERADA DE SUPERIOR NIVEL: com.android.dex.DexException: Múltiples archivos dex definen
  • Gradle no puede eliminar directorio debido a .fuse_hidden
  • 21 Solutions collect form web for “¿Qué es Gradle en Android Studio?”

    Respuesta corta

    Gradle es un sistema de construcción.

    Respuesta larga

    Antes de Android Studio utilizabas Eclipse para tus propósitos de desarrollo y, lo más probable es que no supieras cómo construir tu APK Android sin Eclipse.

    Puede hacerlo en la línea de comandos, pero tiene que aprender lo que hace cada herramienta (dx, aapt) en el SDK. Eclipse nos salvó a todos de estos bajos pero importantes detalles fundamentales dándonos su propio sistema de construcción.

    ¿Ahora, usted se ha preguntado siempre porqué la carpeta del res está en el mismo directorio que su carpeta del 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 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 utiliza algunas convenciones: un ejemplo de una es especificar el directorio que contiene los archivos de origen (en Eclipse es la carpeta \src ) o archivos de recursos (en Eclipse es \res carpeta).

    Ahora, para automatizar todas estas tareas, tiene que haber un script; Puede escribir su propio sistema de compilación utilizando scripts de shell en linux o sintaxis de archivos por lotes en ventanas. ¿Lo tengo?

    Gradle es otro sistema de construcción que toma las mejores características de otros sistemas de construcción y las combina en una sola. Se mejora basado en sus defectos. 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 plugins . Esto significa que si usted tiene su propio lenguaje de programación y quiere automatizar la tarea de construir algún paquete (como un JAR para Java) de fuentes, entonces puede escribir un complemento completo en Java o Groovy (o Kotlin, véase aquí ), y Distribuirlo al resto del mundo.

    ¿Por qué Google lo usó?

    Google vio uno de los sistemas de construcción más avanzados del mercado y se dio cuenta de que podía escribir scripts propios con poca o ninguna curva de aprendizaje, y sin aprender Groovy o cualquier otro idioma nuevo. Así que escribieron el complemento de Android para Gradle.

    Debe haber visto archivos build.gradle en su proyecto. Ahí es donde puede escribir scripts para automatizar sus tareas. El código que vio en estos archivos es código Groovy. Si escribe System.out.println("Hello Gradle!"); Entonces se imprimirá en su consola.

    ¿Qué se puede hacer en un script de compilación?

    Un ejemplo simple es que usted tiene que copiar algunos archivos de un directorio a otro antes de que ocurra el proceso de creación real. Un script de compilación Gradle puede hacer esto.

    Es la nueva herramienta de creación que Google quiere utilizar para Android. Se está utilizando debido a que es más extensible y útil que la hormiga. Su objetivo es mejorar la experiencia de los desarrolladores.

    Puedes ver una charla de Xavier Ducrohet del Equipo de Desarrolladores de Android en Google I / O aquí.

    También hay otra charla en Android Studio de Xavier y Tor Norbye, también durante Google I / O aquí .

    1 – Información básica de Gradle .

    2 – Conceptos de Gradle .

    3 – La fase de inicialización.

    4 – La fase de inicialización (Cont.).

    5 – ¿Qué es Gradle ?

    6 – La Fase de Configuración.

    Gradle

    Introduzca aquí la descripción de la imagen

    Introduzca aquí la descripción de la imagen

    Introduzca aquí la descripción de la imagen

    Introduzca aquí la descripción de la imagen

    Introduzca aquí la descripción de la imagen

    Vea este LINK

    Gradle es un sistema de compilación que se ejecuta en Android Studio .

    En otros idiomas, por ejemplo:

    • Hormiga y Maven de Java
    • Rastrillo de Ruby
    • AAP de C
    • NAnt de .NET
    • Hacer en Linux

    Aquí está la explicación detallada sobre lo que es Gradle y cómo usarlo en el estudio de android.

    Explorando los archivos Gradle

    1. Cada vez que crea un proyecto en Android Studio, el sistema de generación genera automáticamente todos los archivos de compilación de Gradle necesarios.

    Gradle Build Files

    1. Los archivos de compilación de Gradle utilizan un lenguaje específico de dominio o 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.

    2. Los proyectos de Android Studio consisten en uno o más módulos, que son componentes que puede crear, probar y depurar independientemente. Cada módulo tiene su propio archivo de compilación, por lo que cada proyecto de Android Studio contiene dos tipos de archivos de compilación de Gradle:

    3. Archivo de generación de nivel superior: Aquí encontrará las opciones de configuración comunes a todos los módulos que componen su proyecto.

    4. Archivo de compilación a nivel de módulo : Cada módulo tiene su propio archivo de compilación de Gradle que contiene la configuración de compilación específica del módulo. Pasará la mayor parte del tiempo editando archivos de compilación a nivel de módulo en lugar del archivo de compilación de nivel superior de su proyecto.

    Para echar un vistazo a estos archivos build.gradle, abra el panel Project de Android Studio (seleccionando la pestaña Proyecto) y expanda la carpeta Gradle Scripts. Los dos primeros elementos de la carpeta Gradle Scripts son los archivos de compilación Gradle de nivel de módulo y de nivel de módulo

    Archivo de generación Gradle de nivel superior

    Cada proyecto de Android Studio contiene un único archivo de generación Gradle de nivel superior. Este archivo build.gradle es el primer elemento que aparece en la carpeta Gradle Scripts y está claramente marcado como Project.

    La mayoría de las veces, no necesitará realizar cambios en este archivo, pero todavía es útil comprender su contenido y el rol que desempeña en su proyecto.

    Módulo de nivel Gradle construir archivos

    Además del archivo de generación de Gradle a nivel de proyecto, cada módulo tiene un archivo de generación de Gradle propio. A continuación se muestra una versión anotada 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 Gradle Scripts 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 estos archivos desempeñan dentro de su proyecto.

    Gradle-wrapper.properties (versión Gradle)

    Este archivo permite a otras personas para construir su código, incluso si no tienen Gradle instalado en su máquina. Este archivo comprueba 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 componen su proyecto.

    Gradle.properties (Propiedades del proyecto)

    Este archivo contiene información de configuración para todo el proyecto. Está vacío por defecto, pero puede aplicar una amplia gama de propiedades a su proyecto añadiéndolas a este archivo.

    Local.properties (SDK Location)

    Este archivo le dice al complemento de Android Gradle donde puede encontrar su instalación de SDK de Android.

    Tenga en cuenta que local.properties contiene información específica de la instalación local del SDK de Android. Esto significa que no debe mantener este archivo bajo control de origen.

    Para más detalles ir a través de –

    Lea: http://code.tutsplus.com/tutorials/the-ins-and-outs-of-gradle–cms-22978

    Tengo la comprensión clara de gradle de esto.

    Gradle es un tipo de herramienta de compilación que genera el código fuente del programa. Por lo tanto, 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 el Android Studio lo hace por nosotros, cuando hacemos nuestro primer proyecto.

    Gradle es un sistema de construcción . Los sistemas de compilación son herramientas de software diseñadas para automatizar el proceso de compilación del programa. Los sistemas de compilación vienen en varias formas y se utilizan para una variedad de tareas de compilación de software. Si bien su objetivo principal es crear de forma eficiente ejecutables.

    Otro término relacionado es la automatización de generación que es el proceso de automatizar la creación de una compilación de software y los procesos asociados incluyendo: compilación de código fuente de equipo en código binario, código binario de empaquetado y ejecución de pruebas automatizadas.

    Pocos sistemas de construcción similares para otros idiomas son (ver lista completa aquí ):

    1. Apache Ant y Apache Maven – Java
    2. Sbt (Simple Build Tool) – para Scala (Marco de juego, etc)
    3. AAP – Herramienta de compilación basada en Python
    4. Rastrillo (Apache Builder) – Ruby
    5. Leiningen para Clojure

    Usted puede encontrar todo lo que necesita saber acerca de Gradle aquí: Gradle Plugin User Guide

    Objetivos del nuevo sistema de compilación

    Los objetivos del nuevo sistema de construcción son:

    • Facilitar 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 sabores de una aplicación
    • Facilita la configuración, ampliación y personalización del proceso de creación
    • Buena integración IDE

    ¿Por qué Gradle?

    Gradle es un avanzado sistema de construcción, así como un conjunto de herramientas de construcción avanzada que permite crear una lógica de creación personalizada a través de complementos.

    Estas son algunas de sus características que nos hicieron elegir Gradle:

    • Lenguaje específico de dominio (DSL) para describir y manipular la lógica de compilación
    • Los archivos de construcción son basados ​​en Groovy y permiten mezclar elementos declarativos a través del DSL y usar código para manipular los elementos DSL para proporcionar lógica personalizada.
    • Gestión de dependencias integrada a través de Maven y / o Ivy.
    • Muy flexible. Permite usar las mejores prácticas pero no fuerza su propia manera de hacer las cosas.
    • Los complementos pueden exponer su propio DSL y su propia API para los archivos de compilación que se utilizarán.
    • Buena API de herramientas que permite la integración de IDE

    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 dependencias listadas en project.clj.
    • Leiningen obtiene las dependencias gracias a Clojars y Maven.
    • El proyecto compila.

    Experiencia típica de Android Studio / Gradle:

    • Msgstr "Importar mi proyecto de Eclipse".
    • Proyecto OK importado.
    • Gradle lo está haciendo es thang … espera … espera … espera … Gradle ha terminado.
    • Compilar … no puede compilar porque no sé lo que es una X / no puede encontrar la biblioteca Y.

    No estoy seguro de que sea culpa de Gradle exactamente. Pero la "importación del proyecto Eclipse" parece bastante escamosa. Para toda la supuesta sofisticación de Gradle y las virtudes de un sistema de compilación, Android Studio simplemente no parece importar muy bien las dependencias de construcción o el proceso de creación de Eclipse.

    No le indica cuándo no se pudo importar un gráfico de dependencia completo. El estudio de Android no proporciona ninguna ayuda útil o consejos sobre cómo resolver el problema. No le indica dónde puede buscar manualmente en las carpetas de Eclipse. No le dice qué biblioteca parece estar faltando. O ayudar a buscar Maven etc para ellos.

    En 2016 cosas como Leiningen / Clojars, o npm del nodo, o pip de Python, o el Debian apkg (y estoy seguro de que muchos gestores de paquetes similares para otros lenguajes y sistemas) todo funciona maravillosamente … las dependencias que faltan son cosa del pasado.

    Excepto con Android. Android Studio es ahora el único lugar donde todavía parecen experimentar el infierno de la falta de dependencia.

    Estoy inclinado a decir que esto es culpa de Google. Ellos rompieron el ecosistema de Android (y miles de proyectos Android existentes / tutoriales en línea) cuando decidieron cavalierly cambiar de Eclipse a Android Studio / Gradle sin producir un proceso de conversión robusto. Las personas cuyos proyectos trabajan en Eclipse no los están adaptando a AS (presumiblemente porque es un dolor para ellos). Y las personas que tratan de usar esos proyectos en AS están golpeando los mismos problemas.

    Y de todos modos, si Gradle es este sistema de compilación super-potente, ¿por qué todavía estoy manejando un montón de otras dependencias en el gestor sdk? ¿Por qué no puede un proyecto que necesita, digamos, que el ndk especifique esto en su archivo Gradle para que se instale automáticamente y construya contra cuando sea necesario? ¿Por qué NDK es especial? Similarmente para las plataformas objetivo? ¿Por qué estoy instalándolos explícitamente en el IDE en lugar de sólo comprobar mi proyecto en contra de ellos y tener todo esto ordenado para mí detrás de las escenas?

    Gradle es un avanzado sistema de construcción, así como un conjunto de herramientas avanzadas de construcción que permite crear la lógica de construcción personalizada a través de plugins!

    Dsl – lenguaje específico del dominio, basado en groovy

    Diagrama acíclico dirigido por DAG

    Construcciones incrementales

    Extensible modelo de dominio Gradle está siempre al día!

    Antes de ejecutar 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:

    Generar variante: de forma predeterminada, el complemento de Android configura automáticamente el proyecto para crear una versión de depuración y una de versión de la aplicación.

    Dependencias-

    Dependencias locales:

    Si tiene archivos binarios en el 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, a continuación, la dependencia debe declararse de forma que Maven o Ivy declaren sus artefactos.

    Una ventaja de Gradle que encontré es:

    Gradle fue diseñado para las construcciones de proyectos múltiples que pueden llegar a ser bastante grandes, y soporta construcciones incrementales mediante la determinación inteligente de qué partes del árbol de construcción están actualizadas, de modo que cualquier tarea dependiente de esas partes no tendrá que ser re -ejecutado.

    DEFINICIÓN :: Gradle puede ser descrito como un mecanismo de construcción estructurado donde proporciona a un desarrollador las herramientas y flexibilidad para gestionar los recursos de un proyecto para crear construcciones de smaller in size , targeting specific requirements para ciertos dispositivos de determinadas configuraciones


    CONFIGURACIONES BÁSICAS

    1. minimumSdk
    2. maximumSdk
    3. targettedSdk
    4. versionCode
    5. versionName

    BIBLIOTECAS :: Podemos agregar bibliotecas de android o cualquier otra biblioteca de terceros además de por los requisitos fáciles que era una tarea tediosa anterior. Si la biblioteca no se ajusta al proyecto existente, se muestra al desarrollador un registro en el que la persona puede encontrar una solución adecuada para realizar cambios en el proyecto para que se pueda agregar la biblioteca. Es sólo una línea de dependencia


    GENERADOR DE VARIEDADES DE EDIFICIOS

    Combinando tipos de compilación con sabores de compilación para obtener varidades de los variantes de compilación

      ==================== ==================== | BuildTypes | | ProductFlavours | -------------------- ====================== -------------------- | Debug,Production | || || | Paid,Free,Demo,Mock| ==================== || || ==================== || || VV VV ================================================================= | DebugPaid, DebugFree, DebugDemo, DebugMock | | ProductionPaid, ProductionFree, ProductionDemo, ProductionMock | ================================================================= 

    TAMAÑO REDUCIDO

    Gradle ayuda a reducir el tamaño de la generación generada mediante la eliminación de los recursos no utilizados también las cosas no utilizadas de las bibliotecas integradas


    ADMINISTRACIÓN DE PERMISOS

    Podemos Especificar ciertos permisos para ciertas compilaciones agregando ciertos permisos en ciertos escenarios basados ​​en requisitos


    CONSTRUCCIONES PARA CIERTOS DISPOSITIVOS

    Podemos gestionar generar generación para ciertos dispositivos que incluyen ciertas densidades y ciertos niveles de api. Esto ayuda en las implementaciones del producto en la tienda de aplicaciones según los requisitos de varios tipos de dispositivos


    BUENA REFERENCIA

    Tutoriales de Vogella

    Gradle es para el lenguaje Groovy JVM qué hormiga es para Java. Básicamente, es la herramienta de construcción de Groovy. A diferencia de Ant, se basa en el lenguaje Groovy completo. Por ejemplo, puede escribir código de script Groovy en el script Gradle para hacer algo en lugar de confiar en un lenguaje de dominio específico.

    No conozco la integración específica de IntelliJ, pero imagínate que podrías "extender" Groovy de tal manera que puedas escribir primitivas de lenguaje de "compilación" específicas y simplemente se convirtieron en parte del lenguaje 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 construido sobre un estándar expandible y abierto.

    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 la creación de una lógica de compilación personalizada.

    El archivo APK (paquete de aplicación de Android) es un archivo zip con formato especial que contiene

    • Código de byte
    • Recursos (imágenes, interfaz de usuario, XML, etc.)
    • Archivo de manifiesto

    Un archivo apk se firmó y se envió al dispositivo mediante ADB (Android Debug Bridge) donde se ejecuta.

    Gradle es un conjunto de herramientas de construcción avanzada para android que gestiona las dependencias y le permite definir una lógica de compilación personalizada. Las características son como 1. Personalizar, configurar y ampliar el proceso de construcción. 2. Cree varios APK para su aplicación con diferentes características utilizando el mismo proyecto. 3. Reutilizar el código y los recursos. Consulte este enlace http://developer.android.com/sdk/installing/studio-build.html

    El sistema de compilación Gradle está diseñado para soportar escenarios complejos en la creación de aplicaciones de Android:

    Multi-distribución : la misma aplicación debe ser personalizada para varios clientes o empresas

    Multi-apk: soporta la creación de múltiples apk para diferentes tipos de dispositivos mientras se reutilizan partes del código

    Gradle es un conjunto de herramientas automatizado de construcción que puede integrarse en muchos entornos diferentes, no sólo para proyectos de Android.

    Aquí hay pocas cosas que puedes hacer con gradle.

    • Configuración mínima requerida para nuevos proyectos porque Gradle tiene configuraciones por defecto para sus proyectos de estudio de Android.

    • Declaración de dependencia. Puede declarar archivos jar de dependencia o archivos de biblioteca alojados en un servidor local o remoto.

    • Gradle genera automáticamente un directorio de prueba y un APK de prueba desde el origen de su proyecto.

    • Si agrega toda la información necesaria, como keyPassword y keyAlias , a su archivo de compilación Gradle, puede utilizar Gradle para generar APK firmados.

    • Gradle puede generar múltiples APK con diferentes configuraciones de paquete y de construcción desde un solo módulo.

    Por @Brian Gardner:

    Gradle es una herramienta de compilació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 soporte para construir-por-convención para muchos tipos de proyectos incluyendo Java, Android y Scala.

    Característica de Gradle:

    1. Gestión de Dependencias
    2. Usando la hormiga de Gradle
    3. Plugins Gradle
    4. Java Plugin
    5. Plugin de Android
    6. Construcción de proyectos múltiples

    Gradle es una herramienta de construcción personalizada y utilizada para la construcción de APK o conocido como paquete de paquete de aplicación.

    Para una comprensión más fundamental y completa de gradle y build system pago este curso de udacity creado por los ingenieros de Gradle ellos mismos.

    Gradle para Android y Java

    Un gradle es algo para mantenerte despierto por la noche, en contraposición a una "cuna" que es para ayudarte a dormir

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.