護(hù)眼圖
寫在開頭诀浪,網(wǎng)上類似的文章很多,可以參考下督勺。以下是我嘗試的方式并且成功的洛搀。
1.渠道信息一般在 AndroidManifest.xml中修改以下值:
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
2.項(xiàng)目的build.gradle中配置
productFlavors {
neirongjia{}
huawei {}
xiaomi {}
baidu {}
shichang360 {}
yinyongbao {}
wandoujia {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
signingConfigs {
releaseConfig {
keyAlias '*********'
keyPassword '*****'
storeFile file('***/**/**.keystore')
storePassword '******'
}
}
buildTypes {
release {
signingConfig signingConfigs.releaseConfig
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// 采用動(dòng)態(tài)替換字符串的方式生成不同的release.apk
applicationVariants.all { variant ->
variant.outputs.all {
if (outputFileName.endsWith('release.apk')) {
outputFileName = "51Desk_${defaultConfig.versionCode}_${defaultConfig.versionName}" + "_" + variant.productFlavors[0].name + ".apk"
} else if (outputFileName.endsWith('debug.apk')) {
outputFileName = "51Desk_${defaultConfig.versionCode}_${defaultConfig.versionName}" + "_" + variant.productFlavors[0].name + "_debug.apk"
}
}
}
其中name的值對(duì)相對(duì)應(yīng)各個(gè)productFlavors的選項(xiàng)值,這樣就達(dá)到自動(dòng)替換渠道值的目的了译打。
3.開始打包
在android studio底欄中有個(gè)命令行工具Terminal,打開后就CMD可以自動(dòng)切換到當(dāng)前項(xiàng)目的目錄下耗拓。輸入這個(gè)命令:
gradlew assembleRelease
就可以一次性生成所有的渠道包了,不過(guò)一般不建議大家使用這個(gè)命令奏司,gradlew這個(gè)命令的gralde的版本無(wú)法控制乔询,有時(shí)候會(huì)莫名其妙的下載老版本的gradle,所以網(wǎng)上有另外一種方式韵洋,但我沒(méi)有成功竿刁。
先找到AndroidStudio工具的gralde的根目錄,在系統(tǒng)變量里添加兩個(gè)環(huán)境變量:
變量名為:GRADLE_HOME搪缨,變量值就為gradle的根目錄们妥;
C:\Program Files\Android\AndroidStudioV2.1\gradle\gradle-2.10
還有一個(gè)在系統(tǒng)變量里PATH里面添加gradle的bin目錄
;%GRADLE_HOME%\bin
這里配置完成了,接著在Terminal中敲下 gradle assembleRelease就可以一次性生成所有的渠道包了勉吻。
4.生成的apk
所有生成的apk在項(xiàng)目的build\outputs\apk下
5.生成單個(gè)渠道的apk
打開Android Studio的Gradle tasks面板(右邊側(cè)邊欄)监婶,會(huì)發(fā)現(xiàn)模塊多了很多任務(wù),如下圖所示齿桃。
此時(shí)可以直接雙擊該任務(wù)生成對(duì)應(yīng)的apk惑惶,也可以用命令行單獨(dú)生成,比如:
gradle assembleWandoujiaRelease