一、release 、debug 版本不同配置
添加不同环境的接口切换和Debug 开关配置
buildTypes {
release {
minifyEnabled true
signingConfig signingConfigs.config
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField("String","baseUrl","\"http://release.xxx.com/\"")//上线用接口地址
buildConfigField("boolean","isDebug","false")//日志开关
//generate apk file name
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
"${variant.productFlavors[0].name}-v${variant.buildType.name}-${defaultConfig.versionName}-${releaseTime()}.apk".toLowerCase())
}
}
}
debug{
minifyEnabled false
//测试版使用上线用的签名是为了方便测试第三方功能,如分享、地图等等
signingConfig signingConfigs.config
buildConfigField("String","baseUrl","\"http://debug.xxx.com/\"")//测试用接口地址
buildConfigField("boolean","isDebug","true")//日志开关
}
}
代码中使用:
public class LogUtil {
public static void d(String msg) {
if (!BuildConfig.isDebug|| TextUtils.isEmpty(msg)) {
return;
}
Log.d("LogUtil", msg);
}
}
public class UrlContants {
private static final String BASE_URL = BuildConfig.baseUrl;
public static final String LOGIN_URL =BASE_URL + "login";
}
二、统一版本号、构建工具版本等等
这么做的目的:统一配置、统一修改
步骤:
- 在根目录的 build.gradle 文件中加入下列代码
ext{ compileSdkVersion = 25 buildToolsVersion = '25.0.2' minSdkVersion = 15 targetSdkVersion = 23 versionCode = 1 versionName = '1.0' }
- 在 module 目录下的 build.gradle 的文件中使用
android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "com.mr.muiltchannelpack" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode rootProject.ext.versionCode versionName rootProject.ext.versionName testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } }
三、打多渠道包
productFlavors{
yingyongbao{}
_360{}
huawei{}
wandoujia{}
//other market
}
productFlavors.all{flavor->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
步骤:
结果: