如何使用 NDK 中包含的 Android 依赖项?

How do I use included Android dependencies from within the NDK?

我正在尝试在 Android 中使用 SQLCipher。他们通过添加依赖项使集成变得非常容易:

implementation 'net.zetetic:android-database-sqlcipher:4.2.0@aar'

他们在 Java 中提供了很好的简单示例,但我的应用程序是 c++,我使用的是 NDK。 SQLCipher 主要是 C 代码,所以我知道这是针对一些已编译的 C 代码的链接。 headers 可以使用吗?这些依赖项安装在哪里。我是 Android 的 iOS 开发人员,所以我觉得这应该很简单,但我只是遗漏了一些东西。

对于 ndk 可以直接使用的库,您需要它的 .so 版本以 link 反对。如果您像这样包含库,您将使用 JNI 通过 Java.

访问它

我建议不要通过破解某些东西来直接访问他们的 .so 文件。如果您直接针对他们的 .so 文件,他们的 Java 代码很可能具有防止错误或未正确设置的初始化事物的业务逻辑。

目前不支持使用 AAR 中的 C/C++ 依赖项。我们正在努力解决这个问题:https://github.com/android-ndk/ndk/issues/916

但我应该注意,即使完成后,sqlcipher 也需要选择公开该库。 AAR 当前不包含 include,它可能不稳定 API 因此他们可能选择不公开它。