快速编译出WebRTC for Android 的一次记录

WebRTC for android官网 http://www.webrtc.org/native-code/android
WebRTC 源码地址

作为新手,以前就知道chromium的项目不是好搞的,webrtc就是chromium项目中的一个子项目,在墙内光是同步下载源码都是有点困难的事情(要翻),然后再按照它的操作说明干起来。不同平台下还不同操作,各种晕啊。

好在有人把这些各种蛋庝的操作给弄好了个脚本,轻轻搞几下就能够完成这些繁杂的操作。
webrtc-build-scripts
只要网络一切正常使用,那么按照这个说明下去就能马上搞出个结果了,感谢这些先驱的辛勤劳作~~

操作如下(linux):

# 使build.sh里面的一些命令在当前环境中生效
source android/build.sh

# 自动安装部署一些依赖的工具
install_dependencies

# 获取项目部署工具和源码,以最新的源码作当前版本
get_webrtc

# 直接构建全部的版本出来(不同架构、Debug、Release),时间会很久
build_apprtc

指定需要构建是Debug的还是Release版本

# true -> Debug模式;false -> Release模式
export WEBRTC_DEBUG=true
build_apprtc

# 或者这样
build_debug_apprtc

也可以指定要编出哪个来

# 指定使用哪类架构 or armv8, x86, or x86_64
export WEBRTC_ARCH=armv7 
prepare_gyp_defines &&
execute_build

指定使用哪个版本下的

# 获取指定版本号的 WebRTC源码
get_webrtc 9792

# 直接build
build_apprtc

综合一点的用法

# Release 
export WEBRTC_DEBUG=false
#只要armv7的
export WEBRTC_ARCH=armv7 

# 指定这个版本的,
get_webrtc 9792

# begin build...
prepare_gyp_defines &&
execute_build

总结:
开始我是在国外的VPS中搞的,debian8 64位的,1G内存,20GSSD,速度还是很好的,完全标准的网络环境,下载同步源码(下载内容大概8~9GB,解压后18GB)soso的2分钟不到就完成了,编译过程也是很顺利的,没出现啥错误中断,只是性能低编译时间就要久一点了,编译全部架构(armv7,armv8, x86, x86_64)的so大概要用3~4个钟左右,单独一个armv7的貌似也就半个钟不到。
最终目标在android/webrtc/libjingle_peerconnection_builds下,包含了不同的版本的so和jar文件。复制到项目中即可使用了。

在个人电脑ubuntu 14下,连接VPN下载源码大概用了一个晚上,反正就是睡觉前开始,起床后看了一下,发现有错误导致中断了,再次get_webrtc 还是出错,大概就是Failure: Server presented certificate that does not match host www.googleapis.com 根据错误信息,找啊找,分析了这个python调用的过程,最后发现是下载那个google签名出错了,导致后面的调用就失败了,理论上就是网络问题导致的,可能是用问题?最后发现是hosts文件问题,以前为了FQ需要把google的一些地址给重定向了,导致不能正常访问到,于是把hosts文件改了之后再次同步就正常了。
ubuntu 配置:i5 4核 8G内存,1T 硬盘。编译一个大概只需2分钟不到,全部编译完成不到半个钟。

附上编译好的文件(http://download.csdn.net/detail/act262/9054745)

你可能感兴趣的:(Android)