对于安卓的开发,谷歌本身也提供了很多的优化的优化工具。今天是无意间看到了zipalign,通过Zipalign可以让你的应用程序运行更快。我就找了一些资料去看他的实现原理。
我们知道APK其实就是一个Zip压缩文件,从原理上来讲就是通过格式化Zip文件夹中二进制文件的序列,达到提升系统解析速度。就像我们在阅读代码的过程中先格式化一遍代码,会让我们更容易理解其含义一样。在Android平台中,数据文件存储在apk文件中,可以多进程的访问,如果你开发过Win32可能知道程序的粒度对齐问题,不错虽然不是PE格式的文件,在Zip中一样,资源的访问可以通过更好的对其优化,而zipalign使用了4字节的边界对齐方式来影射内存,通过空间换时间的方式提高执行效率。
我理解的是:通俗的说就是按着有利于系统处理的排列方式,对我们apk中的资源文件进行排列,提高资源的查找速度,从而去提高应用的运行效率。
下面我就演示一下手动进行zipalign优化的流程。
开发环境是Android Studio:
在我们的sdk下找到zipalign.exe;我的目录是\Android\sdk\build-tools\24.0.1
把需要优化的.apk文件复制进来。
此时按着shift键,鼠标右击----->在此处打开命令窗口----->zipalign;
便能看到下列信息。
-c :检查.apk文件是否zipalign优化过
-f :覆盖已经存在的文件
-p :页面对其存储对象文件
-v :输出优化后的详细信息 xx.apk
-z :将使用Zopfli
zipalign -v 4 source.apk destination.apk 我的
优化后的apk名字为xing.apk
成功之后的会出现如下图所示的提示
其他的几条命令可以自己尝试一下。处理过后的apk文件,就是我们需要的资源的进行规则后的文件。