8

libsodium 暗号化を実行する必要があるプログラムがあります。このライブラリlibsodiumを見つけまし たが、NDK で使用する必要があると思います。それで、NDK に関するチュートリアルを読み始めましたが、このライブラリの使用をどこから始めればよいかまだわかりません。誰かがこのライブラリを統合する方法についてのアイデアを提供するためのヒントや非常に役立つものを提供できれば、私はとても幸せです.

ありがとう

4

1 に答える 1

13

libsodium を Android アプリに統合するには、次のものが必要です。

  • Android プラットフォーム用にコンパイルされた libsodium ライブラリ
  • kalium-jni のような JNI バインディング

インターネット上のランダムな人々を信頼する場合 (信頼すべきではありません!)、この tarballをダウンロードして、プロジェクト ソースに展開します。それ以外の場合は、以下の手順に従って自分でコンパイルしてください。

リブナトリウム

libsodium 共有ライブラリをコンパイルするには、Android NDK を備えた Linux ボックス/VM が必要です。NDK でコンパイルするには、現在の git master ブランチが必要なようです。チェックアウトしたら、ARM、ARMv7、および x86 用の Android ライブラリ コードをコンパイルします。

./autogen.sh
./dist-build/android-arm.sh # for older ARMv6 devices
./dist-build/android-armv7-a.sh # for the more recent ARMv7 devices
./dist-build/android-x86.sh # for the emulator / x86 devices
# Provide the directory names nkd-build expects
ln -s libsodium-android-armv6 libsodium-android-armeabi
ln -s libsodium-android-armv7-a libsodium-android-armeabi-v7a
ln -s libsodium-android-i686 libsodium-android-x86

カリウムジニ

kalium をコンパイルするには、SWIGをインストールする必要があります。次に、SWIG C ラッパーを生成し、ターゲット プラットフォーム用の libkaliumjni ネイティブ コードをコンパイルし、それをアプリの libs/ ディレクトリにインストールして、JAR を含める必要があります。

kalium-jni/jni サブディレクトリで、ホスト用の SWIG ラッパーとネイティブ libkaliumjni.so を作成します (JAR のテストに必要になります)。

./compile.sh

その後、libsodium をコンパイルした場所を変更して置き換え、kalium jni/Android.mk- jni ディレクトリで実行します。/installs/$(TARGET_ARCH)$(TARGET_ARCH_ABI)

ndk-build APP_ABI=armeabi,armeabi-v7a,x86
[...]
[x86] Install        : libkaliumjni.so => libs/x86/libkaliumjni.so
[armeabi] Install        : libkaliumjni.so => libs/armeabi/libkaliumjni.so
[armeabi-v7a] Install        : libkaliumjni.so => libs/armeabi-v7a/libkaliumjni.so

現在、libs/ディレクトリにはネイティブのカリウム ライブラリが含まれています。それを Android プロジェクトにコピーします。

最後に、カリウム JAR をコンパイルする必要があります。

mvn clean install

で終わるはず~/.m2/repository/org/abstractj/kalium/kalium-jni/1.0.0-SNAPSHOT/kalium-jni-1.0.0-SNAPSHOT.jarです。libsこれもディレクトリにコピーします。これには javadoc とソース JAR が付属しており、これらを Eclipse に追加して参照を取得できます。

于 2015-02-20T11:25:15.057 に答える