1、修改AndroidManifest.xml
application 节点中添加渠道配置。
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
2、修改module下build.gradle
gradle 添加 flavorDimensions 属性,用来控制多个版本的代码和资源,缺失会报错。
android {
...
defaultConfig {
...
flavorDimensions "versionCode" //版本规格,写死
}
...
productFlavors {
yingyongbao {}
xiaomi {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
...
}
3、自定义打包APK名称
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// 自定义打包输出配置
applicationVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "gank_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
}
}
}
}
4、配置签名
android {
...
//签名
signingConfigs {
release {
storeFile file('E:\\testkey.jks') //签名文件
storePassword "test"
keyAlias "testkey"
keyPassword "test" //签名密码
}
debug {
storeFile file('E:\\testkey.jks')
storePassword 'test'
keyAlias = 'testkey'
keyPassword 'test'
}
}
...
}
5、获取渠道号信息
//获取渠道号
private static String getChannel(Context context) {
try {
PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
return appInfo.metaData.getString("UMENG_CHANNEL");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "";
}