链接参考地址: https://github.com/HongQiQu/AndroidMultiChannelBuildTool
, http://www.cnblogs.com/ct2011/p/4152323.html,https://github.com/HongQiQu/AndroidMultiChannelBuildTool
1、首先安装Python(安装和测试步骤自己补脑,百度很多)
2、下载github上的压缩包随便解压到一个目录下边
解压以后的:
javaUtil是放入自己项目中去的文件(放入就ok了)
javaUtil是放入自己项目中去的文件(放入就ok了)
使用:
将JavaUtil或ChannelUtil放入自己的工程中,然后在自定义的Application如(MyApplication)的oncreate中调用渠道号,如
PythonTool文件夹中是重点
Info文件和output_apk文件夹都是在MultiChannelBuildTool.py文件中设定的,点击右键用记事本或者别的编辑工具打开MultiChannelBuildTool.py其中有获取渠道号
设置生成apk以后的文件夹
其实这些不用管只要按照默认的就行了
这个是info文件夹中创建了一个txt文件用于存放渠道号
渠道号的形式
一行一个然后换行继续
前期工作准备好了以后现在开始打包首先要打一个自己程序的默认包
把生成的apk放到MultiChannelBuildTool.py同目录下,
然后直接双击MultiChannelBuildTool.py 运行完成以后可以看一下output_apk
中已经瞬间打好了我们想要的包。结束
执行流程: 将JavaUtil或ChannelUtil在MyApplication中的oncreate中调用Channel.getChannel(context,"xxxx随意,不要也行");部署这个代码之后,打第一个apk包,将此apk包放到MultiChannelBuildTool.py同目录下,双击MultiChannelBuildTool.py,执行完就打好渠道包了。。。。
MultiChannelBuildTool.py的执行流程,读取channel.txt的所有渠道号,将第一个apk包名称替换成目标apk名称,并且生成的目标apk名称会加入一个METa-inf/cztchannel-{目标渠道号}的文件;注: METa-inf/cztchannel-{目标渠道号}这个中的 METa-inf/cztchannel就是JavaUtil的key使用的时候一定更要注意保持一致,否则无法修改
当启动打好的渠道apk时,就会执行myapplication中的ChannelUtil.getchannel(context,"xxxx");此方法会直接匹配METa-inf/cztchannel-{目标渠道号}获取目标渠道号,这个渠道变量是全局的,所以请求时就要所要的目标渠道
由于友盟需要新增用户统计,以前的sdk不支持代码修改channel,就是没有AnalyticsConfig.setChannel(String
channel)这个接口,所以这种方式在以前sdk打的渠道包是没法统计到新增用户的;解决办法就是替换sdk,然后在再启动页(xxxactivity)的oncreate中调用AnalyticsConfig.setChannel(String
channel),将此方法打的渠道包号获取,通过此方法传入就可以统计到新增户用了;
注意:友盟的新增用户定义:只能用未装过渠道包的设备(手机)测试,才会有数据,若是装过渠道包,那么不会认为是新用户,
新增用户的数据是实时显示的,而其它事件数据统计是下次启动app才会一次性上传数据
注意:Android
Studio 2.2 和Android Gradle 2.2插件会使用APK Singnature Scheme v2和传统签名方案来签署您的应用;apk中meta-info目录添加渠道标示文件的方法打多渠道包,导致签名后的apk文件与源文件不一致导致的。;所以as2.2以上不能使用这种多渠道包打包方式