java - 在 android 应用程序中使用 .exe 文件
问题描述
有一种方法可以将带有 .exe 扩展名的计算机程序放入 Android 程序中,然后通过该程序运行它们。
我已阅读有关 ndk 和 win 的信息,但我不知道如何使用它们
请举例说明或提供完整参考
解决方案
您正在尝试在不同的架构和平台(运行在 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 会话。
推荐阅读
- node.js - apollo-angular error // 角度项目无法编译
- php - 在php中的提交按钮后打印账单发票
- python - 用一个字典/多个字典创建一个类
- vue.js - VUE 使用 axios- 从服务器接收但未显示的数据
- css - 闪亮的模态:宽度自动调整到里面的内容
- python - Python可以使用不同的格式化程序将日志记录到同一个文件中吗
- azure - 多个 Azure 区域上的 Azure AD DS
- java - 将本机查询重构为 JPQL 查询
- linux - 通过虚拟零调制解调器连接的两个真实串行端口(在 linux 或 windows 中)
- git - 在 vsts 环境中将 git 作为源代码,是否可以克隆子文件夹并将其从一个存储库推送到另一个存储库?