我想知道在X86 android平台上运行我的应用程序时是否可以同时使用X86和ARM库?
我的问题如下: 我有一个应用程序来创建x86 android平台。 我有2个共享库(lib1.so和libthirdparty.so) 由于性能原因,Lib1.so是针对x86编译的。 Libthirdparty.so是为ARM编译的库,我无法重新编译它,因为它来自第三方。
Lib1.so必须调用libthirdparty.so。我该怎么办? (如果两个库都是ARM,它可以在x86平台上与houdini仿真器很好地配合使用,但在我的情况下,我混合了两种不同的架构,我不知道它是如何工作的,或者至少是否可行)
答案 0 :(得分:0)
x86二进制文件将无法直接加载和调用ARM二进制文件。
但是你的Java应用程序可以毫无问题地加载它们。
从那里开始,您可以通过JNI或直接使用本机管道或套接字进行通信。
正如其他人在评论中所说,混合这样的ABI并不是真的值得推荐的。您需要正确处理异常,并在用户在仅支持x86二进制文件的平台上使用您的应用程序时向用户发送有意义的消息。