5

我有很多数据(文本格式)要从设备发送。这显然意味着我应该压缩它。但我的问题是除了 zip 算法(像这样)之外,是否还有其他方法可以做到这一点。我问这个问题的原因就在这里- 对于文本文件,即 7-zip 比 zip 好两倍(!)。这是一个重大的收获。也许还有更好的算法。

那么Android有没有有效的数据压缩方式(比zip更好)?

4

2 回答 2

6

您需要将另一个库编译到您的代码中,因为我怀疑除zlib以外的压缩算法可作为 Android 标准库的一部分。

您提到的 7-zip 算法实际上称为 LZMA,您可以在LZMA SDK中以库的形式获得。源代码在 Java 和 C 中都可用。如果您可以将 C 代码链接到您的应用程序中,那么这对于速度来说将是可取的。

因为没有免费的午餐,所以速度很重要。LZMA 将需要更多的内存和更多的执行时间来实现改进的压缩。您应该对数据使用 LZMA 和 zlib 进行试验,以查看您希望在执行时间和压缩之间进行权衡,以选择包和选择包中的压缩级别。

如果你发现你想换一种方式,比 zlib 更少压缩甚至更高的速度,你可以看看lz4

于 2012-07-25T16:23:06.003 回答
-1

你的问题太笼统了。

您可以使用任何库,只要它是 Java 或 C/C++(通过 NDK)。如果您不想使用外部库,则必须坚持使用 SDK 中的内容。根据您发送数据的方式,可能有标准的方法可以做到这一点。例如,HTTP 使用 gzip 并且已经定义了必要的标头。

简而言之,用你预期的数据格式和大小测试不同的东西,找到最好的,然后将它集成到你的应用程序中。

于 2012-07-25T09:18:43.943 回答