一、curl-7.61.1 Android平台移植:

  libcurl是一个免费且易于使用的客户端URL传输库,支持DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAP、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMTP、SMTPS、Telnet和TFTP。libcurl支持SSL证书、HTTP POST、HTTP PUT、FTP上传、基于HTTP表单的上传、代理、cookie、用户+密码验证(Basic、Digest、NTLM、negotiating、Kerberos)、文件传输简历、HTTP代理隧道等等!

  libcurl是高度可移植的,支持许多平台,包括Solaris、NetBSD、FreeBSD、OpenBSD、Darwin、HPUX、IRIX、AIX、Tru64、Linux、UnixWare、HURD、Windows、Amiga、OS/2、BeOs、Mac OS X、Ultrix、QNX、OpenVMS、RISC OS、Novell NetWare、DOS等…

  libcurl是免费的、线程安全的、与IPv6兼容的、功能丰富的、支持良好的、快速的、完整的文档化的,已经被许多知名的、大型的和成功的公司所使用。

(1)最新的版本可到curl官网下载:https://curl.haxx.se/download.html

(2)编译:(注:从执行配置指令后的输出信息可以看到默认不支持SSL,需要增加-with-ssl=选项,指定的路径是openssl源码交叉编译后的install目录)

  ---》CC=arm-linux-androideabi-gcc ./configure --host=arm-linux prefix=$PWD/tmp --enable-shared=no --enable-static=yes --disable-ldap --disable-ldaps -with-ssl=/home/sheldon/workSpace/openssl-1.1.0i/tmp CFLAGS="-pie -fPIE" LDFLAGS="-pie -fPIE"

  ---》make && make install

(3)使用:将tmp目录下生成的头文件及库添加到Android工程:

  方法一:

##########################################
#预编译到SDK系统库目录
include $(CLEAR_VARS)
LOCAL_MODULE := libcurl
LOCAL_SRC_FILES := libcurl.a
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_OWNER := sheldon
LOCAL_MODULE_SUFFIX := .a
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
include $(BUILD_PREBUILT)
##########################################
#另外在对应的Android.mk添加静态库依赖即可
LOCAL_WHOLE_STATIC_LIBRARIES += libjbvad libcurl

  方法二:

LOCAL_LDFLAGS+=/xxx/libcurl.a

二、 openssl-1.1.0i Android平台移植:

  OpenSSL即Secure Sockets Layer(安全套接层协议是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。

  (1)官网源码下载地址:https://www.openssl.org/source/

       由于需要移植到Android平台,要使用xx交叉编译器,但不支持链接pthread库,需要修改Makefile去掉-pthread的选项,而新版的源码必需要使用到,所以最后使用的是1.1.0i的版本:

  (2)编译:

    ---》 CC=arm-linux-androideabi-gcc ./Configure  no-asm --prefix=$PWD/tmp linux-armv4

    ---》 make && make install

   (3) 库的调用方法同上。注:libcurl 要同时依赖 libcrypto 和 libssl。

Android : 移植curl-7.61.1 及 openssl-1.1.0i的更多相关文章

  1. 初学者的Android移植:在Debian上建立一个稳定的构建环境

    介绍 通过在chrooted环境中设置开发环境,避免依赖冲突和沙箱您的Android开发从您的Debian GNU/Linux系统.这是为通配符类别准备的,因为从源代码构建Android似乎没有在其他 ...

  2. Ogre 1.9 Android移植

    Ogre 1.9 Android移植 分类: 图形渲染2013-02-04 16:47 3860人阅读 评论(14) 收藏 举报 Android Ogre C++linuxLinuxLINUX 上一篇 ...

  3. android移植pppoe拨号上网的全过程

    硬件环境:Tiny6410开发板 软件环境:fedora14 + Android 2.3.4 + linux-2.6.36 所需资源:rp-pppoe-3.11.tar.gz http://www.r ...

  4. 第四章Android移植环境搭建

    第四章Android移植环境搭建 这一章主要学习如何搭建 Android 移植的环境.因为 Android 底层是基于 Linux 内核的,所以本章从交叉编译环境等嵌入式开发环境的搭建开始,介绍了 B ...

  5. 第三章Android移植平台工具介绍

    第三章Android移植平台工具介绍 进行 Android 移植的学习并不一定需要一款 Android 手机,但必须要有一款主流的开发板,开发板是用来进行嵌入式系统开发的电路板,包括中央处理器.存储器 ...

  6. cocos2d-x 从win32到android移植的全套解决方案

    引言:我们使用cocos2d-x引擎制作了一款飞行射击游戏,其中创新性地融入了手势识别功能.但是我们在移植过程中遇到了很多的问题,同时也发现网上的资料少而不全.所以在项目行将结束的时候,我们特地写了这 ...

  7. 在Windows上编译最新的CURL,含有zlib,openssl

    最近,从网上下载了一个curl库,使用时各种报错,都无法启动,于是干脆就直接自己编译了. 1. 准备工作 a. 下载zlib zlib可以使得HTTP请求支持gzip压缩,其地址如下: 官网:http ...

  8. vlc android 移植版编译

    同步发表于http://avenwu.net/2015/07/27/vlc-android-compiling 安装必备工具/解决环境问题 环境准备什么的如果没配置过需要一步步配置,主要是sdk/nd ...

  9. centos curl版本nss改成openssl

    在centos 6.2的系统里面的curl支持的https是nss版本的,而不是openssl的,所以在php使用curl访问https的时候会报Unable to load client key - ...

随机推荐

  1. python中装饰器

    在介绍装饰器之前,要先了解装饰器的相关基础知识. 嵌套函数: 最后引入一个基本的装饰器的例子: __author__ = "YanFeixu" import time def ti ...

  2. spring ----> ResourceBundle [message] not found for MessageSource: Can't find bundle for base name message, local_zh

    环境: idea 2018.1.3社区版,jdk8,spring4.2.0,maven3.5.2 主题: spring国际化 出现的问题: ResourceBundle [message] not f ...

  3. H3C S6800交换机 BCM shell命令

    H3C S6800交换机 BCM shell命令 http://wgli978.blog.163.com/blog/static/13592877220172315858831/ <H3C> ...

  4. 通俗大白话来理解TCP协议的三次握手和四次断开

    from : https://blog.csdn.net/Neo233/article/details/72866230?locationNum=15&fps=1%20HTTP%E6%8F%A ...

  5. mac 下配置Android sdk

    1.通过homebrew进行安装  地址:https://brew.sh/index_zh-cn.html 2.homebrew install android sdk 3.找到路径如: /Users ...

  6. [PAT]数字分类

    #include <stdio.h> #include <stdlib.h> void A1(int *ar,int i); void A2(int *ar,int i); v ...

  7. 两个约束下的dp问题

    洛谷P1510 分析:本质上还是一个01背包,将体力当做重量,体积当做价值.配上滚动数组 即dp[j]代表在体力耗费为j时最大能搬运多少体积的石头,当dp[j]>v时就说明存在满足情况的解,这样 ...

  8. 洛谷P1101 单词方针

    题目描述 给一 n×n 的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉, ...

  9. 第一阶段——站立会议总结DAY02

    1.昨天做了什么:做出了一个大概的界面(APP的个人中心界面),有用户名信息和按钮. 2.今天准备做什么:因为仅是完成在页面上显示文字,而显示个人信息的化,想要做成微信的个人中心辣个样子. ①就是文字 ...

  10. leetcode-algorithms-35 Search Insert Position

    leetcode-algorithms-35 Search Insert Position Given a sorted array and a target value, return the in ...