2、编译得到so文件:
在cpp文件所在的目录执行:
g++ -c -fPIC test.cpp 生成o文件
g++ -fPIC -shared -o test.so test.o 生成so文件
step1:将包含native方法的java文件编译成class文件,用javah工具生成h文件。
step2:根据h文件编写c文件。
step3:配置工程,自动生成so文件,配置步骤如下:
a、新建jni文件夹将c文件拷贝至此。
b、在jni下新建Android.mk和Application.mk,其中Android.mk写入:
LOCAL_PATH := $(call my-dir)
LOCAL_SRC_FILES := cppTest-jni.c
其中,LOCAL_MODULE的值是即将生成的动态链接库的名称,LOCAL_SRC_FILES是源文件名称
Application.mk写入:
APP_ABI := all
c、配置eclipse
点击Project->Properties->Builders->New,新建立一个Builder,在弹出的对话框上面点击Program,点击OK;
Location中填入nkd-build的路径(NDK安装目录下)
WorkingDiretcoty中填入HelloJni的工程根目录
在”EditConfiguration“中,配置选项卡”Refresh“:
勾选“Refresh resources upon completion”
勾选“The entire workspace”
勾选“Recuresively include sub-folders”
在”EditConfiguration“中,配置选项卡”Build Options“:
勾选“After a “Clean””
勾选“During manual builds”
勾选“During auto builds”
勾选“Specify working set of relevant resources”
点击“Specify Resources…”勾选TestNDK工程的“jni“目录,Finish
保存设置,点击OK
由于勾选了“During auto builds”,在工程有所改变的时候,eclipse将会自动生成so文件,正确生成后可在libs\armeabi目录下找到对应的so文件。至此,使用NDK生成so文件的工作已经完成!