我正在编译要在我的 Android 设备上使用的 C++ 库。
在编译库时,我没有考虑构建库的架构。
因此,我有一个 64 位动态链接共享库 x86_64,它只能在 64 位系统上运行。
我打算使用 JNA 工具将该库链接到我的 android 设备。
为 android 架构和 JNA 编译我的 c++ 库的合适方法是什么。
最佳答案
您必须使用 Android NDK .
根据目标架构,您必须选择合适的工具链/交叉编译器,例如ARM、MIPS 或 x86。
另见 Getting Started with the NDK
JNI 或 JNA 与库的构建方式无关。您必须为您的目标架构构建库,以便它可以在您的手机或平板电脑上使用。
使用 JNI,您必须在 C/C++ 中实现胶水代码。另一方面,使用 JNA,您做的大致相同,但您使用现有的库 (libffi) 并在 Java 中实现胶水代码。这是在运行时动态完成的,可能被认为类似于库的反射。
关于android - Android 中使用的 C++ 库的最佳架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40127335/