多渠道打包

Android 多渠道打包

需要了解的知识

1、为什么需要多渠道打包
2、多渠道打包的方式及其优缺点配置及操作步骤,是否存在风险
3、打包后各个apk真正区别是什么
4、涉及到的知识就是版本比较多的时候,需要自定义apk名字达到好区分的目的

针对上述问题进行一一分析

1、为什么需要多渠道打包

原因:在打包的时候添加标识,当请求网络的时候会携带渠道信息,这样后台能进行相应运营统计。

2、多渠道打包的方式:

参考文章:
https://blog.csdn.net/mr_hmgo?t=1

1、友盟多渠道打包方式(传统方式)
①、在清单文件中配置meta-data文件,渠道名一般由产品经理定义,代码如下:


②、在build.gradle中android{}中配置如下代码:

productFlavors{
      wandoujia{
         manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
      }
      xiaomi{
         manifestPlaceholders=[UMENG_CHANNEL_VALUE: "xiaomi"]
      }
  }

③、优化

productFlavors{
wandoujia{}
 xiaomi{}
 }
  //下面就是优化增加的代码
 productFlavors.all { flavor ->
 flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
 }

④、在代码中获取渠道信息,代码如下:

private String getChannel() {
try {
   PackageManager pm = getPackageManager();
   ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), 
   PackageManager.GET_META_DATA);
   return appInfo.metaData.getString("UMENG_CHANNEL");
 } catch (PackageManager.NameNotFoundException ignored) {
 }
 return "";
 }

⑤在app/build/outputs/apk中就能看到自动打好的渠道包

优缺点:

这种打包方式比较安全,是传统打包方式。
缺点是:性能比较低

2、美团打包方式:
原理:apk文件其实可以看做是一个压缩包,我们把一个Android应用包当作zip文件包进行解压,然后发现在签名生成的目录下(META-INF)添加一个空文件不需要重新签名。利用这个机制,该文件的文件名就是渠道名。这种方式不需要重新签名等步骤,非常高效。

美团打包工具下载地址:
https://github.com/GavinCT/AndroidMultiChannelBuildTool

优缺点:
优点是:打包速度快
缺点是:如果google修改了打包规则,(META-INF)添加空文件需要重新签名,那么这种方式就不可取。不安全,渠道商可以通过工具修改渠道,如果一个渠道商,通过网络劫持和篡改渠道的组合方式来获取 暴利,对于程序开发者来说可能会存在着巨大的经济损失

打包后各个apk真正区别

就是给每一个apk安装包添加了标签,有了特殊标识,根据这些标识,你可以针对不同的apk进行统计分析。可以作为运营下一步的公关方向提供参考。

自定义apk名字

当多渠道打包的时候,打出的包都是按照一定规则生成的,如果打多个版本的包时,因为规则相同,我们就不能很好的区分哪个是哪个版本的,这个时候就需要自定义apk名字,把版本号或者是版本名字放在规则中,这样打包的时候就会带上版本信息,这样就我们就很好的区分开了。

详细可以参考此文自定义apk名字的文章
https://www.cnblogs.com/bluestorm/p/6228085.html

你可能感兴趣的:(多渠道打包)