您的位置:首页 > 文旅 > 旅游 > android调用openssl库

android调用openssl库

2025/2/26 14:45:04 来源:https://blog.csdn.net/RenZuoym/article/details/140226608  浏览:    关键词:android调用openssl库

android 调用openssl库

一、openssl安装编译

  1. 下载openssl-1.1.1w.tar.gz和android-ndk-r21e-linux-x86_64.zip
  2. 解压android-ndk-r21e-linux-x86_64.zip到/opt/pj_ssl目录下,然后配置环境
  • vim ~/.bashrc
  • 增加如下内容
export NDK_HOME=/opt/pj_ssl/android-ndk-r21e
export ANDROID_NDK_HOME=/opt/pj_ssl/android-ndk-r21e
export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH
  • 刷新环境变量 source ~/.bashrc
  1. 编译环境
  • 编译32位 ./Configure android-arm -D__ANDROID_API__=21 --prefix=/opt/pj_ssl/openssl-1.1.1w/obj
  • 编译64位 ./Configure android-arm64 -D__ANDROID_API__=21 --prefix=/opt/pj_ssl/openssl-1.1.1w/obj
  • make
  • make install
  1. 将32位的libssl.a和libcrypto.a拷贝到armeabi-v7a
  2. 将64位的libssl.a和libcrypto.a拷贝到arm64-v8a

二、使用openssl库

1.在 Android.mk引用库

OPENSSL_PATH := $(ROOT_PATH)/opensslifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_CFLAGS += -DPJ_M_ARMV7
OPENSSL_INC := $(OPENSSL_PATH)/armeabi-v7a/include
OPENSSL_SSL := $(OPENSSL_PATH)/armeabi-v7a/lib/libssl.a
OPENSSL_CRYPTO := $(OPENSSL_PATH)/armeabi-v7a/lib/libcrypto.aelse ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
LOCAL_CFLAGS += -DPJ_M_ARMV8 -D_ARM_
OPENSSL_INC := $(OPENSSL_PATH)/arm64-v8a/include
OPENSSL_SSL := $(OPENSSL_PATH)/arm64-v8a/lib/libssl.a
OPENSSL_CRYPTO := $(OPENSSL_PATH)/arm64-v8a/lib/libcrypto.aLOCAL_LDFLAGS += \$(OPENSSL_SSL) \$(OPENSSL_CRYPTO)
  1. 编译库 /opt/pj_ssl/android-ndk-r21e/ndk-build $@
  2. 最后生成新的libtestssl.so供android调用

三、其他问题

  1. 编译openssl时,必须加入 -D__ANDROID_API__=21。否则会出现缺少stderr等异常问题
  2. PATH必须包含两个路径

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com