我有一个用C编写的程序,带有标准的main()
函数。
是否可以在Android上运行此程序,例如从我的应用程序或众多shell应用程序之一启动它?如果是这样,我需要采取哪些步骤来实现这一目标?我可以用NDK编译应用程序吗?
我知道有一些关于如何将C函数链接到Android代码的问题,主要指向NDK教程,但至少对我来说,没有一个是明确的。似乎NDK完全是关于使用C函数,而不是运行完全C编译的程序。这是对的吗?
答案 0 :(得分:5)
您需要做的就是使用交叉编译器为正确的体系结构(通常是ARM)编译它(如何获取它取决于您的Linux发行版)。然后你可以像你的(基于Java)一样执行它,就像任何其他的可执行文件一样:
Process process = Runtime.getRuntime().exec(commandLine);
有关“执行”部分的更多信息,请参阅Any way to run shell commands on android programmatically?。
答案 1 :(得分:0)
NDK包括从C源构建可执行文件所需的所有工具,可供Linux,Mac和Windows下载。你应该使用的神奇魅力是包括$(BUILD_EXECUTABLE)