博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Eclipse集成Android NDK详解
阅读量:4160 次
发布时间:2019-05-26

本文共 2277 字,大约阅读时间需要 7 分钟。

1        目录

 

 

 

 

 

NDK?

《Pro Android Games》

Some Java developerssimply dismiss other languages, especially procedural languages like C. Ibelieve

that you shouldembrace the elegant object oriented features of Java and the raw power of C andthere is

nothing you cannot doin the gaming world.

 

相比起Android的开源项目而言,C世界已经积累了很多可供复用的开源项目(包括很多著名的游戏如Quake、DOOM),在执行效率上涉及到大量数学运算的部分也可以考虑由C完成。

可以大大提高开发效率

1、下载NDK包

2、解压,我们这里将解压到/home/ideasandroid/dev/目录下。

解压后目录结构为:/home/ideasandroid/dev/android-ndk-r4

3、配置path路径:

命令行执行sudo gedit/etc/profile,在文件末尾加入如下内容:

#set NDK env

NDKROOT=/home/ideasandroid/dev/android-ndk-r4=

export PATH=$NDKROOT:$PATH

保存后,重启机器。至此 android NDK 安装完毕。

4、编译sample工程:

执行命令 cd/home/ideasandroid/dev/android-ndk-r4/samples/hello-jni 进入示例项目根目录,然后执行如下命令:

ndk-build

 

 

如果你工作在Windows环境而又不想使用linux环境,可以安装cygwin( ),为了使用gcc注意cygwin的必选安装包在devel目录下:binutils,gcc,make

Cygwin的更多细节可以从网上获取。

总之,安装完成以后,运行cygwin的快捷方式,在控制台输入命令 gcc和make,有合理的反馈即可(不是SB的command not found),证明你就可以在伪造的linux下开始造人计划了。

我在cygwin里面加了个环境变量,你也可以考虑加一下,后面方便(写你自己的目录哦):

ANDROID_NDK_ROOT=/cygdrive/d/android-ndk-r5b

export ANDROID_NDK_ROOT

下载最新版的Eclipse

CDT,就是Eclipse的C/C++环境,在线安装地址 。

运行一个NDK的例子工程后发现,CDT并不是必须的

下载Android sdk

我下载的是最新的版本。

 

运行Eclipse,新建一个android project,取名hello-jni(或者你喜欢的其他比如fxxk-jni也行)。

工程代码就从你的NDK/samples/hello-jni拷贝一份即可,记得拷贝jni那个目录,最终的目录结构如图。

 

如果你现在运行这个工程,就会在android控制台看到如下错误:

java.lang.UnsatisfiedLinkError:Library hello-jni not found

因为你还没有造出那个libhello-jni.so出来。

打开hello-jni工程属性,选择builder,选择program,点OK

 

配置如下,名字随便取一个,location和working directory要和你的cygwin目录一致,arguments要和你的工程目录一致。

我的arguments是:--login -c "cd/cygdrive/d/AndroidCode/hellondk &&/cygdrive/d/android-ndk-r5b/ndk-build"

 

上面的图片应该看得清吧,然后勾选其他配置如下

 

 

注意在勾选Specify working set of relevant resources时指定资源选择你的工程的jni目录即可。

当以上步骤都正确配置无误,保存配置后应该就会自动编译jni目录下的C相关代码并输出相应的.so库文件到工程的libs目录下,libs目录会自动创建。

编译时控制台输出类似如下:

 

如果出现控制台出现:

can't open file/cygdrive/e/android-ndk-r7/build/awk/check-awk.awk

 source line number 1 source file/cygdrive/e/android-ndk-r7/build/awk/check-awk.awk
 context is
        >>>  <<<
Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point toGawk or Nawk !
/cygdrive/e/android-ndk-r7/build/core/init.mk:258: *** Android NDK: Aborting.   。 停止。

 

出现此类问题的解决办法是: \NDK目录\prebuilt\windows\bin\awk.exe,把awk.exe删除或改名,之后编译通过。

再运行工程,结果正确。

以后修改了C代码,保存后也会自动触发编译,省时省力。

 

转载地址:http://yedxi.baihongyu.com/

你可能感兴趣的文章
2006年的IT十大战略技术
查看>>
操作系统介绍
查看>>
Desktop Linux: The Dream Is Dead
查看>>
我的9年IT路
查看>>
任正非:让用户像用电一样享受云计算
查看>>
学习技术的几个境界
查看>>
计算机世界:免费的代价
查看>>
方兴东:中国网站十年
查看>>
2010年微软和谷歌十大战场:从桌面到浏览器
查看>>
服务器虚拟化的未来之路
查看>>
写给我们这些浮躁的系统工程师
查看>>
和平分手?你根本不知道吴恩达在百度经历了什么
查看>>
业余研究:关于腾讯与他的QQ帝国
查看>>
马云校长湖畔大学第三期讲义完整版
查看>>
iPhone为什么比Android好
查看>>
小程序的今天就是微信指数的明天
查看>>
从互联网到人工智能,BAT这七年来到底做了什么
查看>>
2012年十大科技趋势:Siri将震惊世界
查看>>
2017(第十届)中国绿公司年会马云演讲
查看>>
李彦宏:睡不着觉不是因对手
查看>>