linux apk 打包工具,linux下apk批量打包

1.思路

整个思路就是,把需要修改的参数以的方式定义在项目的AndroidManifest.xml文件中,具体参数如何获取及具体用法这儿我就不多说,然后打包好一个完整的apk包作为参照包。然后用python脚本把调用apktool工具把apk解开,修改xml文件里面节点下对应参数的值,然后再把apk封起来。提供参数的文件我这儿用的是一个txt的文件,利用python脚本循环读取txt中的每一行,每一行代表一个apk所需的所有参数,使用时以'#'字符split.具体的可参照python脚本的主函数. 当然各位使用的话可以根据自己的需要另行修改,即使对python不懂的童鞋也不用慌张,其实我也不懂,但只要你有一定代码基础,再花十几分钟认真看看这个脚本文件,就会读懂具体的情节,然后根据自己需要修改。

2.崭新的linux环境下需要安装:

以下所有操作都是在linux终端里面用命令行搞定,所以大多数情况下是需要超级管理员权限。

①.jdk/jre

刚开始搞这个'工具'时,用的是一个新装的ubuntu12.04的系统。没想到会需要装jdk/jre的环境。但是在执行python脚本时,看日志报了一个错误,提示需要jre的环境,所以就想起还没装它的包,一查看ubuntu自带了jdk的包,所以就直接使用命令行装了。

②.expect包

为嘛要装这个呢,是因为在打包apk的时候,需要输入签证秘钥时,用到了shell脚本来处理交互动作,就是检测到日志输出:Enter Passphrase for keystore时就输入密码,shell脚本此处用处就是不需要自己手动来输入,直接用脚本交互。在我自己玩这个打包的时候,发现我装的ubuntu日志输出要求输入秘钥时竟然报出的是:输入密钥库的口令短语。所以这个需要根据自己装的系统来查看具体情况,然后适当修改shell脚本里面的东西。如何查看呢,直接在终端里面用命令行运行这个shell脚本,就可以看到它的系统日志提示。

③.python环境

为嘛需要装这个运行环境,我就不多说。具体如何装,大家去go去哈。

④.androidSDK环境,要用到zipalign并赋予可执行权限

因为新装的linux系统,所以没有android的开发环境,在给apk打包的时候,最后一步用到了androidSDK里面的zipalign这个工具。如果你没装这个包,在执行python脚本的时候,日志会报错告诉你找不到这个包。所以我就索性在官网下载了一个android开发的adt,里面附带了最新版SDK,然后就把SDK,tools下的这个包copy到/usr/local/bin下面去,并赋予可执行权限。

⑤.apktool 三个文件都赋予权限.

apktool工具,是在解开apk时会用到,所以需要装这个包。这个需要在网络上去下载,我下载的地址是

http://code.google.com/p/android-apktool/downloads/list到这个里面去把第一个和最后一个ForLinux的都下载下来,解压缩有三个文件,aapt、apktool、apktool.jar  都拷贝到 /usr/local/bin下面去,并赋予可执行权限。

3.准备完成后,如何打包

以上一切工作准备好之后,只需要执行python脚本,就会自动打包了。txt文件中有多少行,就会打包多少个,如果情况正常的话。

注意的地方:

1.shell脚本中 spawn /usr/bin/jarsigner -verbose -keystore 自己的秘钥文件名 -signedjar $new_name $origin_name 生成秘钥时的Alias

2.注意文件的路径及命名,比如所需参数的txt文件的路径,python中调用的shell脚本的路径,还有已经存在原始的apk的路径和命名,目前提供的文件中都是放在同一目录下的相对路径。

3.最后打包出来的apk文件也在同一目录下,但是请大家验证一下其可用与否,主要是验证它的签名是否正确,最简单的方式就是覆盖安装确定正确的包,看能否覆盖安装成功。

4.整个过程中涉及到很多linux基础命令,如果linux菜鸟,最好请教一下同事或朋友帮忙。

5.之前尝试了把这套脚本放在windows下去执行,但无论我如何装执行shell脚本的兼容包神马的,都没能成功。这套脚本的原创者是android开发者@杨豪 同学。作为高富帅的他是在自己的mac下运行的,所以我只是把它移植到linux下了而已。谢谢@杨豪 同学给于我莫大的帮助哈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值