Localizadas habilidades compilación de Android Gradle

perfil Gradle personalizada

config.gradle

En el directorio raíz de la nueva config.gradle

Aquí Insertar imagen Descripción
config.gradle dice lo siguiente:

ext {
    //Android 配置
    android = [
            compileSdkVersion: 29,
            buildToolsVersion: "29.0.1",
            applicationId    : "com.xx.xx",
            minSdkVersion    : 21,
            targetSdkVersion : 29,
            versionCode      : 8,
            versionName      : "1.7"
    ]
    //依赖 配置
    dependencies = [
            "httpclient"     : 'org.apache.http.legacy',
            "appcompat"      : 'androidx.appcompat:appcompat:1.0.2',
            "bmobsdk"        : 'cn.bmob.android:bmob-sdk:3.7.3-rc1',
            "rxjava2"        : "io.reactivex.rxjava2:rxjava:2.2.2",
            "rxandroid2"     : 'io.reactivex.rxjava2:rxandroid:2.1.0',
            "okio"           : 'com.squareup.okio:okio:2.1.0',
            "gson"           : 'com.google.code.gson:gson:2.8.5',
            "okhttp3"        : 'com.squareup.okhttp3:okhttp:3.12.0',
            "tagcloud"       : 'com.moxun:tagcloudlib:1.2.0',
            "circleimageview": 'de.hdodenhof:circleimageview:3.0.0',
            "glide"          : 'com.github.bumptech.glide:glide:4.9.0',
            "recyclerview"   : 'androidx.recyclerview:recyclerview:1.0.0',
            "datepicker"     : 'cn.aigestudio.datepicker:DatePicker:2.2.0',
            "litepal"        : 'org.litepal.android:java:3.0.0',
            "eventbus"       : 'org.greenrobot:eventbus:3.1.1',
            "tablayout"      : 'com.google.android.material:material:1.0.0',
            "photoview"      : 'com.github.chrisbanes:PhotoView:2.3.0',
            "3dmap"          : 'com.amap.api:3dmap:5.0.0',
            "location"       : 'com.amap.api:location:3.3.0',
            "search"         : 'com.amap.api:search:5.0.0',
            "bugly"          : 'com.tencent.bugly:crashreport:2.1.9',
            "buglyndk"       : 'com.tencent.bugly:nativecrashreport:3.0',
            "zxing"          : 'cn.yipianfengye.android:zxing-library:2.2',
            "videoplayer"    : 'cn.jzvd:jiaozivideoplayer:7.0.5'
    ]
    //仓库
    maven = [
            "bmobUrl": "https://raw.github.com/bmob/bmob-android-sdk/master",
            "jitpack": "https://jitpack.io"
    ]
}

La introducción de una costumbre Gradle

La introducción de un archivo de configuración personalizado en la raíz del proyecto build.gradle Gradle

//引入自定义Gradle配置文件
apply from: "config.gradle"

módulo de aplicación y el otro módulo pueden ser usados ​​build.gradle parámetros definidos en config.gradle, si las necesidades de datos a ser modificadas, sólo es necesario modificar config.gradle, todos los módulos en build.gradle no tenga que hacer cambios.

beneficios:

  • 1. Unidad
  • 2. manejable
  • 3. Gestión de versiones

build.gradle aplicación 的

La aplicación build.gradle sigue:

android {
    compileSdkVersion rootProject.ext.android["compileSdkVersion"]
    buildToolsVersion rootProject.ext.android["buildToolsVersion"]

    //默认配置
    defaultConfig {
        applicationId rootProject.ext.android["applicationId"]
        minSdkVersion rootProject.ext.android["minSdkVersion"]
        targetSdkVersion rootProject.ext.android["targetSdkVersion"]
        versionCode rootProject.ext.android["versionCode"]
        versionName rootProject.ext.android["versionName"]
    }
...
}

la base 的 build.gradle

