AndroidC语言开发系列.doc

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AndroidC语言开发系列

一、Android C语言开发之一【开发环境的配置】Android是基于Linux的操作系统,处理器是ARM的,所以要在Linux或Windows等x86系统上编译Android能运行的程序,你需要一个交叉编译器。   在Linux下面,你可以自已编译一个交叉编译环境,但Windows下面,就比较复杂(也可以在cygwin中编译一个),但你可以选择下载一个现成的交叉编译环境:   /gnu_toolchains/arm/download.html   Windows: /gnu_toolchains/arm/portal/package3400/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.exe   Linux: /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!\nIm %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/sample   adb push hello /dev/sample/hello   adb shell chmod 777 /dev/sample/hello   先创建 /dev/sample目录,再将编译好的hello上传上去,最后将hello改成可执行的。   再进入命令行模式,进入Android的shell环境:   adb shell   #cd /dev/sample   #./hello   进入 /dev/sample目录,执行hello,运行结果如下图: 2011-2-13 10:49 上传 Android C语言开发之二【framebuffer篇】如对Android原生(Natvie)C开发还任何疑问,请参阅《Android C语言开发之一:环境搭建篇》:/forum.php?mod=viewthreadtid=1316extra=page%3D1   虽然现在能通过交叉环境编译程序,并push到Android上执行,但那只是console台程序,是不是有些单调呢?下面就要看如何通过Linux的 framebuffer 技术在Android上画图形,关于Linux的framebuffer技术,这里就不再详细讲解了,请大家google一下。   操作framebuffer的主要步骤如下:   1、打开一个可用的FrameBuffer设备;   2、通过mmap调用把显卡的物理内存空间映射到用户空间;   3、更改内存空间里的像素数据并显示;   4、退出时关闭framebuffer设备。   下面的这个例子简单地用framebuffer画了一个渐变的进度条,代码 framebuf.c 如下: #include unistd.h #include stdio.h #include fcntl.h #include linux/fb.h #include sys/mman.h inline static unsigned short int make16color(unsigned char r, unsigned char g, unsigned char b) { ? ? return ( (((r 3) 31) 11) | (((g 2) 63) 5)??| ??((

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档