我有一个用 C 语言编写的具有标准main()
功能的程序。
是否可以在 Android 上运行该程序,例如从我的应用程序或从许多 shell 应用程序之一启动它?如果是这样,我需要采取哪些步骤来实现这一目标?我可以只用 NDK 编译应用程序吗?
我知道有一些关于如何将 C 函数链接到 Android 代码的已回答问题,主要是指出 NDK 教程,但至少对我来说,没有一个是清楚的。似乎 NDK 只是使用 C 函数,而不是运行完全 C 编译的程序。这个对吗?
我有一个用 C 语言编写的具有标准main()
功能的程序。
是否可以在 Android 上运行该程序,例如从我的应用程序或从许多 shell 应用程序之一启动它?如果是这样,我需要采取哪些步骤来实现这一目标?我可以只用 NDK 编译应用程序吗?
我知道有一些关于如何将 C 函数链接到 Android 代码的已回答问题,主要是指出 NDK 教程,但至少对我来说,没有一个是清楚的。似乎 NDK 只是使用 C 函数,而不是运行完全 C 编译的程序。这个对吗?
您需要做的就是使用交叉编译器为正确的架构(通常是 ARM)编译它(如何获得它取决于您的 linux 发行版)。然后你可以像任何其他可执行文件一样从你的(基于Java的)执行它:
Process process = Runtime.getRuntime().exec(commandLine);
请参阅以编程方式在 android 上运行 shell 命令的任何方式?有关“执行”部分的更多信息。
NDK 包括从 C 源代码构建可执行文件所需的所有工具,可在 Linux、Mac 和 Windows 上下载。你应该使用的魔法魔法包括 $(BUILD_EXECUTABLE)