压缩/解压缩内存中的数据

时间:2014-03-20 16:21:37

标签: android c++ eclipse opencv android-ndk

在android中使用C ++(安装了OpenCV)......

我有一些数据存储在内存中(大约140mb),我需要将其保存到文件中,然后通过互联网发送。我想做的是先压缩它(将压缩的数据放入不同的内存块),然后保存。我还需要能够反转该过程,即将压缩文件加载到一个内存块中并扩展到另一个内存块中。我并不关心使用什么类型的压缩。实施的简单性对我来说是最重要的。

我确信之前已经提出了类似的问题,但我不相信他们会在古怪的Android NDK环境中工作。

1 个答案:

答案 0 :(得分:3)

ZLIB是通用数据压缩/解压缩的不错选择。它作为NDK库的一部分包含在内。 DEFLATE()和INFLATE()函数被广泛使用并且有很好的文档记录。它们还可以根据不同的速度和压缩比轻松调整。 Android中的zlib静态库简称为“z”。

在您的C / C ++代码中,添加以下行:

#include <zlib.h>

在Android.mk文件中,将“-lz”添加到LOCAL_LDLIBS行。例如:

LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -lz -llog