本人最近了解了一些关于Android APK对齐的知识,在此写篇博客总结一下:
什么是字节对齐?
所谓的字节对齐,就是各种类型的数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这个就是对齐。我们经常听说的对齐在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文件中,这些文件经常会被多个进程访问:
- 安装程序通过每个apk的manifest文件获取与当前应用程序相关联的permissions信息
- Home程序读取当前APK的