Eclipse集成Android NDK说明

1 为什么要用NDK ?

以下内容引用自《 Pro Android Games 》

Some Java developers simply dismiss other languages, especially procedural languages like C. I believe

that you should embrace the elegant object oriented features of Java and the raw power of C and there is

nothing you cannot do in the gaming world.

 

翻译过来就是:一些Java 开发者摒弃了像 C 一类的过程化语言,但是要知道美女和野兽的结合是最完美的。

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

2 为什么要集成?

首先考虑一下为什么不集成?

一般来说,集成可以带来快捷,当然,如同IDE 一样,集成会让你的脑子退化,好处就是你可以挤出更多的时间去 YY 。

3 怎样操作?

3.1 预备条件

3.1.1 C ygwin

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

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

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

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

ANDROID_NDK_ROOT = /cygdrive/e/software/android/android-ndk-r4

export ANDROID_NDK_ROOT

3.1.2 Eclipse

我用的是 Galileo 版,你的呢?

3.1.3 Eclipse CDT

CDT,就是 Eclipse 的 C /C++ 环境,在线安装地址 http://download.eclipse.org/tools/cdt/releases/galileo

其实我运行一个NDK 的例子工程后发现, CDT 并不是必须的,不过至少安装 CDT 后并没有什么坏处,在以后你想尝试 QT 之类的东东的时候,可以免去这个安装步骤。

3.1.4 Android SDK

主题不是NDK 么,为什么要 SDK ?

NDK是 core (音:靠), SDK 是壳,或者说 SDK 给 NDK 喂草, NDK 挤出的是奶。

3.1.5 Android NDK

我下载的是 http://dl.google.com/android/ndk/android-ndk-r4-windows.zip 最新的版本,下载完解压到一个目录即可,我的是 E:/software/android/android-ndk-r4 。

以上步骤中,略麻烦的就是cygwin 的安装,没有经验的估计要辗转几次。

 

3.2 开始集成

3.2.1 新建工程

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

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

L ibs目录一会会自动创建,现在木有也没关系。

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

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

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

3.2.2 工程属性

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

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

我的arguments 是: --login -c "cd /cygdrive/e/workspace/hello-jni && $ANDROID_NDK_ROOT/ndk-build"

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

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

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

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

再运行工程,结果正确。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值