Android native C开发
来源:互联网 发布:新东方英语网络课程 编辑:程序博客网 时间:2024/04/29 16:17
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目录 (我的是E:/ProgramFiles/CodeSourcery/Sourcery G++ Lite/bin)加入你的PATH环境变量中,就可以开始你的Android Native C开发之旅了,写好一个简单的C程序:
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("hello android!/nI'm %s!/nI like androidvery much!!!/n", "Gary Lee");
return 0;
}
另存成test.c,进入命令行模式,确保交叉编译器的bin目录,及AndroidSDK的tools目录在你的系统环境变量的path里面,用如下命令编译:
打开cygwin的命令窗口,记得环境变量一定要设置正确!
arm-none-linux-gnueabi-gcc -static test.c -o test
此时,cygwin命令窗口不用关闭,注意,一定要加上static参数,否则编译好的可能会在Android上不能运行。
启动Android模拟器,用如下命令将文件push到Android模拟器上:(接着上面的命令窗口,在里面输入如下内容)
adb shell mkdir /dev/sample
adb push hello /dev/sample/test
adb shell chmod 777 /dev/sample/test
创建完/dev/sample目录后,将编译好的hello上传上去,最后将hello改成可执行的。
再进入命令行模式,进入Android的shell环境:
adb shell
#cd /dev/sample
#./test
进入 /dev/sample目录,执行hello,运行结果如下图:
- Android native C开发
- Android原生(Native)C开发
- Android原生(Native)C开发
- 转帖:Android原生(Native)C开发
- Android原生(Native)C开发 -- framebuffer篇
- Android原生(Native)C开发之三
- Android原生(Native)C开发:编译选项小结
- Android原生(Native)C开发之一:环境搭建篇
- Android原生(Native)C开发之二:framebuffer篇
- Android原生(Native)C开发之四:SDL移植笔记
- Android原生(Native)C开发之五:zlib移植笔记
- Android原生(Native)C开发之六:libpng移植笔记
- Android原生(Native)C开发之七:libjpeg移植笔记
- Android原生(Native)C开发之九:OpenGL ES初探
- Android原生(Native)C开发之二 framebuffer篇
- Android原生(Native)C开发之五:zlib移植笔记
- Android原生(Native)C开发之六:libpng移植笔记
- 【转】Android原生(Native) C开发之一 环境搭建篇
- POJ 2255 Tree Recovery解题报告
- 不好的事情,终于还是发生了
- windows mobile c++ 浏览文件方法
- Linux安全攻略 SSH服务连接时常见问题解答
- 2010-1-17 CCAS团队会议
- Android native C开发
- 64位Ubuntu上装QQ
- 用命令行启动和停止oracle服务
- SDE For Oracle的安装问题简记
- Mobicents在IMS中的位置
- POJ 2553 The Bottom of A Graph
- Windows server 2003设置IP安全策略批处理脚本[转载]
- 用Timer更新UI
- JQuery语法总结和注意事项