JNI&NDK安装以及问题
一、准备工作
Java环境已经配置好
Java 环境安装容易丢失文件和库,不行的话就重新安装,一定要卸载干净和重启电脑!!
Cygwin
http://www.cygwin.com/setup.exe
Android-ndk-版本信息
http://dl.google.com/android/ndk/android-ndk-1.6_r1-windows.zip
二、安装Cygwin
1.从指定网址下载Cygwin得到.exe安装文件。
2.点击安装
这里需要选择一个网址下载,一般都会选择http://mirro.kernel.org没有的话你可以add进去。你也可以下载其他的,这个主要是网速,下载的快慢而已。
在一个就是选择要安装的packages,一般都是说十二个就可以(参考http://hi.baidu.com/j_key/item/bdfe28f6b1758ad56325d259)。也可以都选择就是下载的时间问题。
3.安装完成可以进入查看安装是否成功,
gcc -v
make -v
出现版本信息就说明安装正确了。
如果没有就是说明你的安装包选择的不够全面,重新安装,仔细一点也许就没有问题了。
三、ndk的安装
1.下载android-ndk。
2.将android-ndk解压到自己喜欢的位置,打开cygwin进入ndk的根目录(低版本的可能可以运行build/host-setup.sh会出现一个信息表类似的信息,表明安装正确。)
3.高版本就进入根目录,然后进入sample文件夹,里面是给出的例子。
4.进入一个实例文件夹如:hello-jni,然后ndk-build没有错误就表示成功(前提没有设置环境变量)。
5.这里一般不会出现问题,如果出现就是你的ndk包有问题,可以重新下载或者解压。
四、配置ndk的环境变量
1.首先进入cygwin的安装目录下的home文件夹,里面是你的笔记本或者是电脑的用户名的文件夹,进入修改.bash_profile文件(我的是E:\cygwin\home\Administrator\.bash_profile)
(用文本打开就行,读代码的也可以)在最后添加:
NDK=/cygdrive/你的NDK解压位置/ <android ndk 目录>
export NDK
2.打开cygwin,输入cd $NDK回车,输出设置的路径,表示成功。
3.如有错误查看你输入的路径是否正确。其他的应该没有问题,如有问题可以交流一下。
五、JNI接口的创建
1.进入eclipse建立一个简单的android工程,如:hello world;
2.在src里新建一个java文件(JNI.java)并且新建一个JNI的类 如图:
Package和你新建出现的那个java文件是一样的;
3.在你的那个java文件下添加如下:
说明:testjni是你将来要生成的动态库的名字(libtestjin.so)
下面是调用你的JNI类以及类的方法。
4.打开cygwin,进入到你新建的工程的根目录下的bin文件夹下的classes下
输入的是javah -jni 加上 package名 加上你的类的名字JNI 回车
(这样不会出现找不到类的错误,如果你不是在这个目录下可能就会发生类找不到的 问 题)
运行会在当前目录下产生一个.h文件,说明JNI的预约头文件产生了。
5.接下来就是编写C的代码,这要根据你的头文件里的预约函数来写
头文件的内容:
.C文件的内容如下
这样你也可以在红线的函数内添加你所写的任意的C写的函数,我这是个例子就没有 写。
到这里JNI的接口已经做完。
六、NDK生成动态库文件
1.在你的android工程根目录下新建一个jni文件夹,把刚才的.c和.h文件剪切过来。
2.在jni文件夹下新建一个android.mk文件内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := testjni (动态库的名字)
LOCAL_SRC_FILES :=com_example_hellojni_JNI.c
include $(BUILD_SHARED_LIBRARY)
http://www.cnblogs.com/fuxiuyuan/archive/2012/04/17/2454160.html 各个步骤的意思参 考
3.打开cygwin进入到安卓工程的根目录下,运行$NDK/ndk-build就会产生动态链接库 (在libs文件夹里的armeabi里).so文件
4.重新编译生成apk安装运行就可以了。
参考资料地址:
http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817386.html
http://blog.youkuaiyun.com/zengyangtech/article/details/6046170
图片内容可以去参考资料地址查看