Android 上的 Snappy 压缩

Snappy compression on Android

我目前在 Android 上使用 Gzip 压缩 Couchbase 中的附件。最近遇到了 Snappy,这似乎是一个有效的解决方案,所以决定使用 Snappy 而不是 GZip。 活泼 github - https://github.com/xerial/snappy-java 但是我很困惑的是如何使用 Android 中的 Snappy 库。我从 http://central.maven.org/maven2/org/xerial/snappy/snappy-java/1.1.2.1/ 下载了最新版本的 snappy (1.1.2.1) 并将其放在 Android 项目的 libs 文件夹中。我现在可以在我的 Android 源代码中引用 Snappy class 方法,这让我觉得到目前为止一切都很顺利。现在,当我 运行 应用程序时,调用 Snappy.compress(byte[] data) -

时出现以下错误
org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Linux and os.arch=aarch64
org.xerial.snappy.SnappyLoader.findNativeLibrary(SnappyLoader.java:331)
org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:171)
org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:152)
org.xerial.snappy.Snappy.<clinit>(Snappy.java:47)

我创建了一个示例 java class 来测试 Snappy,它运行良好。 因此,根据我的理解,它缺少 Linux 内核的一些本机库,但即使根据 github 页面上的描述,也无法找到构建我可以在 Android。

如有任何帮助,我们将不胜感激。 谢谢

看起来 Linux/aarch64 for Snappy 正在开发中,但尚未发布: https://github.com/xerial/snappy-java/issues/134

您可以尝试 https://github.com/dain/snappy。这是一个纯 java 端口,因此不需要本机库。