今天研究用zipalign(压缩对齐)优化APK文件。
未签名的apk不能使用,也不能优化。签名之后的apk谷歌推荐使用zipalign.exe(位于android-sdk-windowstools目录下)工具对其优化:
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-sdksbuild-tools24.0.0-previewzipalign -v 4 C:UsersAdministratorDesktopsigned.apk C:UsersAdministratorDesktopfinal.apk 的时候,出现了 Unable to open 'C:UsersAdministratorDesktopsigned.apk' as zip archive 这个错误。
经过测试发现是因为编码不符造成的,只要在eclipse的ini文件里(eclipse.ini)加入
-Dfile.encoding=utf-8 就可以解决。
最后
以上就是优美大白最近收集整理的关于有关zipalign的一些问题的全部内容,更多相关有关zipalign内容请搜索靠谱客的其他文章。
发表评论 取消回复