一、 什么是 NDK?为什么要用它?
比较简单的说,NDK 是一套交叉编译工具,它可以帮你把你用 C 或 C++书写的代
码,编译为.so(类似与 win 下的.dll)格式的文件,使你可以在你的 Android 程序当中
用 Java 语言(JNI)调用这些代码
当你想在 Java 中调用你的 C、C++代码时你就可以用它(废话?),那么什么时候
你可能考虑使用 C、C++代码呢?比如说,你原来用 C、C++写过一个游戏程序,里边
有你大量的封装好的游戏业务逻辑、算法等代码,你现在想把这个游戏移植到 Android
上去,怎么办?难道这些业务逻辑、算法要全部用 Java 重写一遍嘛?现在有了 NDK,
不用了,你可以直接编译移植这代码了,所以说如果你有代码复用需求的时候,你就
可以用它。
再举一个例子,比如说你现在用 Android 手机的摄像头采集图片信息,采集后的图
片你使用 Java 书写了一个压缩算法进行压缩操作,这个算法非常的耗时,耗费 CPU,效
果很不理想。这时你就可以尝试采用 C 来书写这个压缩算法,这时你就可能发现,改
用 C 代码执行后,效率提高了几倍乃至十几倍。当你的客户对程序的性能、速度要求
比较高的时候,你也可以考虑用 C、C++代码编写部分代码,以满足客户要求。
所以说如果没有 NDK 编译的话,你的这些代码在 Android 上是跑不起来的。
二、 看起来似乎不错,我已经想试试了,我要怎么做?
2.1 什么是 cygwin?为什么要用它?
由于 NDK 编译代码时必须要用到 make 和 gcc,所以你得先弄个 linux 环境,如果你只
有 windows 又不想安装 linux 环境怎么呢?这时候,cygwin 上场了,cygwin 是一个在
windows 平台上运行的 unix 模拟环境,它对于学习 unix/linux 操作环境,或者从 unix 到
windows 的应用程序移植,非常有用。通过它,你就可以在不安装 linux 的情况下使用
NDK 来编译 C、C++代码了。
下边,跟我一步一步来安装吧:
1、 首先,你得先跑到 http://www.cygwin.com
评论11
最新资源