在Android应用程序中使用.exe文件

时间:2018-10-01 07:02:17

标签: java android c++

有一种方法可以将带有.exe扩展名的计算机程序放入Android程序,然后通过该程序运行它们。

我已经阅读了有关ndk和win的内容,但我不知道确切如何使用它们

请举例说明或提供完整参考

1 个答案:

答案 0 :(得分:1)

您正在尝试在不同的体系结构和平台(运行于ARM或Arch64上的android)上运行二进制应用程序(适用于Windows的intel x86 .exe)。

我可以想到三种选择:

选项1:仿真

针对不同体系结构运行二进制文件的传统方法是仿真,例如使用Qemu

但是,这仍然留下了不同的平台。例如,如果您的exe文件使用GUI和文件系统,您突然还需要模拟它期望的操作系统的一部分,或者在您的应用程序中附带某些Windows变体的副本,这会受到各种版权限制。 / p>

最后,请记住,Android设备具有与传统Windows PC完全不同的输入机制,因此您必须将Android虚拟键盘(和触摸事件)链接到用于仿真Windows PC的键盘和鼠标。

这并非不可能,但是将需要大量的支持代码。 如果您选择这种方式,建议您首先购买像Raspberry Pi这样的台式机ARM设备,然后使其在该设备上运行。

选项2:反编译并移植到Android

您可以找到将.exe文件转换为一组可编译C或C ++文件的反编译器。这将允许您仔细提取所需的功能,并将其包装在Android本机代码中。几年后,这就是OpenRCT2Diablo移植到Linux和macOS等其他平台的方式。

您不应该期望反编译后的源代码类似于您自己编写的任何内容,但是如果有足够的时间,您最终可能会得到一些Android原生的东西(或linux,macOS甚至iOS)。

选项3:在其他地方托管应用程序

最后,您可以选择根本不将应用程序移植到Android,而是将其托管在可以运行24/7的Windows计算机上,并使其可以在手机上访问。视应用程序而定,它可以采用通过Web输入运行.exe的Web服务的形式,也可以采用成熟的远程桌面/ VNC会话,您可以在其中使用手机的输入法与应用程序进行交互。