Usando Android Studio para explicar la aplicación de Gradle en proyectos de Android (1)

Sustantivos en este artículo:

Gradle/Android/Android Studio/complemento gradle de Android
En este artículo, AS significa Android Studio y el complemento gradle significa complemento gradle de Android.

Contenido de este artículo:

  1. ¿Qué es Gradle?
  2. Características de Gradle
  3. La relación entre gradle y android studio
  4. archivos gradle en el proyecto de Android
  5. Extensión: use gradle sin IDE

¿Qué es Gradle?

Gradle es una herramienta de código abierto para la construcción automatizada de proyectos basada en JVM. Utiliza un lenguaje específico de dominio (DSL) basado en Groovy para declarar la configuración del proyecto, principalmente para aplicaciones Java.
¿Qué son las herramientas de construcción?
Una herramienta de compilación es un programa que automatiza el proceso de generación de una aplicación ejecutable (apk) a partir del código fuente (java). La construcción implica compilar, vincular y empaquetar código en un formato utilizable o ejecutable.
Por qué utilizar herramientas de compilación o automatización de compilación
El proceso general de generación de una aplicación a partir del código fuente es el siguiente:

  • Descargar paquetes de dependencia
  • Compilar el código fuente en código binario
  • Empaquetar el código binario generado
  • Realizar pruebas unitarias
  • Implementar en el sistema

Este proceso es bastante engorroso de operar manualmente y, en el proceso de escribir el código fuente, a menudo es necesario generar un archivo ejecutable a partir del código fuente e instalarlo en el sistema para su depuración. En proyectos pequeños, el proceso de compilación se puede realizar manualmente. llamado, pero en proyectos grandes Es muy poco práctico y difícil realizar un seguimiento de lo que se debe construir, en qué orden y qué dependencias existen en el proyecto durante el proceso de construcción. El uso de herramientas automatizadas hará que el proceso de construcción sea más continuo y permitirá a los desarrolladores centrarse más en el desarrollo del proyecto.

Características de Gradle

Arriba aprendimos que Gradle es una herramienta para generar archivos ejecutables a partir del código fuente, pero ¿cuáles son las funciones específicas de Gradle? ¿Qué papel juegan estas características en este proceso?
Las funciones específicas de Gradle se dividen en las siguientes categorías:

  • Gestión de dependencia

En el desarrollo de proyectos, a menudo confiamos en bibliotecas de terceros. Los pasos para usar bibliotecas de terceros son descargar primero el archivo jar y luego agregar el archivo jar a la biblioteca del proyecto, y luego se puede usar el proyecto. Sin embargo, una vez que se actualiza el archivo jar, es necesario volver a descargarlo. Descargue un nuevo paquete jar y reemplácelo nuevamente. Esta carga de trabajo también es muy problemática cuando el proyecto depende de muchos paquetes jar. Se puede decir que este método solo tiene dependencias y no gestión.
La forma en que Gradle se refiere a bibliotecas de terceros es la siguiente:
compilar 'com.android.support:support-v4:24.0.1'
¿No es muy conveniente confiar en dependencias como esta? Y es muy intuitivo. Puede ver directamente la dirección de origen. Si actualiza, simplemente cambie el número de versión. Esta es la llamada gestión de dependencias. Esta gestión de dependencias se limita a los paquetes jar desarrollados por Google .

  • compilar

El proceso de compilar código fuente o recursos de Java en archivos .class.

  • Embalar

El proceso de empaquetar un archivo .class en un archivo apk.

  • firmar

Características del sistema Android y de la tienda de aplicaciones. Para ejecutar una apk en el sistema Android o publicar una apk en la tienda de aplicaciones de Android, la apk debe estar firmada.

  • correr

El proceso de los usuarios que usan apk incluye la carga de clases, la ejecución de clases, etc., es decir, el proceso de ejecutar apk en el sistema de destino.

La relación entre gradle y android studio

Gradle es desarrollado por la empresa Gradle. Android Studio es una herramienta de desarrollo integrada desarrollada por Google. Se utiliza principalmente para el desarrollo y depuración de proyectos de Android. Es compatible con la herramienta de compilación Gradle. La empresa Gradle ha desarrollado especialmente el complemento Android Gradle para Android Studio. para soportar proyectos Android de construcción.
Al instalar Android Studio, se instalarán las últimas versiones de Gradle y del complemento de Android Gradle compatibles con la versión actual de AS. Las rutas predeterminadas son: Ruta predeterminada de
Gradle: C:\Users\user.gradle\wrapper\dists
Ruta predeterminada del complemento de Gradle de Android: C :\Users\Administrator.gradle\caches\modules-2\files-2.1\com.android.tools.build\gradle

Las otras versiones de gradle se pueden descargar manualmente desde el sitio web oficial y luego descomprimirlas en la ruta predeterminada. El complemento Android Gradle se utiliza en el proyecto. Se descargará automáticamente cuando la computadora esté funcionando, no se requiere descarga manual, pero tenga en cuenta que la computadora debe estar conectada a Internet antes de poder descargarse automáticamente .
Cabe señalar que Gradle es desarrollado por la compañía Gradle y tiene reglas de número de versión. El número de versión del complemento Gradle de Android lo define Google y tiene otras reglas de definición. Las versiones de Gradle y el complemento Gradle de Android no se corresponden, así que preste atención cuando La correspondencia de versiones y la versión de Gradle correspondiente a la versión del complemento de Gradle de Android tienen restricciones. Por ejemplo: el complemento de Gradle de Android 3.5.0+ solo puede corresponder a las versiones de Gradle 5.4.1 ~ 5.6.4.

