1-安卓底层–基础
先看看代码: java 调用 C/C++ 代码
1.TestJni.java
public class TestJni{
static{
System.loadLibrary("xxx"); //加载 libxxx.so 库文件
}
public native void hello(); //本地方法,在so文件里实现
public static void main (String [] args){
TestJni d = new TestJni();
d.hello(); //调用库文件里面的hello方法
}
}
2.编译java程序 javac TestJni.java
生成 TestJni.class
3.通过javah生成jni接口 javah TestJni
生成 TestJni.h
4.新建xxx.c 文件 然后实现接口
#include<jni.h>
JNIEXPORT void JNICALL Java_TestJni_hello(JNIEnv * env, jobject obj){
printf("hello world\n");
}
5.编译成so库文件 ( linux 动态库命名规则 lib + 库名 + .so window 库名+.dll )
gcc -shared -fPIC xxx.c -o libxxx.so -I /usr/lib/jvm/java-7-openjdk-amd64/include/
* -I 指定头文件的路径 -L 指定库的路径 -l更上名字 -lm -lsqlite3