Android是基于Linux的操作系统,处理器是ARM的,所以要在Linux或Windows等x86系统上编译Android能运行的程序,你需要一个交叉编译器。

在Linux下面,你可以自已编译一个交叉编译环境,但Windows下面,就比较复杂(也可以在cygwin中编译一个),但你可以选择下载一个现成的交叉编译环境:

http://www.codesourcery.com/gnu_toolchains/arm/download.html

Windows:http://www.codesourcery.com/gnu_toolchains/arm/portal/package3400/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.exe

Linux:http://www.codesourcery.com/gnu_toolchains/arm/portal/package3399/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.bin

安 装好了之后,将 CodeSourcery编译器的bin目录 (我的是D:\Program Files\CodeSourcery\Sourcery G++ Lite\bin) 加入你的PATH环境变量中,就可以开始你的Android Native C开发之旅了,写好一个简单的C程序:


#include <stdlib.h>int main(int argc, char** argv) { printf("hello android!\nI'm %s!\nI like android very much!!!\n", "Martin Foo");  return 0;}


另存成hello.c,进入命令行模式,确保交叉编译器的bin目录,及Android SDK的tools目录在你的系统环境变量的path里面,用如下命令编译:

arm-none-linux-gnueabi-gcc -static hello.c -o hello

注意,一定要加上static参数,否则编译好的可能会在Android上不能运行。

启动Android模拟器,用如下命令将文件push到Android模拟器上:


adb shell mkdir /dev/sampleadb push hello /dev/sample/helloadb shell chmod 777 /dev/sample/hello

先创建 /dev/sample目录,再将编译好的hello上传上去,最后将hello改成可执行的。

再进入命令行模式,进入Android的shell环境:


adb shell#cd /dev/sample#./hello

进入 /dev/sample目录,执行hello,

更多相关文章

  1. android ndk编译x264开源(用于android的ffmpeg中进行软编码)
  2. [android]编译时出现/usr/bin/ld: skipping incompatible /usr/l
  3. 编译android的linux内核
  4. Android(安卓)命令行编译、打包生成apk文件
  5. Android(安卓)Studio & ADT 快捷键配置文件所在目录,自定义后可导
  6. Android热更新框架Tinker无法更新?
  7. 总目录
  8. Android(安卓)UI系列 - 布局 - 目录
  9. android 目录结构,adb环境变量配置

随机推荐

  1. 使用append方法将对象转换为字符串
  2. 什么“返回此”在javascript函数中做什么
  3. 实现浮动广告的代码
  4. OnClick事件只获取第一个动态创建的行/ i
  5. 删除没有\ r \ n的换行符
  6. 为什么我的javascript/jquery代码不能像
  7. 从表的第一行和第一列中删除可选择的jque
  8. 【JavaScript】案例一:使用JS完成注册页面
  9. Javascript实现统一的表单验证
  10. 从特定条件下存储在localStorage中的数组