2

我想知道在 X86 android 平台上运行我的应用程序时是否可以同时使用 X86 和 ARM 库?

我的问题如下:我要为 x86 android 平台创建一个应用程序。我有 2 个共享库(lib1.so 和 libthirdparty.so) 出于性能原因,Lib1.so 是为 x86 编译的。Libthirdparty.so 是为 ARM 编译的库,我无法重新编译它,因为它来自第三方。

Lib1.so 必须调用 libthirdparty.so。请问我该怎么做?(如果这两个库都是 ARM,它在 x86 平台上与 houdini 模拟器配合得很好,但在我的情况下,我混合了 2 种不同的架构,我不知道它是如何工作的,或者至少如果它是可能的)

4

1 回答 1

0

x86 二进制文件将无法直接加载和调用 ARM 二进制文件。

但是您的 Java 应用程序将能够毫无问题地加载两者。

从那里开始,您可以使它们通过 JNI 或直接使用本机管道或套接字进行通信。

正如其他人在评论中所说,真的不推荐这样混合 ABI。您需要正确处理异常并向用户提供有意义的消息,以防他在仅支持 x86 二进制文件的平台上使用您的应用程序。

于 2014-04-14T09:23:18.097 回答