我正在研究如何在x86平台上编译ARM本机应用程序,并且我遇到了两个主题(Houdini二进制翻译和移植),我遇到了一些困难。
这些是我的问题? - 二进制翻译和移植有什么区别 - 这两者是否都是将ARM本机应用程序编译为x86
的一部分感谢您提前提供任何帮助
答案 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。
此致 迪帕克