Android中NDK的so文件产生和使用

参考:http://blog.csdn.net/bingdianlanxin/article/details/46461899

使用工具:eclipse

1.生成so文件

1.1.打开Eclipse,新建一个Android工程

FileàNewàAndroid Application Project

Android中NDK的so文件产生和使用

一路Next下去,直到Finish。

  

1.2.添加so文件

工程右键--Android Tools--AddNative Support...--输入lib.so文件名

这时候工程就会多一个jni的文件夹,jni下有Android.mk和**.cpp文件

Android.mk是NDK工程的Makefile,**.cpp就是NDK的源文件。

 Android中NDK的so文件产生和使用

  

1.3.添加Application.mk文件到jni文件夹中

在文件中填写如下内容:

Android中NDK的so文件产生和使用

  

1.4.根据需要修改Android.mk

多个源文件使用空格隔开,例如:LOCAL_SRC_FILES:= test.c NdkTest.cpp

默认如下:

Android中NDK的so文件产生和使用

  

1.5.编写C/C++文件
函数名比较长但是完全按照:java_pacakege_class_mathod形式来命名

这个例子中,文件路径:MyNdkSoFileàjniàMyNdkSoFile.cpp

 Android中NDK的so文件产生和使用

  

1.6.直接测试生成的so文件

static:表明程序开始运行的时候会加载该NDK, static区声明的代码会先于onCreate方法执行。

native:这个关键字表示这个方法是本地方法,也就是说这个方法是通过本地代码(C/C++)实现的,在java代码中仅仅是声明。

 测试没问题,说明我们的so文件没问题。

 Android中NDK的so文件产生和使用

 

2.使用SO文件

2.1.新建一个Android工程

Android中NDK的so文件产生和使用

  

2.2.修改生成so文件程序中C/C++文件中的函数名

具体参考上面1.5章节。

修改完成后,重新编译生成新的so文件

 

2.3拷贝so文件到应用程序中

四个文件夹里面的so文件对应不同的手机型号,方便起见,最好把这四个文件夹都拷贝。

 Android中NDK的so文件产生和使用

 

2.4调用so文件,查看效果

Android中NDK的so文件产生和使用


 源码下载