curlandroid下载
‘壹’ Win10下NDK 编译curl&protobuf
Android开发者编写指南
在Windows环境下进行NDK(Native Development Kit)编译curl与protobuf的过程,以下步骤作为参考:
创建curl编译目录(CURL_BUILD_DIR)位于:
c: dk\21.4.7075529\samples\curl\jni
将curl源码(curl-8.2.1)放入CURL_BUILD_DIR下。
在CURL_BUILD_DIR创建Android.mk文件,配置编译参数。
准备curl_config.h文件,生成非Windows版本以避免编译时寻找错误路径,建议在cygwin环境下使用configure命令进行生成。
执行ndk-build命令于CURL_BUILD_DIR,生成libcurl.so。
创建protobuf编译目录(PROTOBUF_BUILD_DIR)位于:
c: dk\21.4.7075529\samples\protobuf\jni
在PROTOBUF_BUILD_DIR创建Android.mk文件,配置protobuf编译参数。
将protobuf源码protobuf-cpp-3.21.12下的src目录复制至PROTOBUF_BUILD_DIR。
执行ndk-build命令于PROTOBUF_BUILD_DIR,生成libprotobuf.a。
若遇到集成libprotobuf.a时出现"undefined reference to __android_log_write'"错误,直接在src/google/protobuf/stubs/common.cc中注释相关代码行即可解决。
‘贰’ 如何从国内镜像获取android源代码
首先按帮助中的步骤下载repo工具:
[plain] view plain print?
curl https://storage-googleapis.lug.ustc.e.cn/git-repo-downloads/repo > ~/bin/repo
此时查看下载下来的repo文件可以发现其中的REPO_URL已经指向中科大镜像的地址,因此应该不需要修改:
[plain] view plain print?
REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
接下来运行如下命令初始化仓库
[plain] view plain print?
repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
发现没有反应,很长时间后应该是超时才退出,报错说无法访问https://gerrit-googlesource.lug.ustc.e.cn/git-repo/clone.bundle
把这个地址放到浏览器上尝试发现也是超时无法访问,最后好像还是指到google的官网去了,感觉应该是因为缺了什么东西,没仔细研究。
但我发现中科大镜像的Git-repo实际上是可以正常访问的,因此最后使用如下方法:
1. 使用git clone命令直接从中科大镜像下载repo工具:
[plain] view plain print?
git clone https://gerrit-googlesource.lug.ustc.e.cn/git-repo
git clone成功后可以在git-repo目录下看到repo以及其他相关的脚本。
修改PATH环境变量将git-repo目录加入PATH
2. 修改REPO_URL
此时查看git clone下来的repo文件可以发现其中的REPO_URL还是指向google官网的,因此需要修改该文件指向中科大镜像:
[plain] view plain print?
REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
3. 初始化仓库
修改完repo文件后再运行repo init命令初始化仓库就可以成功了:
[plain] view plain print?
repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
以后就可以使用repo sync命令同步源代码了,速度很快。
你试试看看