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文件下服务器配置:
<!--是否需要均衡-->
<string name="tzt_junheng_debug">1</string>
<!--###### 服务器地址配置 ####################################################################-->
<!--均衡服务器-->
<string name="tztNewJHHostPort_debug">121.40.24.220:7779</string>
<!--行情服务器-->
<string name="tztNewHqHostPort_debug">121.40.24.220:7788</string>
<!--行情L2服务器-->
<string name="tztNewHqL2HostPort_debug">180.163.112.210:8601 </string>
<!--行情L2服务器(上海)-->
<string name="tztNewHqLevel2SHHostPort_debug">121.12.106.247:7788&223.112.100.161:7788&</string>
<!--行情L2服务器(深圳)-->
<string name="tztNewHqLevel2SZHostPort_debug">121.12.106.247:7788&223.112.100.161:7788&</string>
<!--交易服务器-->
<string name="tztNewJyHostPort_debug">121.40.24.220:7777</string>
<!--资讯服务器-->
<string name="tztNewZxHostPort_debug">121.40.24.220:7779</string>
<!--统计服务器-->
<string name="tztNewTjHostPort_debug">121.40.24.220:7779</string>
<!--深证通SDK均衡服务器(测试)-->
<string name="tztSDKJunHengHostPort_debug">testjh1.3gdisk.com:7780&testjh2.3gdisk.com:7780</string>
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、混淆