archivos gradle en el proyecto de Android

AS construye el proyecto de Android a través de la herramienta de compilación de Gradle ¿Qué usa Gradle para construir el proyecto de Android?
Hay archivos de configuración de Gradle correspondientes en cada proyecto de Android. Gradle construye el proyecto de Android leyendo estos archivos de configuración. Los archivos de Gradle incluidos en cada proyecto son los siguientes:
Insertar descripción de la imagen aquí

  • Carpeta .gradle debajo de la carpeta del proyecto.
    Esta carpeta es un archivo temporal generado cuando se crea el proyecto y se puede eliminar.
  • La carpeta gradle debajo de la carpeta del proyecto
    tiene una carpeta contenedora en esta carpeta. Hay un paquete jar y un archivo de configuración gradle-wrapper.properties en la carpeta contenedora. Esta carpeta significa paquete gradle.
    ¿Qué es el embalaje de Gradle? ¿Por qué tener un envoltorio Gradle?
    El contenedor de Gradle existe para admitir múltiples proyectos, es decir, para permitir que cada proyecto tenga una versión de Gradle diferente.
    La explicación específica es la siguiente:
    De forma predeterminada, cree un nuevo proyecto y luego haga clic en Ejecutar en AS. De manera predeterminada, Gradle se instalará directamente para usted. No necesitamos instalar Gradle adicionalmente, pero de hecho, este Gradle no es el verdadero Gradle Se llama Gradle Wrapper, que significa embalaje Gradle, ¿qué significa? Supongamos que tenemos varios proyectos localmente, uno es un proyecto antiguo que todavía usa la versión Gradle 1.0 y el otro es un proyecto relativamente nuevo que usa la versión Gradle 2.0, pero definitivamente desea ejecutar ambos proyectos al mismo tiempo. Si solo instalas Gradle 1.0, definitivamente no funcionará. Entonces, para resolver este problema, Google lanzó el concepto de Gradle Wrapper, que configura una versión específica de Gradle en cada uno de tus proyectos. Puedes entenderlo como la versión local de cada proyecto de Android Hay un pequeño Gradle, a través del cual cada proyecto puede soportar la construcción del proyecto con diferentes versiones de Gradle.
    El archivo gradle-wrapper.jar existe en la ruta de instalación cuando se instala AS. La ruta en el archivo de instalación es D:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle\wrapper\gradle\ wrapper , copie una copia a la carpeta contenedora al crear un nuevo proyecto. Este archivo es el mismo en todos los proyectos de Android.
    La ruta y la versión de Gradle se definen en el archivo gradle-wrapper.properties de la siguiente manera:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
  • build.gradle en la carpeta del proyecto

Este archivo configura la versión del complemento Gradle de Android utilizado por el proyecto.

dependencies {
    
    
    classpath 'com.android.tools.build:gradle:3.5.2'
}
  • configuración.gradle en la carpeta del proyecto

Este archivo es un archivo de configuración global del proyecto, que declara principalmente algunos módulos que deben agregarse a gradle.

include ':app'
rootProject.name='MVPDemo'  //此为项目名称
  • Archivos gradlew y gradlew.bat en el archivo del proyecto

Estos dos archivos son los mismos que los archivos jar en el paquete gradle en la carpeta del proyecto. Son archivos copiados al crear un nuevo proyecto. Su directorio es D:\Program Files\Android\Android Studio\plugins\android\lib\templates \ gradle \ wrapper, gradlew se usan en Linux y Mac, gradlew.bat se usa en Windows, proporcionando la función de ejecutar comandos de Gradle en la línea de comandos.

  • La carpeta de compilación debajo de la aplicación o la carpeta de cada módulo.

Esta carpeta es un archivo temporal durante la compilación y ejecución del proyecto y se puede eliminar. Nota: El archivo apk generado está en esta carpeta.

  • build.gradle en la aplicación o en cada carpeta de módulo

Este archivo configura el SDK compilado del proyecto, el SDK de destino, la versión mínima admitida del SDK y las bibliotecas dependientes del proyecto. El siguiente código muestra el archivo de configuración en la aplicación.

apply plugin: 'com.android.application'

android {
    
    
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
    
    
        applicationId "com.example.mvpdemo"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
    
    
        release {
    
    
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

//dependencies 内容为项目依赖库
dependencies {
    
    
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

Extensiones: uso de Gradle sin un IDE

Gradle admite proyectos de Android. No se requieren AS u otros IDE. Puede compilar el proyecto sin la ayuda del IDE. Debe escribir manualmente el archivo de configuración de Gradle y usar la línea de comando para llamar al comando de Gradle para compilar. Aquí hay un breve Introducción a varios comandos gradle de uso común. Este comando es para el sistema Windows. Cuando use el siguiente comando, debe cambiar el directorio a la carpeta del proyecto antes de usarlo, porque el siguiente comando es para el proyecto.
gradlew -v
usa el comando contenedor de gradle para consultar el número de versión de gradle utilizado por el proyecto.

gradlew build
comprueba las dependencias y las compila y empaqueta. Este comando empaqueta los paquetes tanto en entornos de depuración como de lanzamiento. Si solo se necesita el paquete de lanzamiento para el lanzamiento oficial, puede consultar el siguiente comando.

gradlew ensamblarRelease
compila y empaqueta el paquete de lanzamiento.

gradlew ensamblaDebug
compila y empaqueta el paquete de depuración.

Enlace de referencia:
https://zhuanlan.zhihu.com/p/21473540

Supongo que te gusta

Origin blog.csdn.net/li1500742101/article/details/105366837
Recomendado
Clasificación