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

posted @ 2013-09-16 17:06  蓝夜  阅读(336)  评论(0编辑  收藏  举报