Android中使用的C ++库的最佳架构

时间:2016-10-19 09:26:02

标签: android c++ jna

我正在编译要在我的Android设备上使用的c ++库。

在编译库时,我没有考虑我为其构建库的架构。

因此,我有一个64位动态链接的共享库x86_64,它只适用于64位系统。

我打算使用JNA工具将此库链接到我的Android设备。

为android体系结构和JNA编译我的c ++库的合适方法是什么。

1 个答案:

答案 0 :(得分:1)

您必须使用Android NDK

根据目标体系结构,您必须选择适当的工具链/交叉编译器,例如: ARM,MIPS或x86。

另见Getting Started with the NDK

JNI或JNA与库的构建方式无关。您必须为目标体系结构构建库,以便可以在手机或平板电脑上使用它。

要从Java访问此库,您可以使用JNIJNA

使用JNI,您必须在C / C ++中实现粘合代码。对于JNA而言,您或多或少都是相同的,但您使用现有的库(libffi)并在Java中实现粘合代码。这是在运行时动态完成的,可能会被认为类似于库的反射。