2013-03-13 77 views
0

从理论上讲,是否可以从Android NDK运行任何Unix二进制文件?我有以下二进制文件可用:在Android NDK中运行Unix二进制文件

.rpm, Redhat/CentOS 5.8 i386 RPM 
.rpm, Redhat/CentOS 5.8 x86_64 RPM 
.tar.gz, Solaris Sparc 2.10 
.tar.gz, Cygwin 
.tar.gz, MinGW 

还有一个.tar.gz可用,可以从Unix源安装。该应用程序有可用的命令行工具,我希望可以利用NDK。例如:

convert image.jpg image.png 

虽然我刚开始运行NDK示例和教程,但我想知道是否可以实现我想实现的目标。

我不确定上述信息是否足以说明问题,但请让我知道是否有任何更多信息可以提供。

+2

x86的二进制文件?不。绝大多数Android设备都是ARM。 – 323go 2013-03-13 19:47:26

+1

您*可能*在运行ELF格式的* nix二进制文件时已经为ARM CPU编译过。这些存在(例如Debian)。但没有保证 - Android不符合POSIX标准。 – 2013-03-13 19:54:58

+0

谢谢Seva,我会探讨这个选项。 – littleK 2013-03-13 20:07:50

回答

1

Android是它自己的体系结构,因此针对i386,x86_64,Solaris等体系结构的文件将无法在此工作。应该可以使用NDK将Unix Source包转换为可在Android设备上运行的二进制文件。但是,这将取决于源自身依赖的其他库或可能的操作系统功能。

+0

感谢您的帮助。我将会看看是否可以使用NDK将Unix源代码包转换为二进制文件。 – littleK 2013-03-13 19:54:47

+1

这种移植过程通常最终需要查找或移植默认情况下未附带Android的典型unix库的版本。但是有一些方法可以在根用户的Android设备上运行整个Debian ARM linux。 – 2013-03-13 23:04:44

+0

还要注意Android使用仿生libc,而不是glibc。 – fadden 2013-03-13 23:09:32

相关问题