如何在Ubuntu中使用Android共享库

时间:2016-01-19 17:47:38

标签: android python linux shared-libraries

我有一个.so文件,我从Android APK中取出(不是我的应用,因此我无法访问源,只有库)

我想在我的32位Ubuntu机器上使用这个共享对象,并从中调用一些函数(最好用Python)。是否可以将Android .so转换为Linux .so?

或者是否有任何简单的解决方案来访问.so中的函数而无需使用大量的虚拟机或其他东西?

由于

1 个答案:

答案 0 :(得分:1)

很可能不是。很可能你从它上面运行的Android运行在 ARM 架构上,因此为该架构编译了function [X,ITEST,counter] =NLNR(X,F,MAXIT,counter,ABSER,RELER,ITEST) while ITEST==1 %run loop as long as ITEST is 1 counter=counter+1; %use counter to keep track of iterations dX=DFDX/(-F); X=X+dX; if abs(Y(1)-X(1))<ABSER %check convergence ITEST=3; end if abs((Y(1)-X(1))/X(1))<RELER %check convergence ITEST=3; end if counter>MAXIT %check divergence ITEST=2; end Y(1)=X(1); %set Y to check diff in next loop Y(2)=X(2); end 库。

除非您的桌面计算机也在ARM体系结构上(它很可能是x86,而且必须是特定的,例如ARMv7),.so二进制文件在桌面上将不兼容。

根据.so库的实际情况,您可以获取源代码并为x86机器编译它。

免责声明:即使您获得了与桌面(来自x86手机)相同的架构编译的库,也无法保证它能够正常工作。它可能依赖于仅由Android提供的其他库,这可能是一个非常深的兔子洞的开始。