我有很多要从设备发送的数据(文本格式)。这显然意味着我应该压缩它。但我的问题是除了zip算法(like this)之外是否还有其他方法可以做到这一点。我问这个问题的原因是here - 对于一个文本文件,即7-zip比zip更好两倍(!)。这是一个重要的收获。也许还有更好的算法。
那么Android有哪些有效的数据压缩方法(比zip更好)?
答案 0 :(得分:6)
您需要在代码中编译另一个库,因为我怀疑除zlib之外的压缩算法是否可用作Android上标准库的一部分。
您所引用的7-zip算法实际上称为LZMA,您可以在LZMA SDK中以库的形式获取。源代码以Java和C语言提供。如果您可以将C代码链接到您的应用程序中,那么速度会更好。
由于没有免费午餐,速度很重要。 LZMA将需要更多的内存和更多的执行时间来实现改进的压缩。您应该在数据上试验LZMA和zlib,看看您希望在执行时间和压缩之间进行权衡,以选择包并在包中选择压缩级别。
如果您发现自己想要采用其他方式,比zlib更少压缩甚至更高的速度,您可以查看lz4。
答案 1 :(得分:-1)
你的问题太笼统了。
您可以使用任何库,只要它是Java或C / C ++(通过NDK)。如果您不想使用外部库,则必须坚持使用SDK中的内容。根据您发送数据的方式,可能有标准的方法来执行此操作。例如,HTTP使用gzip并且已经定义了必要的头文件。
简而言之,使用您期望的数据格式和大小测试不同的内容,找到最佳的内容并将其集成到您的应用中。