今天研究用zipalign(压缩对齐)优化APK文件。
未签名的apk不能使用,也不能优化。签名之后的apk谷歌推荐使用zipalign.exe(位于android-sdk-windows\tools目录下)工具对其优化:
D:\>zipalign -v 4 signed.apk final.apk
zipalign能够使apk文件中未压缩的数据在4个字节边界上对齐(4个字节是一个性能很好的值)//TODO 需要研究mmap()函数。
未签名的apk不能使用,也不能优化。签名之后的apk谷歌推荐使用zipalign.exe(位于android-sdk-windows\tools目录下)工具对其优化:
D:\>zipalign -v 4 signed.apk final.apk
zipalign能够使apk文件中未压缩的数据在4个字节边界上对齐(4个字节是一个性能很好的值)//TODO 需要研究mmap()函数。
注意:
1.在4个字节边界上对齐的意思就是,一般来说,是指编译器吧4个字节作为一个单位来进行读取的结果,这样的话,CPU能够对变量进行高效、快速的访问(较之前不对齐)。
2.对齐的根源:android系统中的Davlik虚拟机使用自己专有的格式DEX,DEX的结构是紧凑的,为了让运行时的性能更好,可以进一步用"对齐"进一步优化,但是大小一般会有所增加。
不过我在运行D:\>D:\android-sdks\build-tools\24.0.0-preview\zipalign -v 4 C:\Users\Administrator\Desktop\signed.apk C:\Users\Administrator\Desktop\final.apk 的时候,出现了 Unable to open 'C:\Users\Administrator\Desktop\signed.apk' as zip archive 这个错误。
经过测试发现是因为编码不符造成的,只要在eclipse的ini文件里(eclipse.ini)加入
-Dfile.encoding=utf-8 就可以解决。