多渠道打包
Posted libuyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多渠道打包相关的知识,希望对你有一定的参考价值。
【友盟打包】
第1步:
public class MApplication extends Application{
private static String channel;
@Override
public void onCreate() {
super.onCreate();
channel=initChannel();
}
/**
* 初始化渠道信息
*/
private String initChannel() {
try {
PackageManager pm = getPackageManager();
ApplicationInfo info = pm.getApplicationInfo(getPackageName(),
PackageManager.GET_META_DATA);
return info.metaData.getString("UMENG_CHANNEL");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "";
}
}
第2步:
<application
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}"/>;
</application>
第3步:build.gradle
android {
/*------------------------------------------------------------------------------*/
productFlavors {
wandoujia {
//manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
applicationId "cn.andoop.apkpacktest"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
xiaomi {
//manifestPlaceholders=[UMENG_CHANNEL_VALUE: "xiaomi"]
}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith(‘.apk‘)) {
def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk")
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
/*------------------------------------------------------------------------------*/
}
第4步:build——>generate......
缺点
这样的打包方式效率比较低下,如果是几十个包还可以应付,打一个包快的话需要十几秒,慢的话需要几分钟不等,跟机器性能很有关系
效率高的打包方法可以用美团多渠道打包和360多渠道打包,但是渠道信息也是很容易修改,虽然可以加密,只是提高了修改的门槛
以上是关于多渠道打包的主要内容,如果未能解决你的问题,请参考以下文章
[Android Studio 权威教程]多渠道打包和一键完成(全部产品)打包并签名