Android Gradle配置2


一、服务器地址的与均衡地址的配置 

1、创建String文件

在app 目录下创建3个String文件分别对应debug,release,uat环境的服务器地址,在我们项目中分别叫tzt_buildconfig_debug_strings、tzt_buildconfig_release_strings、tzt_buildconfig_uat_strings。每个文件下创建的服务器名称分别以 _debug,_release,_uat结尾

比如:tzt_buildconfig_debug_strings文件下服务器配置:

1

121.40.24.220:7779

121.40.24.220:7788

180.163.112.210:8601

121.12.106.247:7788&223.112.100.161:7788&

121.12.106.247:7788&223.112.100.161:7788&

121.40.24.220:7777

121.40.24.220:7779

121.40.24.220:7779

testjh1.3gdisk.com:7780&testjh2.3gdisk.com:7780

2、在tztApp module 的gradle中新增加uat 灰度打包的配置(注:基于3.0的项目这一步省略

buildTypes {

    release {

        minifyEnabled true

        shrinkResources true //资源压缩

        zipAlignEnabled true//Zipalign优化

        proguardFiles 'proguard.cfg'

        signingConfig signingConfigs.release

    }

    //uat包

    uat {

        minifyEnabled true

        shrinkResources true //移除无用资源

        zipAlignEnabled true//Zipalign优化

        proguardFiles 'proguard.cfg'

        signingConfig signingConfigs.release

    }

    debug {

        minifyEnabled false

        shrinkResources false //资源压缩

        zipAlignEnabled false//Zipalign优化

        proguardFiles 'proguard.cfg'

        signingConfig signingConfigs.release

    }

}

3、在除了tztControl  module(注:在4.0项目为tztControl module中,3.0项目为app porject)之外的module的gradle中添加uat的配置

buildTypes {

        release {


        }

        //uat包

        uat {

        }

        debug {


        }

    }

4、在tztControl module(注:在4.0项目为tztContro  modulel ,在3.0项目为app  porject 的gradle中添加release uat debug 环境下的配置

buildTypes {

    release {

        buildConfigField 'String', 'API_tztBuildTypes','\"release\"'

    }

    //uat包

    uat {

        buildConfigField 'String', 'API_tztBuildTypes','\"uat\"'

    }

    debug {

        buildConfigField 'String', 'API_tztBuildTypes','\"debug\"'

    }

}

5、根据名称来调用需要使用的地址

1.在tztAddressManager (3.0项目为Rc)中的compactddress 方法中修改

String addportlist =Res.getString(Rc.getApplication(), newhostportlab + "_" +BuildConfig.API_tztBuildTypes  (基于4.0项目)

String addportlist =Pub.getApplication().getString(Pub.getStringID(Pub.getApplication(), newhostportlab + "_" + BuildConfig.API_tztBuildTypes))  (基于3.0项目)

2.修改config中代码

isNeedJunHeng =  "1".equals(Res.getString(context,"tzt_junheng"+ "_"  + BuildConfig.API_tztBuildTypes)) (基于4.0项目)

m_bNeedJunHeng  = "1".equals(Pub.getApplication().getString(Pub.getStringID(null, "tzt_junheng" + "_" + BuildConfig.API_tztBuildTypes)))  (基于3.0项目)

6、其他

  当需要修改服务器地址时,修改tzt_buildconfig_debug_strings、tzt_buildconfig_release_strings、tzt_buildconfig_uat_strings下定义的各个环境下的地址即可

二、打包 

 1、打uat环境的包时,系统提示找不到leakcanary下的图片资源,猜测是因为leakcanary没有配置uat环境。

      解决办法:需在app引用leakcanary的地方将代码注释掉,主要是下面三句代码。然后在Application使用的地方将该部分代码注释。打包release和debug时没有影响,不需要注释

debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4'

releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'

testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'

三、参考文章

1.Android中BuildConfig类

https://www.jianshu.com/p/3474ce4609a8

2.Gradle for Android全局设置、自定义BuildConfig、混淆

http://wuxiaolong.me/2016/03/31/gradle4android2/

你可能感兴趣的:(Android Gradle配置2)