我正在编译要在我的Android设备上使用的c ++库。
在编译库时,我没有考虑我为其构建库的架构。
因此,我有一个64位动态链接的共享库x86_64,它只适用于64位系统。
我打算使用JNA工具将此库链接到我的Android设备。
为android体系结构和JNA编译我的c ++库的合适方法是什么。
答案 0 :(得分:1)
您必须使用Android NDK。
根据目标体系结构,您必须选择适当的工具链/交叉编译器,例如: ARM,MIPS或x86。
另见Getting Started with the NDK
JNI或JNA与库的构建方式无关。您必须为目标体系结构构建库,以便可以在手机或平板电脑上使用它。
使用JNI,您必须在C / C ++中实现粘合代码。对于JNA而言,您或多或少都是相同的,但您使用现有的库(libffi)并在Java中实现粘合代码。这是在运行时动态完成的,可能会被认为类似于库的反射。