目前:新版本的jre7中是不含jdk的,如果想用jdk中的工具,比如:javah.exe,则必须再下载安装个jdk,所以养成良好的习惯,安装jre的时候,同时安装jdk,jre和jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
这一篇写的也很好:http://yuanzhifei89.iteye.com/blog/1955532
下面转自:http://blog.youkuaiyun.com/helong275098760/article/details/19847315
一、使用环境 1、windows64位操作系统 2、ADT为adt-bundle-windows-x86_64-20130917 3、NDK为android-ndk-r9b
二、配置生成头文件.h
⒈首先,如图所示,点击External Tools Configurations...
⒉然后,如图所示,点击
⒊接下来,看图操作
这里是为了复制:-classpath ${project_loc}\bin\classes -d ${project_loc}\jni -jni ${java_type_name}
最后点击Apply,然后 我们在一个android工程中新建一个class文件
三、配置build ndk,和上面类似,参考图中配置即可
创建C文件
创建Android.mk文件
创建Application.mk文件
最后 加载so的库文件 就可以把C语言的函数当Java函数使用了
注意:在system.loadLibrary("hello")中的so库是libhello.so,在loadlibrary()的时候注意去掉lib前缀。
好了,上面就是是用eclipse快速开发JNI的方法了,你学会了吗?
下面转自:http://blog.youkuaiyun.com/wh_19910525/article/details/8258134
1、在java代码里,如果想要 加载 libFileLoader.so ,
使用
static {
System.loadLibrary("FileLoader");
}
就可以加载这个动态库了。
这里要注意,参数只写xxx就可以了,不需要写libxxx,也不需要写libxxx.so。
还有一点要说明,System.loadLibrary这个函数会在如下路径搜索libxxx.so文件:
/system/lib
/data/data/you apk package/lib
但,如果libxxx.so还依赖其它.so文件,比如libyyy.so,则System.loadLibrary只会在/system/lib目录下去找,如果没找到,它不会自动到/data/data/you apk package/lib
下去找,这个时候就会报动态库没找到的错;
解决方法是在load libxxx.so之前,先load libyyy.so,如下:
System.loadLibrary("yyy");
System.loadLibrary("xxx");