Android APK对齐总结

2018-08-30  本文已影响31人  breaktian

什么是字节对齐?

所谓的字节对齐,就是各种类型的数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这个就是对齐。我们经常听说的对齐在N上(N字节对齐),它的含义就是:数据的存放起始地址%min(N,数据字节大小)== 0。

需要字节对齐的根本原因在于CPU访问数据的效率问题,数据字节对齐后可以减少CPU访问内存的次数,但相应的,字节对齐也增加了内存空间的消耗(存在某些空内存没被使用)。

什么是Zipalign?

首先给出官方链接:https://developer.android.google.cn/studio/command-line/zipalign.html

zipalign是Android SDK中的一个用于优化APK的新工具,它提高了优化后的Applications与Android系统的交互效率,从而可以使整个系统的运行速度有了较大的提升。

根据官方文档的描述,Android系统中应用的数据都保存在它的APK文件中,这些文件经常会被多个进程访问:

zipalign优化的最根本目的是帮助操作系统更高效率的根据请求索引资源,通过将apk中的未压缩数据进行字节对齐(一般为4字节对齐),允许系统使用mmap方法直接映射文件至内存空间,降低内存的消耗。

如何使用Zipalign?

一般来说,Android Studio会自动帮你进行zipalign相关的优化。

手动进行优化时,zipalign所在的位置为:sdk目录/build-tools/对应版本号,不同的Android版本对应着不同的zipalign工具。

对齐一个apk文件的方法如下:

对齐infile.apk并输出为outfile.apk

zipalign [-f] [-v] <alignment> infile.apk outfile.apk

验证一个apk文件是否对齐的方法如下:

zipalign -c -v <alignment> existing.apk

<alignment>指的是字节对齐参数,一般来说这个参数的值均为4,否则它起不到任何作用。

其他参数:

上一篇 下一篇

猜你喜欢

热点阅读