现在的位置: 首页 > 综合 > 正文

浅谈Android下的多渠道打包(补丁版)

2013年02月03日 ⁄ 综合 ⁄ 共 857字 ⁄ 字号 评论关闭

前言

上次提到,如果apk根目录下有其他库生成(或者说jar包中带着的)配置文件或者其他类型的文件(必须存在),用apktool去释放apk一般不会把这些文件释放出来,这样就导致最后打包后的apk和之前的apk相比少了些文件,如果启动的一些功能需要读取这些配置文件,就会导致功能失败,这不是我们想看到的。这里就讲下如何去搞定这样的问题,但是也是属于加个补丁的做法,并不是一劳永逸的,最好就是解包的时候就能把所有文件都释放出来。

正题

思路

其实这个思路非常简单(或者说粗暴,我并不是非常喜欢这样的方式,但是我尚未找到更好的方法,当然从ant那里编译的时候就着手打包不同渠道是另一种方法了,不属于这里的讨论范围,这里仅仅讨论用apktool的方法),就是把你需要加入的额外文件放在一个独立的文件夹中,然后等apktool打包后,用7z的命令行(当然,WINRAR和WINZIP的都可以),把这几个文件先追加进去,然后再进行签名和对其操作。

7z使用到的命令行格式

首先得装这个,然后把7z.exe对应的文件夹加到环境变量的path中,确保cmd下可以调用。然后在之前的渠道打包脚本中在apktool打包后,签名之前,把这个apk追加一些文件:

7z a -tzip unsingedFileName addfiles

稍微解释下(详细的请自己去参考的7z的命令行帮助),a这个参数为archive的缩写,表示是把文件生成为一个归档文件或者是把文件追加到归档文件(压缩包)中,现在用的是追加的方式。把你要追加的文件放到一个固定的文件夹中,然后addfiles可以是这样写".\\addfiles\\*"这样就会把当前指定文件夹下的所有文件都追加到压缩包的根目录中。

实现的建议

如果实现的话,建议还是通过脚本来做吧,这样循环这种好控制,而且可以在配置文件中对不同的SDK做addfiles的标记和配置对应添加的文件夹路径等等。

搞笑的话

本来接入中国移动的支付是为了方便以后能多一个支付渠道,但是事与愿违,原来只有接入在移动商城的版本才支持,囧rz。

抱歉!评论已关闭.