Android Studio 多渠道打包的關鍵,就是項目的build.gradle文件裏面的productFlavors,通常統計用的是友盟,以友盟爲例經過修改渠道號,進行多渠道打包。java
1.一種是在manifest文件裏面,定義了渠道號,這個時候,就要用到manifestPlaceholders ,經過在build.gradle文件裏面的productFlavors,定義多渠道的名稱,每一個渠道下面是該manifestPlaceholders的值,能夠參考http://stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ android
2.另外一種,渠道號是在java代碼裏面設置的,這種狀況下,能夠經過定義 buildConfigField 'String', 'UMENG_CHANNEL_VALUE', UMENG_CHANNEL_VALUE,而後在代碼裏面,經過buildConfigField類名點UMENG_CHANNEL_VALUE來獲取相應的渠道號。好比 BuildConfig.UMENG_CHANNEL_VALUE 。apache
最後附上第二種狀況下的gradle文件以供參考android-studio
apply plugin: 'com.android.application'app
android {ide
compileSdkVersion 23gradle
buildToolsVersion '23.0.2'優化
defaultConfig {ui
applicationId "cn.com.xxx"google
minSdkVersion 14
targetSdkVersion 22
versionCode 188
versionName "3.1.0"
// Enabling multidex support. 65535
multiDexEnabled true
useLibrary 'org.apache.http.legacy'
}
buildTypes {
debug{
// 顯示Log
buildConfigField "boolean", "LOG_DEBUG", "true"
versionNameSuffix "-debug"
minifyEnabled false
zipAlignEnabled false
shrinkResources false
}
release {
// 不顯示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
// 移除無用的resource文件
//shrinkResources true
//混淆
minifyEnabled true
//Zipalign優化
zipAlignEnabled true
proguardFiles 'proguard.cfg'
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 下面的appname改成你本身的app name
def fileName = "KTN-A-PH_${defaultConfig.versionName}_${variant.productFlavors[0].name}-E084.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
// 友盟多渠道打包
productFlavors {
xiaomi {
String UMENG_CHANNEL_VALUE='"KTN-A-PH_4.3.7_xiaomi-E084"'
buildConfigField 'String', 'UMENG_CHANNEL_VALUE', UMENG_CHANNEL_VALUE
}
/*qihoo {
buildConfigField 'String', 'UMENG_CHANNEL_VALUE', '"KTN-A-PH_4.3.7_qihoo-E084"'
}
qq {
buildConfigField 'String', 'UMENG_CHANNEL_VALUE', '"KTN-A-PH_4.3.7_qq-E084"'
}*/
}
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java']
resources.srcDirs = ['src/main/res']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['src/main/res']
assets.srcDirs = ['src/main/assets']
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
//compile files('libs/com_unionpay_upomp_lthj_lib.jar')
compile project(':alipay_lib')
compile project(':upomp_Res_for_kt3x')
compile project(':weiboSDK')
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:23.0.0'
}