1

暗号のいくつかの機能を使用するラッパーを作成しています。Android-NDK を使用してopenssl-androidから crypto lib をビルドします。今、必要な 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
}

crypto が提供する #include の機能を使用する必要があります。しかし、NDK が生成する .so ファイルをどうするか、また Android.mk ファイルをビルドする方法がわかりません。

事前に感謝します。できるだけ具体的にしようとしました。

4

1 に答える 1

0

ネイティブ ライブラリは、Android プロジェクトのlibs/armeabiまたはに移動します。libs/armeabi-v7aただし、システムには既にlibcrypto.so. 独自の JNI ラッパーについては、NDK から共有ライブラリ サンプルを取得し、独自のファイルを使用するように変更するだけです。

于 2013-02-07T03:34:43.277 に答える