快速编译出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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

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

# 或者这样
build_debug_apprtc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

也可以指定要编出哪个来

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

指定使用哪个版本下的

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

# 直接build
build_apprtc
  • 1
  • 2
  • 3
  • 4
  • 5

综合一点的用法

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

# 指定这个版本的,
get_webrtc 9792

# begin build...
prepare_gyp_defines &&
execute_build
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

总结: 
开始我是在国外的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签名出错了,导致后面的调用就失败了,理论上就是网络问题导致的,可能是用vpn问题?最后发现是hosts文件问题,以前为了FQ需要把google的一些地址给重定向了,导致不能正常访问到,于是把hosts文件改了之后再次同步就正常了。 
ubuntu 配置:i5 4核 8G内存,1T 硬盘。编译一个大概只需2分钟不到,全部编译完成不到半个钟。

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

发布了21 篇原创文章 · 获赞 110 · 访问量 63万+

猜你喜欢

转载自blog.csdn.net/xipiaoyouzi/article/details/78015714