在Android SDK中包含了一个名为Zipalign的工具,它可以用于优化APK程序包。
我们知道APK其实就是一个Zip压缩文件,通过Zipalign可以让你的应用程序运行更快。从原理上来讲就是通过格式化Zip文件夹中二进制文件的序列,达到提升系统解析速度。就像我们在阅读代码的过程中先格式化一遍代码,会让我们更容易理解其含义一样。
在Android平台中,数据文件存储在apk文件中,可以多进程的访问,如果你开发过Win32可能知道程序的粒度对齐问题,不错虽然不是PE格式的文件,在Zip中一样,资源的访问可以通过更好的对其优化,而zipalign使用了4字节的边界对齐方式来影射内存,通过空间换时间的方式提高执行效率。
下面来看下 zipalign使用的例子:
zipalign位于android sdk的tools文件夹下面,如果你使用windows操作系统可以通过cmd来执行它:
完整的命令行说明为
E:\android-sdk-windows\tools>zipalign.exe Zip alignment utility |
使用方法比较简单 zipalign -v 4 source.apk destination.apk 其中这里-v代表详细输出, 4代表对齐为4个字节,同时-f参数如果添加则会覆盖存在的输出文件
对于是否有效可以通过 zipalign -c -v 4 destination.apk 来查看是否成功的优化了你的apk文件,这里-c参数代表检查对齐,可以看作是只读执行,最后提示大家这步可能会造成文件签名问题,注意和apk签名执行的顺序。
最后在说明一下,此优化是有必要的,最新的Android SDK并没有自动完成该步骤。