在Android源码环境下编译出curl.a静态库后可以放到JNI下直接使用了。
要注意的是,在Android.mk中需要这样将静态库编译到jni的动态库中。
LOCAL_PATH := $(call my-dir) #使用静态库 include $(CLEAR_VARS) LOCAL_MODULE := curl LOCAL_SRC_FILES := ./curllib/libcurl.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_CFLAGS := -D_GNU_SOURCE LOCAL_CPPFLAGS := -frtti # 打算编译出的动态库的名字 LOCAL_MODULE:= jni_curl # 使用的本地静态库 LOCAL_SHARED_LIBRARIES := libcurl LOCAL_SRC_FILES := jni_main.cpp # 如果不包含这一句的话,会提示:__android_log_print 未定义 LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY)
参见NDK中的prebuild一章。
2.如果要在curl的使用过程中使用stl的c++就需要有Application.mk文件,里面的内容注释都有。
例子以www.baidu.com为例,简单使用了一下。返回的数据都能被打印出来。
CURL *curl; CURLcode res; // 接受返回的内容,用于打印出来看 std::string content; // char content[1024*20]; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Post_Response); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content); res = curl_easy_perform(curl); if (0!=res) { // printf("curl error: %d\n", res); LOGD("curl error: %d\n", res); } LOGD("curl error: %d\n", res); LOGD("curl content = %s \n", content.c_str()); curl_easy_cleanup(curl); } curl_global_cleanup();
详细内容请参考Demo,附件中:
相关推荐
windows下C开发CURL的Demo
curl for Android arm architecture not for arm64.
Page Curl for Android Overview The android-page-curl is a 2D View which simulates a page curl effect. Without OpenGL, only the android canvas has been used, so that it can be used in any version of ...
curl库源码添加了curl_config.h和mk文件,可以直接跳转到目录使用ndk-build编译出so库.
对curl 7.79.1 版本的简易调用(vs2019) 包含curl 7.79.1 x64和x86的debug/release版动态库
在curl最新版本的官方源代码中其实已经包括了android的编译文件(Android.mk),不过要想编译通过还需要做一些工作。我所使用的curl版本是7.20.0,android源代码版本是eclair 2.1。首先将curl解压到external目录下,...
为公司项目开发的一个curl,tcp的动态库,用c++实现,共java调用。算是一个比较完整的项目。
curl官网下载源码,mingw32-make.exe 编译,qt新建工程引入动态库,使用curl进行网络请求。
android jni使用curl进行http请求和文件下载,具体说明参考博客 http://blog.csdn.net/csdn49532/article/details/50680716
./configure --prefix=/usr/local/android --host aarch64-linux-android --with-pic --disable-shared make -j4;make install 在wsl下面用ndk20编译的, aarch64-linux-android29-clang++ aarch64-linux-android-...
Android默认不带curl,本来想执行这条命令,结果网上找了一遍也没有编译好的可执行文件。于是下载源码编译。附件中包含了curl的可执行文件,静态库,头文件等。在Android 9.0上亲测可用。
NULL 博文链接:https://dingran.iteye.com/blog/1777157
自己项目使用的android jni openssl curl ,支持http https 静态库已经封装好,可用
openssl-curl-android 编译适用于Android的openssl和curl先决条件确保您已安装Android NDK 。 您可能还需要安装autoconf和libtool工具链以及构建基础。下载如果您不想自己编译它们,则可以从下载预编译的静态库。 ...
Android_libcurl可以自己写C/C++供native调用。省去自己编译文件
您可以在Android.mk使用curl_static 。 例如,如果您的应用程序定义了libapp.so并使用curl_static ,则您的Android.mk文件应包括以下内容: include $( CLEAR_VARS ) LOCAL_MODULE := app LOCAL_SRC_FILES
Ok2Curl Convert OkHttp requests into curl logs. Usage Add library to project dependencies. Library is hosted on jcenter. repositories { jcenter() } dependencies { implementation '...
curl 全平台静态库
COCOS2D-X之CurL下载图片Demo