多渠道打包

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 权威教程]多渠道打包和一键完成(全部产品)打包并签名

Android grade语法,多渠道打包

android的多渠道打包

Android 多渠道打包方式详解

Walle(瓦力)多渠道打包-gradle脚本-可360加固一键打包

Android多渠道批量打包