【发布时间】:2015-05-18 23:14:20
【问题描述】:
我正在研究如何在 x86 平台上编译 ARM 原生应用程序,我遇到了 2 个我遇到困难的主题(Houdini 二进制转换器和移植)。
这些是我的问题吗? - 二进制翻译和移植有什么区别 - 两者都是将 ARM 原生应用程序编译到 x86 的一部分吗
提前感谢您的帮助
【问题讨论】:
标签: android android-ndk x86 arm porting
我正在研究如何在 x86 平台上编译 ARM 原生应用程序,我遇到了 2 个我遇到困难的主题(Houdini 二进制转换器和移植)。
这些是我的问题吗? - 二进制翻译和移植有什么区别 - 两者都是将 ARM 原生应用程序编译到 x86 的一部分吗
提前感谢您的帮助
【问题讨论】:
标签: android android-ndk x86 arm porting
二进制翻译和移植有什么区别
通过二进制翻译,您的应用包含 ARM NDK 二进制文件,设备使用 libhoudini 将 ARM 指令翻译成 x86。这会导致 APK 文件更小,因为它只包含更少的 NDK 二进制文件。但是,生成的转换比应用程序提供 x86 NDK 二进制文件与 ARM 二进制文件时要慢。
通过移植,您可以将 x86 NDK 二进制文件与 ARM 二进制文件一起明确传送。与libhoudini 相比,这会产生更大的 APK 文件,但会提高 x86 设备上的性能。
无论哪种情况,您都应该在 x86 设备以及 ARM 设备上测试您的代码。另外,不要忘记我们现在也有 64 位 ARM 和 x86 CPU。
【讨论】:
首先,我将尝试解释一下 Houdini。 基本上 Houdini 是 x86 , x86_32 架构的一种包装器。它将 arm 库转换为 x86 库。
将 arm 应用程序移植到 x86 会降低应用程序的性能,并且您的设备会像 cpu 图形性能一样表现出色
Houdini 是包装器,如果系统应用程序中没有 x86 库,它会将 arm 转换为 x86 。
问候, 迪帕克
【讨论】: