Cómo entender Gradle en lenguaje sencillo
De Zhihu:
¿Cómo entender Gradle en lenguaje sencillo?
Antes usaba Eclipse y ADT para desarrollar proyectos de Android. No tenía una buena comprensión de los principios básicos de Eclipse, así que comencé a desarrollarlo directamente sin pensar demasiado. Ahora tengo un nuevo proyecto entre manos que usa Android Studio. También escuché el nombre AS, pero debido a mi conocimiento limitado, no puedo entender Gradle en el proceso de aprendizaje de AS en estos días, y busqué uno. Mucha información, pero todos lo describen de manera muy profesional, así que me gustaría preguntarles a todos si hay alguna explicación fácil de entender para describirlo. Gradle, ¿qué es, para qué se utiliza y qué ventajas tiene respecto a los mecanismos de Eclipse y ADT a la hora de compilar programas de Android?
ghui?
Gracias
Gradle es una herramienta de compilación de automatización de proyectos basada en los conceptos de Apache Ant y Apache Maven. Utiliza un lenguaje específico de dominio basado en Groovy para declarar la configuración del proyecto en lugar del XML tradicional. Los idiomas admitidos actualmente se limitan a Java, Groovy y Scala, y hay planes para admitir más lenguajes en el futuro.
Lo anterior es la explicación de Wiki sobre Gradle. Creo que las personas que no han estado expuestas a la construcción no podrán entenderlo. Yo era igual en aquel entonces. Lo siguiente es mi comprensión común de Gradle:
El desarrollo de software enfatiza la reutilización del código. La reutilización puede hacer que los proyectos sean más fáciles de mantener y requieran menos código... Los desarrolladores pueden lograr diversos grados de reutilización de código mediante herencia, combinación, módulos funcionales, etc. Pero no sé si alguna vez lo ha pensado. El desarrollo de software también es un tipo de trabajo de ingeniería. No se trata solo de escribir código, sino que también implica la gestión de diversos proyectos (dependencia, empaquetado, implementación, lanzamiento y gestión de diferencias). canales... ).
Por ejemplo
Estoy desarrollando Android. Necesito saber que hay n mercados de Android, n marcas de teléfonos móviles, n tamaños de teléfonos móviles...
if(isMoto){hacer algo} else if(isMoto) {hacer algo} else if(isHuawei){hacer algo}....
Gestión de diferencias
p >Pero ambas soluciones tienen sus propias deficiencias, especialmente la primera solución, que tiene mucha duplicación de código. Este último es un poco mejor, pero esta diferencia es de tiempo de ejecución, no estática. La lógica de procesamiento en los teléfonos Moto no tiene ningún impacto en los teléfonos Huawei, pero la lógica de procesamiento de los teléfonos Moto también se puede lograr a través de Gradle. sabor del producto y tipo de construcción. El control puede referirse a cómo implementar un conjunto de códigos a través de Gradle para desarrollar APK con diferentes características. PorGhui
Hablando del tema multicanal anterior, diferentes canales generalmente corresponden a diferentes números de canal. puedes modificar un paquete. Es una forma puramente manual de generar tu paquete multicanal creando un paquete, pero se dice que la aplicación de Android de los sitios web de compras grupales nacionales ya tiene más de 100 canales. ¿Qué está pasando? Los paquetes se empaquetan una y otra vez, y la diferencia entre estos paquetes anteriores es muy pequeña (solo el número de canal es diferente) y deben reutilizarse al escribir código. A través de Gradle, se puede usar un comando para empaquetar todos los canales. y se puede utilizar un comando para empaquetar paquetes para el canal especificado. Para complicar más las cosas, es posible que necesites diferentes canales correspondientes a diferentes archivos de firma, diferentes íconos, diferentes direcciones de servidor... todo lo cual se puede lograr fácilmente a través de Gradle.
Gestión de dependencias:
Al desarrollar software, es posible que deba depender de varios archivos jar y bibliotecas.
Por supuesto, puedes descargar el .jar/library localmente y copiarlo en tu proyecto, pero no sé si has oído hablar de algo llamado almacén central en el extranjero. En este almacén puedes encontrar todos los frascos que puedas imaginar. ¿Nunca has oído hablar del motor de búsqueda del repositorio central jar, aar...? Aquí puedes encontrar todas las dependencias que necesitas, solo necesitas especificar una coordenada como esta:
No necesita preocuparse por el resto de la búsqueda de dependencias, la descarga, la adición a classpath y otras operaciones. Los beneficios de mantener dependencias de esta manera son los siguientes: p>
No necesita preocuparse por otras operaciones como buscar, descargar y agregar dependencias de classpath. Los beneficios de mantener las dependencias de esta manera son los siguientes:
Las dependencias no van a su repositorio de control de versiones (almacenadas en caché en ~/.gradle/ de forma predeterminada)
Desinstale y cargue dependencias cómodamente (esto es solo una dependencia de coordenadas que no es necesario eliminar)
Descargar dependencias convenientemente (esto es solo una dependencia de coordenadas que no es necesario eliminar)
Descargar dependencias convenientemente que no es necesario eliminar Dependencias.
Conveniente para la gestión de versiones, como se muestra en la Figura 2.3.3 anterior, es el número de versión de Picasso. Si se cambia a +, significa descargar la última versión desde el almacén central.
La misma dependencia no existe en diferentes proyectos. Habrá copias duplicadas (solo existe una copia en ~/.gradle)