如何编译和运行Android系统上的C / C ++程序

Q1)我想在Android模拟器上运行一个简单的C程序。我在我的机器上使用了windows xp操作系统。 我为Android开发安装了sdk, jdk, eclipse ,并成功在AVD上运行android应用程序。

Q2)我只需要知道在AVD上运行C程序(没有任何Java)有什么办法。 在我的机器上,我已经安装了arm并使用了我编译的C程序。

Q3)我也想知道是否有可能将编译后的二进制文件推送到Android设备或AVD并使用Android设备或AVD的terminal运行?

Solutions Collecting From Web of "如何编译和运行Android系统上的C / C ++程序"

您可以使用ARM交叉编译器编译您的C程序:

 arm-linux-gnueabi-gcc -static -march=armv7-a test.c -o test 

然后你可以把你的编译的二进制文件推到某个地方(不要把它推到SD卡上):

 adb push test /data/local/tmp/test 

如果您已经成功安装了NDK,那么从示例应用程序开始

http://developer.android.com/sdk/ndk/overview.html#samples

如果你有兴趣的另一种方式,那么这可能会有所帮助

http://shareprogrammingtips.com/c-language-programming-tips/how-can-i-write-applications-in-c-or-c-for-android/

我也想知道是否有可能将编译后的二进制文件推送到Android设备或AVD,并使用Android设备或AVD的terminal运行?

在这里你可以看到NestedVM

NestedVM为Java字节码提供二进制翻译。 这是通过将GCC编译为MIPS二进制文件,然后将其转换为Java类文件来完成的。 因此,用C,C ++,Fortran或GCC支持的任何其他语言编写的应用程序都可以在100%纯Java中运行,而不需要更改源代码。


示例: 交叉编译Hello world C程序并在android上运行它

您需要下载本机开发套件 。

如果您想在您的Android设备上直接编译和运行Java / C / C ++应用程序,我推荐使用Google Play的Terminal IDE环境。 这是一个非常漂亮的软件包,可以直接在您的设备上开发和编译Android APK,Java,C和C ++。 界面都是基于命令行和“vi”的,所以它有真正的Linux感觉。 它配备了GNU C / C ++实现。

此外,还内置了telnet和telnet服务器应用程序,因此您可以使用PC和大键盘进行所有编程,但可以在设备上工作。 不需要root权限。