Android Studio配置config.gradle统一管

2019-04-04  本文已影响0人  骑着金刚的猿

在工程的根目录下新建一个 config.gradle文件

在工程的根目录下新建一个 config.gradle文件
1、接下来我们把编译工具的版本,SDK的版本和项目所需要的依赖写在这个创建的文件中;
2、隐私信息都用xxx替换了

/**
 * 统一处理依赖问题
 */
ext {
    android = [
            compileSdkVersion: 28,
            minSdkVersion    : 17,
            targetSdkVersion : 28,
            versionCode      : 146,
            versionName      : "2.6.3"
    ]
 
    url = [
            uatUrl  : '"http://xxxxxxxxxxxxxx.com:8080/"',
            prodUrl : '"http://xxxxxxxxxxxxxx.com:8080/"',
            localUrl: '"http://199.10.223.68:0809/"'
    ]
 
    versions = [
            androidSupportSdkVersion     : "28.0.0",
 
            okhttp                       : "3.4.1",
            retrofit                     : "2.1.0",
            rxjava                       : "1.0.14",
            rxandroid                    : "1.2.1",
            glide                        : "3.7.0",
            okhttp3Integration           : "1.4.0@aar",
            glideTransformations         : "2.0.1",
 
            butterknife                  : "8.2.0",
 
            constraintLayout             : "1.0.2",
            commons                      : "0.9.0.1",
            materialloadingprogressbar   : "0.5.8-RELEASE",
            flexbox                      : "0.1.2",
            library                      : "1.4.0",
            shortcutBadger               : "1.1.4",
 
            crashwoodpecker              : "1.2",
 
            multiImageSelector           : "1.2",
            ahbottomnavigation           : "1.3.3",
            multidex                     : "1.0.1",
            eventbus                     : "3.1.1",
            flycoLabelView_Lib           : "1.0.2@aar",
            baseRecyclerViewAdapterHelper: "2.9.50",
 
            smartrefresh                 : "1.1.0-alpha-28",
 
            circleimageview              : "3.0.0",
            simpleratingbar              : "0.1.2",
            appindexing                  : "8.4.0",
 
            tinker                       : "1.9.6",
            tinkerSDk                    : "1.2.6",
            bugly                        : "2.8.6",
            jpush                        : "3.3.6",
            jcore                        : "2.1.4"
    ]
 
    dependencies = [
            design                       : "com.android.support:design:${versions.androidSupportSdkVersion}",
            appcompat                    : "com.android.support:appcompat-v7:${versions.androidSupportSdkVersion}",
            cardview                     : "com.android.support:cardview-v7:${versions.androidSupportSdkVersion}",
 
            okhttp                       : "com.squareup.okhttp3:okhttp:3.4.1",
            retrofit                     : "com.squareup.retrofit2:retrofit:${versions.retrofit}",
            converterGson                : "com.squareup.retrofit2:converter-gson:${versions.retrofit}",
            adapterRxjava                : "com.squareup.retrofit2:adapter-rxjava:${versions.retrofit}",
 
            rxjava                       : "io.reactivex:rxjava:${versions.rxjava}",
            rxandroid                    : "io.reactivex:rxandroid:${versions.rxandroid}",
            glide                        : "com.github.bumptech.glide:glide:${versions.glide}",
            okhttp3Integration           : "com.github.bumptech.glide:okhttp3-integration:${versions.okhttp3Integration}",
            glideTransformations         : "jp.wasabeef:glide-transformations:${versions.glideTransformations}",
 
            butterknife                  : "com.jakewharton:butterknife:${versions.butterknife}",
            butterknifeCompiler          : "com.jakewharton:butterknife-compiler:${versions.butterknife}",
 
            constraintLayout             : "com.android.support.constraint:constraint-layout:${versions.constraintLayout}",
            commons                      : "com.afollestad.material-dialogs:commons:${versions.commons}",
            materialloadingprogressbar   : "com.lsjwzh:materialloadingprogressbar:${versions.materialloadingprogressbar}",
            flexbox                      : "com.google.android:flexbox:${versions.flexbox}",
            library                      : "com.romainpiel.shimmer:library:${versions.library}",
            shortcutBadger               : "me.leolin:ShortcutBadger:${versions.shortcutBadger}",
 
            crashwoodpecker              : "me.drakeet.library:crashwoodpecker:${versions.crashwoodpecker}",
            crashwoodpeckerDoNothing     : "me.drakeet.library:crashwoodpecker-do-nothing:${versions.crashwoodpecker}",
 
            multiImageSelector           : "com.github.lovetuzitong:MultiImageSelector:${versions.multiImageSelector}",
            ahbottomnavigation           : "com.aurelhubert:ahbottomnavigation:${versions.ahbottomnavigation}",
            multidex                     : "com.android.support:multidex:${versions.multidex}",
            eventbus                     : "org.greenrobot:eventbus:${versions.eventbus}",
            flycoLabelView_Lib           : "com.flyco.labelview:FlycoLabelView_Lib:${versions.flycoLabelView_Lib}",
            baseRecyclerViewAdapterHelper: "com.github.CymChad:BaseRecyclerViewAdapterHelper:${versions.baseRecyclerViewAdapterHelper}",
 
            smartRefreshLayout           : "com.scwang.smartrefresh:SmartRefreshLayout:${versions.smartrefresh}",
            smartRefreshHeader           : "com.scwang.smartrefresh:SmartRefreshHeader:${versions.smartrefresh}",
 
            circleimageview              : "de.hdodenhof:circleimageview:${versions.circleimageview}",
            simpleratingbar              : "com.iarcuschin:simpleratingbar:${versions.simpleratingbar}",
 
            //tinker
            tinker                       : "com.tinkerpatch.tinker:tinker-android-anno:${versions.tinker}",
            tinkerSDk                    : "com.tinkerpatch.sdk:tinkerpatch-android-sdk:${versions.tinkerSDk}",
            //bugly
            bugly                        : "com.tencent.bugly:crashreport:${versions.bugly}",
            //极光推送
            jpush                        : "cn.jiguang.sdk:jpush:${versions.jpush}",
            jcore                        : "cn.jiguang.sdk:jcore:${versions.jcore}"
    ]
}

在根目录下的build.gradle文件中引入我们创建的配置文件

image.png

在app的build.gradle中进行如下配置进行使用

apply plugin: 'com.android.application'
apply from: 'tinkerpatch.gradle'
 
android {
 
    signingConfigs {
        release {
            keyAlias 'android'
            keyPassword '123456'
            storeFile file('../icewater.jks')
            storePassword '123456'
        }
    }
    compileSdkVersion rootProject.ext.android.compileSdkVersion
    defaultConfig {
        applicationId 'com.icewater.top'
        minSdkVersion rootProject.ext.android.minSdkVersion
        targetSdkVersion rootProject.ext.android.targetSdkVersion
        versionCode rootProject.ext.android.versionCode
        versionName rootProject.ext.android.versionName
        signingConfig signingConfigs.release
        multiDexEnabled true
        flavorDimensions rootProject.ext.android.versionName
 
        ndk {
            abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64'
        }
    }
 
    buildTypes {
        release {
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        android.applicationVariants.all { variant ->
            variant.outputs.all {
                outputFileName = "Icewater的应用_${defaultConfig.versionName}_${productFlavors[0].name}.apk"
            }
        }
    }
 
    /**
     * aar文件的编译
     */
    repositories {
        flatDir {
            dirs 'libs'
        }
        maven {
            url "https://jitpack.io"
        }
    }
 
    productFlavors {
        //测试环境
        uat {
            buildConfigField "String", "BASE_URL", rootProject.ext.url.uatUrl
            buildConfigField "boolean", "isProdDebug", "false"
            applicationId "com.icewater.top.uat"
            manifestPlaceholders = [APP_NAME     : "Icewater的应用UAT",
                                    JPUSH_PKGNAME: applicationId,
                                    JPUSH_APPKEY : "sdghjgjdienrofn358snldfn",
                                    JPUSH_CHANNEL: "developer-default"]
        }
 
        //正式环境
        prod {
            buildConfigField "String", "BASE_URL", rootProject.ext.url.prodUrl
            buildConfigField "boolean", "isProdDebug", "false"
            applicationId "com.icewater.top"
            manifestPlaceholders = [APP_NAME     : "Icewater的应用",
                                    JPUSH_PKGNAME: applicationId,
                                    JPUSH_APPKEY : "sdghjgjdienrofn358snldfn",
                                    JPUSH_CHANNEL: "developer-default"]
        }
 
        //本地环境
        local {
            manifestPlaceholders = [APP_NAME: "Icewater的应用local"]
            buildConfigField "String", "BASE_URL", rootProject.ext.url.localUrl
            buildConfigField "boolean", "isProdDebug", "false"
            applicationId "com.icewater.top.local"
        }
    }
 
    /**
     * 本地so的使用
     */
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}
 
 
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //noinspection GradleCompatible
    implementation rootProject.ext.dependencies.design
    implementation rootProject.ext.dependencies.appcompat
    implementation rootProject.ext.dependencies.cardview
    implementation(name: 'switch-button', ext: "aar")
    implementation files('libs/alipaySdk-20180601.jar')
    implementation rootProject.ext.dependencies.okhttp
    implementation rootProject.ext.dependencies.retrofit
    implementation rootProject.ext.dependencies.converterGson
    implementation rootProject.ext.dependencies.adapterRxjava
    implementation rootProject.ext.dependencies.rxjava
    implementation rootProject.ext.dependencies.rxandroid
    implementation rootProject.ext.dependencies.glide
    implementation rootProject.ext.dependencies.okhttp3Integration
    implementation rootProject.ext.dependencies.glideTransformations
    implementation rootProject.ext.dependencies.butterknife
    annotationProcessor rootProject.ext.dependencies.butterknifeCompiler
    implementation rootProject.ext.dependencies.constraintLayout
    implementation rootProject.ext.dependencies.commons
    implementation rootProject.ext.dependencies.materialloadingprogressbar
    implementation rootProject.ext.dependencies.flexbox
    implementation rootProject.ext.dependencies.library
    implementation rootProject.ext.dependencies.shortcutBadger
    debugImplementation rootProject.ext.dependencies.crashwoodpecker
    releaseImplementation rootProject.ext.dependencies.crashwoodpeckerDoNothing
    implementation rootProject.ext.dependencies.multiImageSelector
    implementation rootProject.ext.dependencies.ahbottomnavigation
    implementation rootProject.ext.dependencies.multidex
    implementation rootProject.ext.dependencies.eventbus
    implementation rootProject.ext.dependencies.flycoLabelView_Lib
    implementation rootProject.ext.dependencies.baseRecyclerViewAdapterHelper
    implementation rootProject.ext.dependencies.smartRefreshLayout
    implementation rootProject.ext.dependencies.smartRefreshHeader
    implementation rootProject.ext.dependencies.circleimageview
    //等级星星选择
    implementation rootProject.ext.dependencies.simpleratingbar
    //视频
    implementation(name: 'videoplay', ext: "aar")
    //音频
    implementation(name: 'audiorecorder', ext: "aar")
    //tinker接入
    annotationProcessor rootProject.ext.dependencies.tinker
    implementation rootProject.ext.dependencies.tinkerSDk
    //bugly接入
    implementation rootProject.ext.dependencies.bugly
    //极光推送
    implementation rootProject.ext.dependencies.jpush
    implementation rootProject.ext.dependencies.jcore
}
上一篇 下一篇

猜你喜欢

热点阅读