Android编译ARM本机应用程序到x86(移植和Houdini)

时间:2015-03-16 17:50:15

标签: android android-ndk x86 arm porting

我正在研究如何在x86平台上编译ARM本机应用程序,并且我遇到了两个主题(Houdini二进制翻译和移植),我遇到了一些困难。

这些是我的问题? - 二进制翻译和移植有什么区别 - 这两者是否都是将ARM本机应用程序编译为x86

的一部分

感谢您提前提供任何帮助

2 个答案:

答案 0 :(得分:4)

  

二进制翻译和移植之间有什么区别

通过二进制转换,您的应用程序包含ARM NDK二进制文件,设备使用libhoudini将ARM指令转换为x86。这会导致较小的APK文件,因为它只包含较少的NDK二进制文件。但是,如果应用程序将x86 NDK二进制文件与ARM一起发送,则生成的转换速度较慢。

通过移植,您可以显式发送x86 NDK二进制文件和ARM文件。与libhoudini相比,这会导致更大的APK文件,但会提高x86设备的性能。

在任何一种情况下,您都应该在x86设备以及ARM设备上测试您的代码。另外,不要忘记我们现在也有64位ARM和x86 CPU。

答案 1 :(得分:-1)

首先,我将尝试解释Houdini。 基本上Houdini是x86,x86_32架构的友好包装器。它将arm库转换为x86 lib。

将arm应用程序移植到x86,您的应用程序性能会下降,并且您的设备将表现得像cpu图形性能

Houdini是包装器,它将arm转换为x86,如果系统应用程序中没有x86 lib。

此致 迪帕克