首页 > 解决方案 > 在 android 应用程序中使用 .exe 文件

问题描述

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

我已阅读有关 ndk 和 win 的信息,但我不知道如何使用它们

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

标签: javaandroidc++

解决方案


您正在尝试在不同的架构和平台(运行在 ARM 或 Arch64 上的 Android)上运行二进制应用程序(Windows 的英特尔 x86 .exe)。

我可以想到三个选项:

选项 1:仿真

为不同架构运行二进制文件的传统方法是仿真,例如使用Qemu

但是,这仍然留下了不同的平台。例如,如果您的 exe 文件使用 GUI 和文件系统,您突然还需要模拟它所期望的操作系统的某些部分,或者随您的应用程序提供一些 Windows 变体的副本,这将具有各种版权限制。

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

这并非不可能,但需要大量的支持代码。如果你选择走这条路,我建议你先买一个类似桌面的 ARM 设备,比如树莓派,然后让它在那里工作。

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

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

您不应该期望反编译的源代码与您自己编写的任何东西相似,但如果有足够的时间,您最终可以得到一些 Android-native(或 linux、macOS 甚至 iOS)的东西。

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

最后,您可以选择根本不将该应用程序移植到 Android,而是将其托管在您可以 24/7 运行的 Windows 机器上,并使其可以在您的手机上访问。根据应用程序的不同,这可以采用通过网络输入运行 .exe 的 Web 服务的形式,或者您可以使用手机的输入法与应用程序交互的成熟远程桌面/VNC 会话。


推荐阅读