X86 库可以在安卓上调用 ARM 库吗?



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

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

Lib1.so 必须打电话给 libthirdparty.so。请问我该怎么办?(如果两个库都是 ARM,它可以与 x86 平台上的 Houdini模拟器配合得很好,但就我而言,我混合了 2 种不同的架构,我不知道它是如何工作的,或者至少如果可能的话)

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

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

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

正如其他人在评论中所说,不建议混合这样的 ABI。你需要正确处理异常,并在用户在仅支持 x86 二进制文件的平台上使用你的应用时向用户发送有意义的消息。

最新更新