目前大多数android手机都是基于arm架构的。因此理论上只要是用c语言写的程序,使用ARM交叉编译的工具即可编译,通过以后,就可以在任意的Android手机上运行二进制程序了。

建立ARM的交叉编译环境并不难,网上有不少教程,而且很详细。不过在这里,我们使用一种更为简便的方法。

  1. 下载安装Android NDK 开发环境,其实也不需要安装了,在http://developer.android.com 上下载NDK压缩包,解压开就可以用了。
  2. NDK 提供了一组工具,可以允许开发者生成一套自己的交叉编译环境,这样直接省略了自己配置ARM交叉编译环境的过程,在命令行下输入: $NDK/build/tools/make-standalone-toolchain.sh --platform=android-5 --install-dir=/tmp/my-android-toolchain 这一行命令就创建了/tmp/my-android-toolchain 这个文件夹,里面包含了android-5 下面的交叉编译工具,这里android-5 指的是android的release,即android1.5 .如果要在android2.2上面建立交叉编译环境的话,只需要改成android-8 即可。
  3. 在环境变量里面配置路径信息,比如 export PATH=/tmp/my-android-toolchain/bin:$PATH ,或者把这一行加入到你的 .profile 文件的末尾。
  4. 测试
#include <stdio.h>
int main(){
printf("hello arm world\n");
exit(0);
}

arm-linux-androideabi-gcc -o hello hello.c

然后把编译好的hello 上传到你的手机上,从命令行里面运行hello就能看到结果了