android eclipse jedisct1/libsodium从哪里开始

jun*_*ats 7 eclipse android android-ndk libsodium

我有一个程序需要执行libsodium加密.我发现这个库libsodium 但我认为它需要与NDK一起使用.所以我开始阅读有关NDK的教程,但我仍然不知道从哪里开始使用这个库.如果有人可以提供一些暗示或非常有用的东西来介绍如何整合这个库,我会很高兴.

谢谢

ge0*_*0rg 13

要将libsodium集成到您的Android应用程序中,您需要:

  • 为您的Android平台编译的libsodium库
  • kalium-jni这样的JNI绑定

如果您信任Internet上的随机用户(您不应该这样做!),请下载此tarball并将其解压缩到项目源中.否则,请按照以下说明自行编译.

libsodium

你需要一个带有Android NDK的Linux机器/ VM来编译libsodium共享库,看起来你需要当前的git master分支来编译NDK.检查完毕后,编译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
Run Code Online (Sandbox Code Playgroud)

钾,JNI

要编译kalium,您需要安装SWIG.然后,您需要生成SWIG C包装器,为您的目标平台编译libkaliumjni本机代码,将其安装到您的app libs /目录中并包含JAR.

在kalium-jni/jni子目录中,为您的主机创建SWIG包装器和本机libkaliumjni.so(测试JAR需要它):

./compile.sh
Run Code Online (Sandbox Code Playgroud)

然后,修改jni/Android.mk并替换/installs/编译libsodium的任何地方$(TARGET_ARCH),$(TARGET_ARCH_ABI)然后在kalium-jni目录中运行:

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
Run Code Online (Sandbox Code Playgroud)

现在该libs/目录包含本机kalium库.将其复制到您的Android项目中.

最后,您需要编译kalium JAR:

mvn clean install
Run Code Online (Sandbox Code Playgroud)

它应该最终进入~/.m2/repository/org/abstractj/kalium/kalium-jni/1.0.0-SNAPSHOT/kalium-jni-1.0.0-SNAPSHOT.jar.将其复制到您的libs目录.它伴随着javadoc和源JAR,您可以将其添加到Eclipse中以获取引用.