在Android上将.so的代码转换为x86

时间:2013-09-03 23:15:38

标签: android assembly android-ndk x86 arm

我正在尝试将为Android Android设备编译的NDK生成的.so文件转换为x86设备的.so文件。

我可以使用.so文件并使用objdump来读取程序集,但是objdump并没有真正把它放到我可以重新编译它的格式中 - 所以转换机器代码指令似乎更容易对一的。

有什么想法吗?我希望将ARM库转换为x86,因此来自NDK的本机代码ARM应用程序将在我的x86 Android VMWare上运行得更好。

2 个答案:

答案 0 :(得分:2)

你所说的是二进制翻译。您可以阅读有关基于x86的移动设备的Intel's solution

这一般不容易解决。您可以尝试调整QEMU的引擎,它将二进制文件转换为中间格式,然后从中生成本机代码,但如果您使用了Android模拟器,则您知道此解决方案的性能可能很差。

答案 1 :(得分:0)

您可以使用以下步骤重新编译,

  1. 在Android makefile中添加APP_ABI:= armeabi armeabi-v7a x86并重建项目
  2. 在命令提示符下(如果未找到makefile)使用以下命令         ndk-build APP_ABI =“armeabi armeabi-v7a x86”
  3. 再次为x86平台打包应用程序