Android.mk
LOCAL_PATH:= $(call my-dir)
TOP=.
include $(CLEAR_VARS)
LOCAL_MODULE := chcrypto
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES :=
# Header files path
LOCAL_C_INCLUDES := mbedtls library
LOCAL_LDLIBS := -lm -llog
#LOCAL_LDFLAGS+= ../chcrypto/library/libchcrypto.so
include $(BUILD_SHARED_LIBRARY)
#include $(BUILD_EXECUTABLE)
Application.mk
#對應AndroidManifest.xml中的minSdkVersion。用于debug
APP_PLATFORM := android-
APP_OPTIM := debug
APP_ABI := armeabi
APP_STL := gnustl_static
NDK_DEBUG =
#debug
(JNIEnv *env, jobject obj, jbyteArray in, jbyteArray key){
...
jint in_length=(*env)->GetArrayLength(env,in);
unsigned char *pin=(unsigned char *)(*env)->GetByteArrayElements(env,in,NULL);
//調用java
jclass javaResult = (*env)->FindClass(env,"com/changhong/util/Result");
jmethodID constrocMID = (*env)->GetMethodID(env,javaResult,"<init>","(I[B)V");
jbyteArray bytes=(*env)->NewByteArray(env, length_out);
(*env)->SetByteArrayRegion(env, bytes, , length_out,(jbyte*)pout);
jobject result = (*env)->NewObject(env,javaResult,constrocMID,successOrFailure,bytes); //構造一個對象,調用該類的構造函數,并且傳遞參數
//最後釋放指針
(*env)->ReleaseByteArrayElements(env,in,pin,);
...
return result;
}