否。Android通常与传统linux有两个主要区别:
1)它使用Bionic C库和动态链接器,而不是更传统的集(例如glibc)。
2)Android通常在ARM或32位x86处理器(或在极少数情况下为MIPS)上运行,而您的桌面Linux库可能是64位或32位x86代码。
如果您构建的.so与机器的体系结构以及仿生的系统库功能和动态链接器兼容,那么它应该是可行的。
或者,如果您有兼容的体系结构但错误的libc,则可以编写自己的加载程序以工作形式将其加载到受保护设备或有根设备上的内存中,从而可以运行更传统的加载程序chroot中的linux用户空间(通常是Debian派生的)。但是,这两种方法都不容易集成到Android应用程序中-对于后者,您几乎肯定必须通过进程间通信来传递工作,并且在前一种情况下也可能会更容易。
您唯一真正认可的解决方案是使用ndk构建系统或ndk生成的“独立工具链”以及该库的当前构建系统从源代码重建该库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句