2013-03-13 35 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

相關問題