Android Gradle 多渠道打包
作者:秦川小将
地址:http://blog.csdn.net/mjb00000/article/details/79386391
声明:本文是 秦川小将 原创投稿,转发等请联系原作者授权。
1.首先集成友盟统计SDK(友盟集成文档)
在Gradle中集成如下:
dependencies {
compile 'com.umeng.analytics:analytics:latest.integration'
}
2.在AndroidManifest.xml的application节点下meta-data中配置如下:
<meta-data
android:name="UMENG_APPKEY"
android:value="您在友盟平台申请的AppKey"/>
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}"/>
3.配置一些Gradle语言以及多渠道ID:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23 // 编译的SDK版本
buildToolsVersion "23.0.3" // 编译的Tools版本
defaultConfig { // 默认配置
applicationId "应用包名" // 例如:com.auto.app
multiDexEnabled true // dex突破65535的限制
minSdkVersion 14 // 支持的最低版本
targetSdkVersion 23 // 支持的目标版本
versionCode 1
versionName "1.0.0" // 版本号
signingConfig signingConfigs.debug
}
signingConfigs {
release {
keyAlias 'alias'
keyPassword '签名密码'
storeFilefile ('签名文件地址')
storePassword '签名密码'
}
debug {
keyAlias 'alias'
keyPassword '签名密码'
storeFilefile ('签名文件地址')
storePassword '签名密码'
}
}
buildTypes {
release {
minifyEnabled false // 混淆开启
zipAlignEnabled true// Zipalign优化
shrinkResources true// 移除无用的resource文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release// 设置签名信息
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 设置apk包名,如:Auto_1.0.0_渠道ID.apk
def fileName = "Auto_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
repositories {
mavenCentral()
}
productFlavors {
baidu{
manifestPlaceholders= [UMENG_CHANNEL_VALUE:"baidu"]
}
wandoujia{
manifestPlaceholders= [UMENG_CHANNEL_VALUE:"wandoujia"]
}
xiaomi{
manifestPlaceholders= [UMENG_CHANNEL_VALUE:"xiaomi"]
}
}
}
dependencies {
compile fileTree(include: ['*.jar'],dir:'libs')
compile '其他引用包'
compile 'com.umeng.analytics:analytics:latest.integration'
}