我正在编写一个包装器来使用加密的一些功能。我使用 Android-NDK从openssl-android构建加密库。现在我有了我需要的 libcrypto.so,但我不知道如何将它与我的包装器链接。
我的项目树是这样的
(proj root)
|
|->(src)
|->(src)-> com.package
|->(src)-> com.package->NativeCipher.java
|
|->(jni)
|->(jni)->Android.mk
|->(jni)->NativeCipher.c
NativeCipher.java
public class NativeCipher {
static {
System.loadLibrary("crypto");
System.loadLibrary("NativeCipher");
}
public static native byte[] AESEncrypt(byte[] in, byte[] key);
}
NativeCipher.c
#include <string.h>
#include <jni.h>
#include <aes.h>
jbyteArray Java_com_package_NativeCipher_AESEncrypt(JNIEnv* env, jobject this, jbyteArray in, jbyteArray key)
{
// All my code here
}
我需要使用加密提供的#include 的功能。但是,我不知道如何处理 NDK 生成的 .so 文件以及如何构建 Android.mk 文件。
在此先感谢,我试图尽可能具体。