一、服務器地址的與均衡地址的配置?
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類
http://www.lxweimin.com/p/3474ce4609a8
2.Gradle for Android全局設置、自定義BuildConfig、混淆