为了Android上使用libcurl且支持HTTPS协议,需要依赖openssl,因此先来了解一下如何编译OpenSSL
1.编译ARM下的共享库(默认的)
我使用的是guardianproject的openssl,它已经提供好了android的ndk makefile。
git clone https://github.com/guardianproject/openssl-android.git
然后直接cd到该目录,$NDK/ndk-build就行。
注意默认的使用NDKr5b,如果没有该版本,请在jni/Application.mk中修改工具链版本
这样可编译出ARM下的共享库(libcrypto.so和libssl.so),这两个库已经可以配合libcurl支持HTTPS了。
2.编译ARM下的静态库
先修改crypto/Android.mk:
# target
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../android-config.mk
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_CFLAGS += $(local_c_flags)
LOCAL_C_INCLUDES += $(local_c_includes)
LOCAL_LDLIBS += -lz
ifeq ($(TARGET_ARCH),arm)
LOCAL_SRC_FILES += $(arm_src_files)
LOCAL_CFLAGS += $(arm_cflags)
else
LOCAL_SRC_FILES += $(non_arm_src_files)
endif
ifeq ($(TARGET_SIMULATOR),true)
# Make valgrind happy.
LOCAL_CFLAGS += -DPURIFY
LOCAL_LDLIBS += -ldl
endif
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE:= libcrypto
include $(BUILD_STATIC_LIBRARY)
就是把最后的BUILD_SHARED_LIBRARY改成BUILD_STATIC_LIBRARY;后面其他MODULE都删掉.

再修改ssl/Android.mk:
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../android-config.mk
LOCAL_SRC_FILES += $(local_src_files)
LOCAL_C_INCLUDES += $(local_c_includes)
LOCAL_STATIC_LIBRARIES += libcrypto
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE:= libssl
include $(BUILD_STATIC_LIBRARY)
就是把SHARED都缓存STATIC,后面的其他MODULE也都删掉

3.编译X86版本的静态库
修改jni/Application.mk:
NDK_TOOLCHAIN_VERSION=4.6
APP_PROJECT_PATH := $(shell pwd)
APP_ABI := x86
TARGET_ARCH := x86
APP_BUILD_SCRIPT := $(APP_PROJECT_PATH)/Android.mk
就是加上ABI和ARCH限制,然后该一下工具连VERSION,因为默认NDKr5b好像不支持x86,所以要换一个高版本的NDK

最新文章

  1. CentOS下设置MySQL的root密码
  2. Nginx 配置 HTTP 强缓存
  3. 【ASP.NET 进阶】根据IP地址进行百度地图定位
  4. android 学习随笔九(网络:简单新闻客户端实现)
  5. (原创)monitor Dell Powerconnec 6224 with cacti
  6. SYN, FIN, ACK, PSH, RST, URG
  7. jqgrid使用sql row_number进行分页
  8. Java ,单实例 多线程 ,web容器,servlet与struts1-2.x系列,线程安全的解决
  9. Java keyword具体解释
  10. MVC 用法小语法摘录
  11. Mosquitto安装_Ubuntu/Debian上安装消息队列Mosquitto
  12. Spring 使用context:annotation-config的设置
  13. EasyUI中Tabs添加远程数据的方法。
  14. Java基础系列--07_String、StringBuffer和StringBuilder
  15. sublime的插件
  16. windows系统,boost编译安装
  17. Java 虚拟机的内存结构
  18. 安装使用git
  19. D. Three Pieces(dp,array用法,棋盘模型)
  20. JAVA代码保护从入门到放弃

热门文章

  1. 你应该知道的PHP库
  2. C++ STL栈和队列
  3. 学霸系统UI部分功能规格说明书
  4. [CF] Sasha and One More Name
  5. 福大软工1816:Alpha事后诸葛
  6. OA_1界面
  7. Codeforces Round #272 (Div. 2) E. Dreamoon and Strings dp
  8. sleep(),wait(),yield(),notify()
  9. oracle和DB2的差异
  10. iOS- 指压即达,如何集成iOS9里的3D Touch