Android初识JNI-筹建NDK开发环境

Android初识JNI-搭建NDK开发环境

在使用Jni之前,我们先了解一下:

1:什么是JNI

2:为什么要用JNI,

3:JNI的相关配置。

4:在android中使用JNI

那么问题来了:

JNI:从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的。例如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少保证本地代码能工作在任何Java虚拟机环境下。


2:为什么用Jni:简而言之,有些东西我们用JAVA做不到的,例如操作系统内部空间,对图像和视频相关的高级处理,然后又很多东西C/C++已经有有了使用广泛的开源代码,例如openEl,coco2d-x,ffmpeg,等等,最近用的一项webrtc实时通信也是用到了Jni相关的技术。



3:然后开始搭建环境,如果你用的是AndroidDeveloper官网自带的已经整合好的adt开发的话就比较简单了(而且这个是自带自动识别C语言关键字高亮显示的,不需要再配置cdt开发环境), 首先要下载这个

:android-ndk-r8c.zip 最新的还像已经是r10了,大家可以去android开发者官网下载,然后我们需要在adt中关联目录。Android初识JNI-筹建NDK开发环境

然后不要忘了配置环境变量,新建 变量名 NDK_ROOT  变量值:E:\android-ndk-r8c(这里是你的ndk目录,一定要注意,不要有空格,本人就是放在在Program Files下导致配置各种不成功,不说了啊,说多了都是泪(இдஇ; )),然后在path中添加%NDK_ROOT%;


配置环境变量完成后,我们可以在cmd中打上ndk-build测试是否配置成功;

Android初识JNI-筹建NDK开发环境


这里没有成功是因为没有找到需要build的c文件,大家不用担心,下一篇文章我会写一遍例子,android中Jni的程序。

还有一种方法是需要下在cygwin,因为我这里只是简单的学习Jni,而且测试过我这种方法就可以搭建好所需要的环境,就不在这里做过多阐述,有需要的童鞋可自行百度。

好了,就到这里了,明天会做个android Jni的小Demo,就HelloWorld吧。