已阅读:12,674 次
Android NDK开发环境搭建
ian | Android | 2012/04/07


Android应用运行在JAVA虚拟机上,因此开发环境一般使用JAVA,但是对于有些场景,比如访问底层设备、驱动开发、或者对性能要求很敏感时,我们就必须使用NDK了。NDK开发语言是C,通过NDK提供的编译工具,将我们的Native Code编译成so动态链接库,这样Java就可以通过加载so的方式来调用Native Code,性能的提升可不是一星半点。

下面简单介绍一下Windows下怎么配置NDK开发环境。这里假设大家已经安装好了Android的开发环境,包括jdk、android sdk以及eclipse。

1、安装Cygwin
由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境,下载地址:http://www.cygwin.com/

下载后是个setup.exe文件,按照向导安装即可,值得注意的是最后一步选择安装项。

按照默认的选择方式,安装程序会下载很多我们无需使用的组件,这样可能会花上4、5个小时。这里我们只需要勾选一些必要组件即可,如下所示,这些组件都在上图箭头所指的Devel下:

1
gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、make

之后就是等待下载完成,下载完成时间决定于你选择的安装包数量及网络连接速度。

2、安装android NDK

您可以下载NDK r4 for Windows或NDK r5 for Windows安装包,下载地址: http://developer.android.com/sdk/ndk/index.html 直接解压到Cygwin安装路径的根目录下,如下图:


Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。samples下面包含几个实例开发演示项目,第一次接触NDK开发,建议先从示例开始。下面先看一下编译环境配置。

3、环境配置
添加如下项到系统环境变量中:

1
2
3
NDK_ROOT = C:\cygwin\android-ndk-r7b
NDK_Sample = C:\cygwin\android-ndk-r7b\samples
Path = C:\cygwin\android-ndk-r7b;C:\cygwin\bin

4、验证Cygwin环境
双击运行Cygwin.bat,进入NDK Console环境,输入gcc -v,结果如下说明make安装成功

输入ndk-build,结果如下,说明ndk安装无误。

若上面的步骤无误,则接下来我们就可以开始进行NDK开发了。

5、运行Demo
NDK提供了一些示例工程,这些工程在android-ndk-r7b\samples目录下。我们可以选择其中一个项目hello-jni,将其导入eclipse。跟一般的Android项目相比,hello-jni在项目根目录下多了几个目录,其中jni目录是用来保存C代码的目录,此外还有一个Android.mk文件,这个是用于编译的。另一个目录libs是保存编译后的so动态链接库的,我们的Android项目会自动从这个目录下加载so。

hello-jni.c只提供了一个方法,返回一个字符串,我们可以直接从eclipse里运行Android工程,可以看到UI上显示了这个字符串”Hello from JNI !”我们可以修改一下这个字符串,修改完之后保存文件,之后就是编译*.C源文件。

5、编译
还是双击打开Cygwin.bat,进入NDK环境。之后输入”cd /android-ndk-r7b/samples/hello-jni”进入项目所在目录,执行ndk-build命令,然后会自动的将jni目录下的代码编译生成相应的so文件。

至于如何控制编译参数,可以参考samples中提供的一些Android.mk的写法。

原创文章,转载请注明:转载自ian的个人博客[http://www.icodelogic.com]
本文链接地址: http://www.icodelogic.com/?p=537

tags:

4条评论

  1. Alen 说:

    之前你那个访问大量联系人啥的不是很慢么。。。能用NDK吗?

  2. gold account 说:

    2、 运行cygwin,输入命令cd /cygdrive/e/android-ndk-r7/samples/hello-jni,进入到E:android-ndk-r7sampleshello-jni目录。

发表评论

你需要先 登录 才能回复