Android APK对齐总结
来源:互联网 发布:网络最火的手游 编辑:程序博客网 时间:2024/05/21 06:46
本人最近了解了一些关于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的名称和图标等信息
- System server读取一些与应用运行相关信息
- 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,否则它起不到任何作用。
其他参数:
- -f:输出覆盖已存在的outfile.zip文件
- -v:输出详细的日志
- -p:outfile.zip should use the same page alignment for all shared object files within infile.zip(这句并非相当理解……)
- -c:确认apk是否对齐
0 0
- Android APK对齐总结
- Android Zipalign--apk对齐优化
- Android对APK重新签名并对齐
- Android APK测试总结
- 反编译Android APK总结
- Android--APK更新总结
- Android apk 签名总结
- android预置apk,覆盖原生apk总结
- Android开发之反编译、apk重新打包、apk混淆、apk对齐与不对齐、jar混淆、proguard
- Android开发之反编译、apk重新打包、apk混淆、apk对齐与不对齐、jar混淆、proguard
- Android apk反编译 重打包 重签名 对齐
- Android Apk反编译问题总结
- Android APK DEX分包总结
- Android APK DEX分包总结
- Zipalign--apk对齐优化
- android下apk反编译问题总结
- Android APK逆向工程/反编译总结
- linux下,Android apk 反编译方法总结
- Material Designer扁平化设计
- LeetCode#63. Unique Paths II
- USACO 1.1 黑色星期五 (模拟)
- ArrayList源码分析(JDK1.8)
- NYOJ 三角形面积
- Android APK对齐总结
- 《CSS权威指南》读书笔记5
- 图像处理之二维高斯滤波详解
- 石子合并问题
- Android应用资源---状态颜色列表(Color State List)
- py自学:暴力破解校园网密码
- 前端基础知识(一)
- 山科大校赛C题
- JAVA中的面试题-多线程