Android多渠道打包

产品每次发布,都需要打很多渠道的包。之前用per脚本打包,后来添加了自定义空间属性后,就不能打了。Ant脚本打包又嫌麻烦,引用的工程太多。最后想到一个办法就是反编译。

 

原理:每个渠道的包只有AndroidManifest.xml文件中渠道的ID不一样。所以反编译APK后,修改AndroidManifest.xml的渠道ID。最后重新打包。

 

步骤:

1.反编译已经打好包的APK(这里只用了-s,尝试过加上-r,但是AndroidManifest.xml文件没有被反编译,就删掉了)

1 java -jar apktool.jar  d -s APK_NAME

2.修改AndroidManifest.xml文件中渠道ID

3.生成未签名的APK

1 java -jar apktool.jar  b FILE_DIR UNSIGN_APK_NAME

4.将未签名的APK进行签名

1 jarsigner -verbose -keystore KEY_FILE_NAME -storepass PASSWORD -sigalg SHA1withRSA -digestalg SHA1 -signedjar SIGN_APK UNSIGN_APK ALIAS_NAME

5.将签名的APK进行优化

1 zipalign -v 4 SIGN_APK ZIPALIGN_APK

新的APK就生成了。以上步骤需要配置好JDK和SDK环境变量。

可以自己写一个java代码,循环替换渠道ID,就可以自动生成对应渠道包了

 

简略的写了个多渠道打包工具。可以猛戳这里进行下载。使用方法参见下载包里面的README.txt文件

 

Android多渠道打包

上一篇:Android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?


下一篇:Android TDD平台插入双卡时,查看允许返回发送报告的选项,去掉勾选,不起作用