android {
    //HttpClient
    useLibrary rootProject.ext.dependencies["httpclient"]
    compileSdkVersion rootProject.ext.android["compileSdkVersion"]
    buildToolsVersion rootProject.ext.android["buildToolsVersion"]
    defaultConfig {
        minSdkVersion rootProject.ext.android["minSdkVersion"]
        targetSdkVersion rootProject.ext.android["targetSdkVersion"]
        versionCode rootProject.ext.android["versionCode"]
        versionName rootProject.ext.android["versionName"]
    }
	...
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //V7
    api rootProject.ext.dependencies["appcompat"]
    api rootProject.ext.dependencies["bmobsdk"]
    api rootProject.ext.dependencies["rxjava2"]
    api rootProject.ext.dependencies["rxandroid2"]
    api rootProject.ext.dependencies["okio"]
    api rootProject.ext.dependencies["gson"]
    api rootProject.ext.dependencies["okhttp3"]
    api rootProject.ext.dependencies["tagcloud"]
    api rootProject.ext.dependencies["circleimageview"]
    api rootProject.ext.dependencies["datepicker"]
    api rootProject.ext.dependencies["glide"]
    api rootProject.ext.dependencies["recyclerview"]
    api rootProject.ext.dependencies["litepal"]
    api rootProject.ext.dependencies["eventbus"]
    api rootProject.ext.dependencies["tablayout"]
    api rootProject.ext.dependencies["photoview"]
    api rootProject.ext.dependencies["3dmap"]
    api rootProject.ext.dependencies["location"]
    api rootProject.ext.dependencies["search"]
    api rootProject.ext.dependencies["bugly"]
    api rootProject.ext.dependencies["buglyndk"]
    api rootProject.ext.dependencies["zxing"]
    api rootProject.ext.dependencies["videoplayer"]
}

constantes de configuración Gradle

archivos abiertos BuildConfig, vista Gradle constante
Aquí Insertar imagen Descripción
añadir el siguiente código en buildTypes:
Aquí Insertar imagen Descripción

      debug {
            //自定义Gradle常量
            buildConfigField("boolean","LOG_DEBUG","true")
            buildConfigField("String","LOG_TAG","\"YueJian\"")
            buildConfigField("String","SP_NAME","\"Config\"")
        }

Después de una revisión de BuildConfig sincronización de archivos
Aquí Insertar imagen Descripción
ha sido para nosotros para construir una necesidad constante

Estas constantes se utilizan de la siguiente manera, por lo que se puede hacer alguna operación de depuración de construcción, tales como registro de salida, mientras que en la versión de lanzamiento no lleva a cabo estas operaciones.
Aquí Insertar imagen Descripción

acumulación Gradle para mejorar la velocidad de las puntas de los diez

  • Con la última versión del plug-in de Gradle
  • Evitar la activación de edad Multidex
  • Multidex Apk prohibición de la construcción
  • Minimizar el paquete de archivos de recursos
  • Desactivación de la compresión PNG
  • webp conversión png
  • ejecución inmediata recomendada
  • No utilice la identificación versión dinámica
  • la asignación de memoria de sintonización Gradle
  • Abrir Gradle construir la memoria caché

Multidex Apk prohibición de la construcción

Gradle construir tres indicadores de rendimiento:

  • El monto total de Compilación: Compilar todo - Abrir proyecto
  • Código compilación incremental: Modificar el Java / Kotlin siguiente código cuando se compila
  • Recursos incrementales compilación: Modificar las siguientes res archivo de recursos cuando se compila

Publicado aplicación requiere paquete de múltiples canales y todo el paquete cuando el mercado de aplicaciones, y el tiempo de depuración no necesita tanto, podemos prohibir algunos archivos para compilar.

¿Cómo parar al depurar ella?

Ajustes-Build-Compilador-PdevBuild

Aquí Insertar imagen Descripción

aplicación 的 build.gradle:
Aquí Insertar imagen Descripción

android {
    //调试的时候禁止,加快编译速度
    if(rootProject.hasProperty('devBuild')){
        splits.abi.enable = false
        splits.density.enable = false
        //禁用PNG压缩
        //aaptOptions.cruncherEnabled = false
    }
...

Minimizar el paquete de archivos de recursos

android {
    //默认配置
    defaultConfig {
        //调试
        resConfigs("zh","xxhdpi")
	...
	}
	...
}

Desactivación de la compresión PNG

Aquí Insertar imagen Descripción

android {
    //调试的时候禁止,加快编译速度
    if(rootProject.hasProperty('devBuild')){
        splits.abi.enable = false
        splits.density.enable = false
        //禁用PNG压缩
        aaptOptions.cruncherEnabled = false
    }
...

webp conversión png

Aquí Insertar imagen Descripción

No utilice la identificación versión dinámica

No utilice al agregar una dependencia Plus +

la asignación de memoria de sintonización Gradle

Aquí Insertar imagen Descripción

Abrir Gradle construir la memoria caché

#开启Gradle构建缓存
org.gradle.caching=true

Aquí Insertar imagen Descripción

Publicados 446 artículos originales · ganado elogios 67 · vistas 240 000 +

Supongo que te gusta

Origin blog.csdn.net/hongxue8888/article/details/104692385
Recomendado
Clasificación