موس*_*اور 2 linux android android-ndk
我正在开发一个项目,我需要在Android应用程序中包含NGSpice仿真库,当然也可以使用它.
我尝试使用SWIG和Android NDK在我的Android应用程序中包含NGSpice windows DLL,但事实证明它甚至不可能,所以现在我开始考虑将NGSpice构建为linux的共享库.
现在我的问题是,我可以在我的Android应用程序中使用NGSpice的linux共享库,还是需要以某种方式构建不同的方式来处理我的Android应用程序.
谢谢.
Chr*_*ton 11
不,Android通常与传统的Linux有两个主要区别:
1)它使用Bionic C库和动态链接器,而不是更传统的集合,如glibc.
2)Android通常在ARM或32位x86处理器上运行(或者在极少数情况下是MIPS),而您的桌面Linux库可能是64位或32位x86代码.
如果你构建一个与机器的体系结构兼容的.so,并且使用bionic的系统库函数和动态链接器,那么它应该是可行的.
或者,如果您有兼容的体系结构但错误的libc,可以编写自己的加载器以便在安全设备上以工作形式将其存入内存,或者在有根设备上运行更传统的设备linux用户空间(通常是Debian派生的)在chroot中.但是这些都不容易集成到Android应用程序中 - 对于后者,你几乎肯定必须通过进程间通信来完成工作,这在前一种情况下也可能更容易.
您唯一真正认可的解决方案是使用ndk构建系统或ndk生成的"独立工具链"和库的当前构建系统从源重建库.
归档时间: |
|
查看次数: |
2079 次 |
最近记录: |