您的位置:首页 > 移动开发 > Android开发

Android高阶之Android studio-友盟多渠道打包方式

2016-12-27 18:23 447 查看
转自:http://blog.csdn.net/chenliguan/article/details/51066933

0 概述

Android应用的人类每次发布App都需要面对数十个市场,而为了能够采集到市场的表现数据,就必须为每一个市场生成相应的apk包,也就是俗称的渠道包。

1 参考链接

android studio-友盟多渠道打包方式
Android Studio多渠道打包
Android Studio系列教程六–Gradle多渠道打包

2 配置方法


第一步 在AndroidManifest.xml里配置PlaceHolder

<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
1
2
3
1
2
3


第二步 在模块的build.gradle文件的defaultConfig里加上PlaceHolder定义

android {
...

defaultConfig {
...
manifestPlaceholders = [ UMENG_CHANNEL_VALUE:"default_channel" ]
}
}
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8


第三步 在模块的build.gradle文件里添加ProductFlavors配置

android {
...

defaultConfig {
...
manifestPlaceholders = [ UMENG_CHANNEL_VALUE:"default_channel" ]
}

productFlavors {
default_channel{}
wandoujia{}
_360{}
yingyongbao{}
xiaomi{}
baidu{}
huawei{}
jifeng{}
}

productFlavors.all { flavor ->
flavor.manifestPlaceholders = [ UMENG_CHANNEL_VALUE:name ]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23


第四步 在模块的build.gradle文件里对生成的apk命名

android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
File outputDirectory = new File(outputFile.parent);
def fileName
if (variant.buildType.name == "release") {
//                    fileName = "app_v${defaultConfig.versionName}_${packageTime()}_${variant.productFlavors[0].name}.apk"
fileName = "caixiangji_${variant.productFlavors[0].name}.apk"
} else {
//                    fileName = "app_v${defaultConfig.versionName}_${packageTime()}_beta.apk"
fileName = "caixiangji_${variant.productFlavors[0].name}_beta.apk"
}
output.outputFile = new File(outputDirectory, fileName)
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

第五步 一次生成所有渠道包

5.1 命令行导出apk

//在Android studio下的Terminal输入
gradlew assembleWandoujiaRelease
1
2
1
2

5.2 签名导出apk

3 查看导出的apk

打开AndroidStudio的Gradle tasks面板 



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: