Eclipse生成so文件:
1.首先需要eclipse,jdk能正常开发
2.点Window->Preferences->Android->NDK,设置NDK路径(先要下载。如:E:\android-ndk-r9c)
3.在工程上右键点击Android Tools->Add Native Support...,然后给我们的.so文件取个名字,
例如:myndk(myndk.so)
这时候工程就会多一个jni的文件夹,jni下有Android.mk和my-ndk.cpp文件。
Android.mk是NDK工程的Makefile,myndk.cpp就是NDK的源文件
4.建议单独写一个类文件来加载动态库。
如:
public class Load {
static {
System.loadLibrary("NDKTest");//加载so
}
public native int addInt(int a, int b); //调用方法
}
5.现在就可以去写myndk.cpp的代码了。
#include <jni.h>
#include "com_example_ndktest_Load.h"
//JNI接口的命名规范是:Java_ + 调用该方法的包名(包名的点用_代替) + _ + 调用该接口的类名 + _ + 方法名,对于实例方法,
//有两个参数是必要的,一个JNI的环境指针JNIEnv *,另一个是调用该方法的J
1.首先需要eclipse,jdk能正常开发
2.点Window->Preferences->Android->NDK,设置NDK路径(先要下载。如:E:\android-ndk-r9c)
3.在工程上右键点击Android Tools->Add Native Support...,然后给我们的.so文件取个名字,
例如:myndk(myndk.so)
这时候工程就会多一个jni的文件夹,jni下有Android.mk和my-ndk.cpp文件。
Android.mk是NDK工程的Makefile,myndk.cpp就是NDK的源文件
4.建议单独写一个类文件来加载动态库。
如:
public class Load {
static {
System.loadLibrary("NDKTest");//加载so
}
public native int addInt(int a, int b); //调用方法
}
5.现在就可以去写myndk.cpp的代码了。
#include <jni.h>
#include "com_example_ndktest_Load.h"
//JNI接口的命名规范是:Java_ + 调用该方法的包名(包名的点用_代替) + _ + 调用该接口的类名 + _ + 方法名,对于实例方法,
//有两个参数是必要的,一个JNI的环境指针JNIEnv *,另一个是调用该方法的J