【问题标题】:Running Unix Binaries in Android NDK在 Android NDK 中运行 Unix 二进制文件
【发布时间】:2013-03-13 19:36:06
【问题描述】:

是否(理论上​​)可以从 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 Source 安装。该应用程序有可用的命令行工具,我希望利用 NDK 加以利用。例如:

convert image.jpg image.png

虽然我刚刚开始浏览 NDK 示例和教程,但我想看看我想要实现的目标是否可行。

我不确定以上信息是否足以说明,但是如果我可以提供更多信息,请告诉我。

【问题讨论】:

  • x86 的二进制文件?不会。绝大多数 Android 设备都是 ARM。
  • 可能对为 ARM CPU 编译的 ELF 格式的 *nix 二进制文件有一些运气。那些存在(例如Debian)。但不能保证 - Android 不符合 POSIX。
  • 谢谢 Seva,我会探索这个选项。

标签: android linux unix android-ndk


【解决方案1】:

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

【讨论】:

  • 感谢您的帮助。我将看看是否可以使用 NDK 将 Unix Source 包转换为二进制文件。
  • 这样的移植过程通常最终需要查找或移植默认情况下不随 Android 提供的典型 unix 库的版本。但是有一些方法可以在有根的 Android 设备上运行整个 Debian ARM linux。
  • 请注意 Android 使用 Bionic libc,而不是 glibc。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多