为什么 Android 不使用 LZ4 / LZMA 压缩其 APK?
Why doesnt Android compress its APK's with LZ4 / LZMA?
我一直在对我们的 Unity 游戏进行一些测试,如果 APK 使用 LZ4 而不是 Zlib 压缩,我们似乎可以将游戏压缩到一半大小。
Android 不使用 LZ4 有什么原因吗?
我认为 iOS 使用它是因为使用 LZ4 压缩时它的大小大致相同。
我认为最简单的答案是他们不需要。虽然 LZ4 非常令人印象深刻,但我认为 Android 团队为了保持与旧设备的向后兼容性而选择保留它。 Android 最初是在 2005 年使用 Zlib,因为他们正在寻找一种被广泛使用并且没有任何专利或许可限制的压缩算法。那是大约六年前,即 2011 年 LZ4 的发布。LZMA 在 1998 年左右存在的时间更长,至于为什么 Android 没有使用我们必须问安迪鲁宾本人。
最合理的答案是因为许可证。
来自 wikipedia 的 zip 许可证:
The .ZIP file format was released into the public domain in 1989.
针对 LZMA 许可证(来自 wikipedia):
The LZMA implementation extracted from 7-Zip is available as LZMA SDK.
It was originally dual-licensed under both the GNU LGPL and Common
Public License,[13] with an additional special exception for linked
binaries, but was placed by Igor Pavlov in the public domain on
December 2, 2008, with the release of version 4.62.
我一直在对我们的 Unity 游戏进行一些测试,如果 APK 使用 LZ4 而不是 Zlib 压缩,我们似乎可以将游戏压缩到一半大小。
Android 不使用 LZ4 有什么原因吗?
我认为 iOS 使用它是因为使用 LZ4 压缩时它的大小大致相同。
我认为最简单的答案是他们不需要。虽然 LZ4 非常令人印象深刻,但我认为 Android 团队为了保持与旧设备的向后兼容性而选择保留它。 Android 最初是在 2005 年使用 Zlib,因为他们正在寻找一种被广泛使用并且没有任何专利或许可限制的压缩算法。那是大约六年前,即 2011 年 LZ4 的发布。LZMA 在 1998 年左右存在的时间更长,至于为什么 Android 没有使用我们必须问安迪鲁宾本人。
最合理的答案是因为许可证。 来自 wikipedia 的 zip 许可证:
The .ZIP file format was released into the public domain in 1989.
针对 LZMA 许可证(来自 wikipedia):
The LZMA implementation extracted from 7-Zip is available as LZMA SDK. It was originally dual-licensed under both the GNU LGPL and Common Public License,[13] with an additional special exception for linked binaries, but was placed by Igor Pavlov in the public domain on December 2, 2008, with the release of version 4.62.