android – 为什么我会使用未对齐的apks?

前端之家收集整理的这篇文章主要介绍了android – 为什么我会使用未对齐的apks?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我运行gradle任务“assembleDebug”以获得调试版本时,我放在手机上它还会生成另一个apk:MyApp-debug-unaligned.apk.

我想我理解拉链的“对齐”意味着什么.它已经优化了文件边界的放置以便于解压缩(如果我错了,请纠正我).这只是一个优化,并且与Android没有多大关系.

因此,由于Android将所有应用程序保留为apks,并且似乎只是在运行时将其解压缩,因此仅安装对齐的优化apks将会有所帮助.拉链对齐包也需要花费相当多的时间,但这可能仅仅是因为我的特定应用程序的大小.

一个未对齐的拉链什么时候会对它的对齐替代品有益?或者只是因为你必须有一个未对齐的版本来对齐,并且该过程在完成后不会清除未对齐的文件

解决方法

你永远不会使用未对齐的APK.

这是一个没有清理的中间产品.在我看来应该是.

这个怎么运作:

对齐的作用是将图像和其他大量未压缩数据放在4字节边界上.这会增加文件大小,但会导致它们属于某个页面.它避免了必须从APK中为单个图像拾取多个页面(即最小化拾取的页面数量).由于图像以4字节边界开始,因此我们不会获取与其他进程相关的垃圾数据的可能性更高.

这最终允许我通过占用更少的页面来浪费更少的RAM并且运行得更快.一个微不足道但很好的优化

大约需要花费的时间,这是相对微不足道的,所以值得.显然,您拥有的数据越多,所需的时间就越多,但从未如此重要.恕我直言,编译器应该丢弃未对齐的文件,但我想有人想保留它.

资源:

ZipAlign的公告

http://android-developers.blogspot.com/2009/09/zipalign-easy-optimization.html

目前的ZipAlign文档

http://developer.android.com/tools/help/zipalign.html

关于数据结构对齐(阅读填充)

https://en.wikipedia.org/wiki/Data_structure_alignment

猜你在找的Android相关文章