安卓多渠道高效打包总结

最近接手的项目都需要多渠道打包,有七八个渠道。使用android studio 原生productFlavors和友盟设置多渠道id打包非常慢,是二三十分钟。目前使用过的多渠道打包方式,按教程操作接入项目就可以,但有些坑,文档不会提到的,总结如下:

1. 第三方sdk

  • 腾讯乐固,下载签名多渠道打包

安卓多渠道高效打包总结_第1张图片
legujieshao_06.png
  • 360 加固工具

官方地址

安卓多渠道高效打包总结_第2张图片
1638147-e71aa7e5a60dbda5.png

2. 使用插件

  • Walle多渠道打包 github项目地址

注意:使用此方式,按文档接入,需要注释主模块builde.gradle下的原有多渠道打包方式,如:productFlavors,原文档未提。在当前app的build.gradle 文件中添加依赖,以及配置wallet插件,这里有一个不得不说的梗,原文档配置使用的插件 // 渠道配置文件

channelFile = new File("${project.getProjectDir()}/channel"), 报错找不到channel文件。正确配置如下图:

安卓多渠道高效打包总结_第3张图片
`4B1`UXQV%AXZ5W~N_O)4GD.png

获取渠道信息
通过以下代码,可以取渠道信息

String channel = WalleChannelReader.getChannel(this.getApplicationContext());

将渠道号在application中添加到友盟统计工具中,
多渠道打包命令行:./gradlew clean assembleReleaseChannels ,
winodw 需要去掉./,

  • packer-ng-plugin github地址

原文档配置使用的插件 // 渠道配置文件

channelFile = new File(project.rootDir, "channel.txt")
出现报错,gradle编译失败,

正确配置渠道插件路径:

channelFile = new File("${project.getProjectDir()}/channel.txt")

代码中读取渠道
// 如果没有找到渠道信息或遇到错误,默认返回的是""
// com.mcxiaoke.packer.helper.PackerNg
String channel = PackerNg.getChannel(Context)

个人觉得Walle多渠道打包要快些,也支持apk加固后在批量打包,

你可能感兴趣的:(安卓多渠道高效打包总结)