diff --git a/README.md b/README.md index 6999fbc..6f13885 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,15 @@ AndroidMultiChannelBuildTool ============================ -安卓多渠道打包工具。 +安卓多渠道打包工具。 实现思路讲解: [Android批量打包提速 - GavinCT](http://www.cnblogs.com/ct2011/p/4152323.html) 使用本工具,Android程序员仅需将ChannelUtil.java放入到工程里使用,以后打包的事情就不用自己动手了。 -安装个Python环境,双击一下MultiChannelBuildTool.py,谁都可以打包了! +安装个Python环境,运行一下MultiChannelBuildTool.py,谁都可以打包了! +# 写在最前面 +本工具不支持v2签名,如有需要,请使用[Meituan-Dianping/walle](https://github.com/Meituan-Dianping/walle) +# 具体使用步骤 +将想要批量打包的apk文件拷贝到PythonTool目录下(与py同级),运行py脚本即可打包完成。(生成的渠道apk包在output_** 目录下) # 目录介绍及使用注意 ## PythonTool Python2 与 Python3 都能正常使用 @@ -54,6 +58,21 @@ ChannelUtil中的getChannel方法可以方便的获取渠道。 - 这个方案没法解决不同渠道使用渠道自己SDK的问题,友盟的SDK提供了在代码中设置渠道的方式,所以再获取到渠道号后再调用SDK相关设置渠道的方法就可以了 - apk用的是java那一套签名,放在META-INF文件夹里的文件原则上是不参与签名的。如果Google修改了apk的签名规则,这一套可能就不适用了。 +# 注意 + +问:同样一个版本号的2个渠道包,比如先装了360,那么SharedPreferences存的就是360了。这时再用xiaomi渠道的去覆盖安装,那么读出来的渠道号还是360的。不知道博主对这个问题怎么看,还是去掉sp缓存,就保留内存和包中读取? + +答: + +看你个人的使用场景吧 一般来说 渠道使用无非是统计升级渠道、根据相应渠道变化样式、上报崩溃信息携带渠道。 + +- 针对1:统计不怎么需要特别情况,你说的这种情况我们也考虑过,但一般用户大多不会这么折腾,也就QA这么玩。 +- 针对2:使用flavor来解决了。而不是判断渠道。早期适配魅族手机也是不管渠道,只看是不是魅族手机 +- 针对3:这个印象也不大,如果是某渠道包崩溃,少这几个也不会影响。 + +综上,我们选择不再读取。 +当然,如果你有其他使用场景,考量之后觉得要精确,可以每次读包,缓存到内存中。当时我是感觉没有太大必要,才写成这样。 + # License Copyright 2014 GavinCT