JNI生成so
软件:android-ndk-r8 推荐使用这个版本,可以直接不用安装Cygwin软件就可以编译。
然后在系统环境变量中path选项中添加安装路径,比如我的:C:\android-ndk-r8;
然后我在D盘创建一个Test工程,在工程下建立一个jni的文件夹,所有的源代码都需要放在jni下,
在jni文件下创建一个test.h和test.c,内容为:
//test.h: int max(int x,int y);
//test.c #include "test.h" int max(int x,int y) { return (x>y?x:y); }
然后在jni下创建Android.mk文件,这个就是用来描述您的源代码及其编译选项的,具体可以参考
http://www.cnblogs.com/likwo/archive/2012/05/09/2492614.html这篇文章,在此就不多说明了。
我的Android.mk文件内容为:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE:= test LOCAL_C_INCLUDES:= test.h LOCAL_SRC_FILES := test.c include $(BUILD_SHARED_LIBRARY)
然后进入cmd下,进入Test工程,执行ndk-build命令即可。
D:\Test>ndk-build "Compile thumb : test <= test.c SharedLibrary : libtest.so Install : libtest.so => libs/armeabi/libtest.so
然后在Test工程下会生成libs及其obj文件夹,
期中我们需要的so即就在libs/armeabi/libtest.so