ARM架构的二进制文件能在英特尔处理器上运行吗?[安卓]

5

我使用NDK为ARM处理器构建了二进制文件,但由于一些依赖项,我无法为x86构建它们。是否有可能在x86或MIPS架构上使用这个二进制文件?

3个回答

11

这个二进制文件能在x86或MIPS架构上使用吗?

我无法评论MIPS。

使用libhoudini的x86设备将能够使用基于ARM的NDK二进制文件。据我所知,大多数当前一代的x86设备,如三星的某些平板电脑都已经配备了libhoudini。如果您通过Play商店发布应用程序,则配备libhoudini的设备应该能够下载和安装您的应用程序,而无需进行任何更改。

但是请注意,libhoudini运行ARM二进制文件比运行x86二进制文件慢得多。这类似于Android模拟器运行ARM模拟器映像比运行x86模拟器映像慢得多。


感谢您的澄清! - Taras

1
x86和MIPs设备都有能力进行ARM二进制翻译,MIPs使用Magic Code,而x86使用Houdini。但是,这两种方法都有成本,并且都不太可能成为长期解决方案(这两家公司很可能希望它们早日消失)。
你提到由于某些依赖问题,你无法为x86构建库?情况还是这样吗?我想你正在使用某个不包括x86版本的库?
供以后参考,如果你确实想要构建x86本机版本,这个过程非常简单,你只需要添加APP_ABI+=x86或将x86添加到现有的APP_ABI列表中......就是这样。真的。

0

绝对没有可能一个CPU的构建会被另一个CPU所理解。

例如,指令集是不同的,这就像用英语词典(CPU)来解释法语文本(代码)。


我听说在安装了英特尔架构的 Android 设备上有一些翻译器,因此它们应该提供一些兼容性,但我不确定。 - Taras

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接