ndk编译so库

新建一个android工程,cd到该工程目录下: javah -classpath bin/classes -d jni -jni com.archermind.contractmanager.Native

红色字体代表native类所在的包名,native是声明的一个本地类

class Native {
    static {
        // The runtime will add "lib" on the front and ".o" on the end of
        // the name supplied to loadLibrary.
        System.loadLibrary("reverse");
    }

    static native void reverse(char[] data);
}

 

执行后会在工程目录中增加一个jni的文件,里面有一个新生成的.h文件,其中由类的接口和返回值的说明,这与你在native类中的定义一致,如绿色部分。然后重命名文件并修改后缀类型,如.c或者.cpp。之后需要一个.mk文件来编译成so库。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := reverse  //生成的so库名字
LOCAL_SRC_FILES := reverse2.c//要编译的文件的名字

include $(BUILD_SHARED_LIBRARY)

 

之后cd到jni目录 执行:ndk-build 即可生成so库(前提是语法没有错误)

posted @ 2012-08-02 15:22  何合  阅读(1582)  评论(0编辑  收藏  举报