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

Android Compiling ARM Native Application To x86 (Porting & Houdini)

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

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

提前感谢您的帮助

What is the difference between binary translation and porting

通过二进制翻译,您的应用包含 ARM NDK 二进制文件,并且设备使用 libhoudini 将 ARM 指令翻译为 x86。这会产生更小的 APK 文件,因为它只包含更少的 NDK 二进制文件。但是,生成的转换速度比应用程序随附 ARM 二进制文件的 x86 NDK 二进制文件要慢。

通过移植,您可以明确地将 x86 NDK 二进制文件与 ARM 二进制文件一起发布。与 libhoudini.

相比,这会导致更大的 APK 文件,但会加快 x86 设备上的性能

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

首先我会试着解释一下Houdini。 Houdini 基本上是 x86 上的一种包装器,x86_32 架构。它将 arm 库转换为 x86 库。

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

Houdini 是 wrapper ,如果系统应用程序中没有 x86 库,它将 arm 转换为 x86。

此致, 迪帕克