include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := libdatabase_sqlcipher.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/../lib //指定生成路径,默认到/system/lib64,由于是32位库,所以需重新指定
LOCAL_SRC_FILES := jniLibs/armeabi/$(LOCAL_MODULE)
#OVERRIDE_BUILD_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PREBUILT_LIBS :=libdatabase_sqlcipher:jniLibs/armeabi/libdatabase_sqlcipher.so
LOCAL_PREBUILT_LIBS +=libsqlcipher_android:jniLibs/armeabi/libsqlcipher_android.so
LOCAL_PREBUILT_LIBS +=libstlport_shared:jniLibs/armeabi/libstlport_shared.so
#LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/../lib
include $(BUILD_MULTI_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := sqlcipher.jar
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE_PATH := $(TARGET_OUT_JAVA_LIBRARIES)//最终生成在/system/framework下面
LOCAL_SRC_FILES := libs/sqlcipher.jar
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := sqlcipher:libs/sqlcipher.jar
include $(BUILD_MULTI_PREBUILT)
#LOCAL_JAVA_LIBRARIES += org.apache.http.legacy
LOCAL_JNI_SHARED_LIBRARIES := libdatabase_sqlcipher libsqlcipher_android libstlport_shared
LOCAL_PRIVILEGED_MODULE := true
include $(BUILD_PACKAGE)
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
Android1、下载NDK,并在Eclipse中配置路径:2、创建一个Android工程hellojni。右键工程,选择Add Native Support自动生成C/C++工程:
3、修改C/C++代码,配置一下Android.mk:
4、点击保存就会自动生成动态链接库libhellojni.so。也可以通过命令ndk-build手动生成。
Windows
1、打开Visual Studio,创建一个Win32工程hellojni:
2、在应用类型中选择DLL:
3、配置头文件和库的路径:
4、点击build就可以生成hellojni.dll。
Mac OS X
1、打开Xcode,创建一个工程hellojni :
2、framework选择STL:
3、在build设置里,配置JavaVM 头文件路径和库路径:
4、点击build就可以生成libhellojni.dylib。
Java工程中如何使用JNI:
1、申明native接口:
public native String stringFromJNI()
public native static void nativePrint()
2、加载动态链接库:
static {
System.loadLibrary("hellojni")
}
注意以下几点:导入的文件名要和你定义的类同名;resource里面添加的的new resource的setting项里要添加在library中的文件路径,case中在new suit时的setting项里要添加在resource中的文件路径,它们是一个调用一个的欢迎分享,转载请注明来源:内存溢出
评论列表(0条)