近来一直在做APK反编译和重编译的工作,针对一些apk需要放入一些相应的文件,(当然这里不涉及非法盈利,都是有合约的),在对一些包打包以后,发现可以通过一个叫做zipalign的工具进行优化,对于这个工具的介绍在谷歌官网有介绍:http://developer.android.com/tools/help/zipalign.html,
对其中我将一部分按照自己的理解翻译出来,如果翻译和理解不到位,还请指正。
zipalign:是一个用于内容对齐的工具,用来优化android apk文件。它的目的是保证所有未被压缩的文件都有特定的对齐。具体的说来,就是他会让所有未压缩的数据,比如raw中的图片都有按照4bite对齐。这样就会让所有的部分都可以直接使用 MMAP 来直接访问,即使MMAP包含了对于二进制数据的对齐限制。它的好处在运行应用的时候,减少了大量的RAM消耗。(因此可以提高apk运行的速度和效率)
你应该在把这个文件发给用户之前,使用这个zipalign来进行对齐。你也可以使用android build
tools来处理。当你在使用android adt插件的时候,到处向导会自动的帮你zipalign
你使用私钥签名以后的apk文件。同样你也可以使用ant脚本来完成zipalign
apk文件,只要你在项目中配置了ant ant.properties
在其中标明
alias,脚本会首先给应用签名。
警告:
zipalign必须要在使用私钥签名以后再使用,否则的话,则会导致签名过程会取消对齐效果。同样的不要在完成对齐以后改动文件内容,比如删除某些内容,这些操作可能破坏已经修改的内容以及对齐项,任何已经加到对齐项中的文件都不会被对齐。
zipalign通过修改在文件开头部分增加一些额外的域,存在于这个额外域的数据可能会被zipalign过程修改。
用法:
校验是否已经优化处理:
1 |
zipalign -c -v <alignment> existing.apk |
使用实例:
1
2 |
<strong><em>zipalign -c -v 4
result.apk </em></strong> |
进行优化处理:
1 |
zipalign [-f] [-v] <alignment> infile.apk outfile.apk |
使用实例:
1
2 |
<em><strong>zipalign -v 4
1 .apk result.apk </strong></em> |
其中
1 |
<em><strong>zipalign 在大家adt\sdk\tools中就有,无需下载,</strong></em> |
原文:http://www.cnblogs.com/xilinch/p/3541766.html