PythonTool多渠道打包 (PythonTool的使用方法)

Android 多渠道打包的方法其实有很多。你可能用过友盟的多渠道打包 http://bbs.umeng.com/thread-9119-1-1.html
实现友盟的多渠道打包 详情看友盟。现在分享一种多渠道打包的简单方法。
 

1.第一步,我们使用gradle打包 ,生成Android apk文件。

命令 window下:release包 : .\gradlew clean assembleRelease -Penv=p -x bundleReleaseJsAndAssets  

debug 包 :.\gradlew clean assembleDebug -Penv=p

mac 下 

release包 : ./gradlew clean assembleRelease -Penv=p -x bundleReleaseJsAndAssets

debug 包 :./gradlew clean assembleDebug -Penv=p

p 为线上环境标志

 

 

 

2.把apk拷贝到 PythonTool根目录

 

3.mac端打开终端 进入 PythonTool 目录下

cd 到PythonTool目录下,可以拖拽,进入


4.进入到 PythonTool后 执行 ./MultiChannelBuildTool.py 命令 即可
注意:如果执行 ./MultiChannelBuildTool.py 命令出现错误时 查看你是否安装Python (mac用户可在执行命令时根据提示安装,win 需要自行下载Python 安装,下载链接呈上:https://www.python.org/getit/ 并配置环境变量);

window下安装Python环境后,可以直接运行MultiChannelBuildTool.py 文件就可以了。


5.打开 PythonTool 目录 发现生成一个 out_put 文件夹 就说明成功了

 

图片.png

 

安卓多渠道打包工具。  

实现思路讲解: [Android批量打包提速 - GavinCT](http://www.cnblogs.com/ct2011/p/4152323.html)  

参考:https://github.com/GavinCT/AndroidMultiChannelBuildTool

使用本工具,Android程序员仅需将ChannelUtil.java放入到工程里使用,以后打包的事情就不用自己动手了。  

安装个Python环境,运行一下MultiChannelBuildTool.py,谁都可以打包了!

# 写在最前面

本工具不支持v2签名,如有需要,请使用[Meituan-Dianping/walle](https://github.com/Meituan-Dianping/walle)

# 具体使用步骤

将想要批量打包的apk文件拷贝到PythonTool目录下(与py同级),运行py脚本即可打包完成。(生成的渠道apk包在output_** 目录下)

# 目录介绍及使用注意

## PythonTool

Python2 与 Python3 都能正常使用 

 

- info目录下的channel用来存放渠道,多个渠道之间用换行隔开。  

  注意:  

  fork后通过Github clone,这个channel文件在Windows端是正常的,以换行隔开(`\r\n`)。  

  直接点击右侧的download下载zip,可能你在windows端看到的就不是以换行隔开的(`\n`)。  

  这是Github造成的。但不会影响程序最后的运行效果。   

  你可以粘贴下面的渠道到channel.txt中保持它在windows端的可读性。

 

  ```

  samsungapps

  hiapk

  anzhi

  360cn

  xiaomi

  myapp

  91com

  gfan

  appchina

  nduoa

  3gcn

  mumayi

  10086com

  wostore

  189store

  lenovomm

  hicloud

  meizu

  baidu

  googleplay

  wandou

  ```

  也可以自己来写入自己需要的市场,并以换行隔开

- MultiChannelBuildTool.py是多渠道打包的脚本。

 

## JavaUtil

ChannelUtil.java 用来解析渠道,直接拷贝到Android工程中使用即可。  

ChannelUtil中的getChannel方法可以方便的获取渠道。 

 

# 常见问题答疑 

 

这部分问题是由美团大神<a href="http://weibo.com/coderdd" target="_blank" >丁志虎</a>在微博上答复的,摘录如下:

 

- 这个方案没法解决不同渠道使用渠道自己SDK的问题,友盟的SDK提供了在代码中设置渠道的方式,所以再获取到渠道号后再调用SDK相关设置渠道的方法就可以了

- apk用的是java那一套签名,放在META-INF文件夹里的文件原则上是不参与签名的。如果Google修改了apk的签名规则,这一套可能就不适用了。

 

# 注意

 

问:同样一个版本号的2个渠道包,比如先装了360,那么SharedPreferences存的就是360了。这时再用xiaomi渠道的去覆盖安装,那么读出来的渠道号还是360的。不知道博主对这个问题怎么看,还是去掉sp缓存,就保留内存和包中读取?

 

答:

 

看你个人的使用场景吧 一般来说 渠道使用无非是统计升级渠道、根据相应渠道变化样式、上报崩溃信息携带渠道。

 

- 针对1:统计不怎么需要特别情况,你说的这种情况我们也考虑过,但一般用户大多不会这么折腾,也就QA这么玩。

- 针对2:使用flavor来解决了。而不是判断渠道。早期适配魅族手机也是不管渠道,只看是不是魅族手机

- 针对3:这个印象也不大,如果是某渠道包崩溃,少这几个也不会影响。

 

综上,我们选择不再读取。

当然,如果你有其他使用场景,考量之后觉得要精确,可以每次读包,缓存到内存中。当时我是感觉没有太大必要,才写成这样。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值