> 技术文档 > Android WebRTC下载与编译_ubuntu 下载 编译 webrtc android

Android WebRTC下载与编译_ubuntu 下载 编译 webrtc android


 需求背景

我之前的文章《虚拟机环境下代理下载编译WebRTC源码》描述了linux版本的下载与编译过程,今天描述Android版本下载与编译。Windows网络设置部分与之前文章一致。

Windows网络设置

这里设置固定IP地址,防止IP地址每次开机变动,影响VMWare Ubuntu地址的设置的代理地址。如果您是偶尔连接,不打算长期使用,可忽略此步。网关地址是192.168.1.1, 您需要根据自己路由器来设置网络,例如有些路由器的网关不是192.168.1.1。

IPV4地址:192.168.1.103IPV4掩码:255.255.255.0IPV4网关:192.168.1.1DNS服务器地址:8.8.8.8

设置结果如下:

网络代理设置

这块应该不可介绍,自己搜XCrash For Windows配置方法。

我这里Gerneral设置,Port固定为1234,System Poxy是打开的状态。其他自己琢磨。

虚拟机网络配置

VMWare配置网络连接方式

需要设置网络连接方式为“Bridged”链接。修改路径是:VM->Settings->HardWare->Network Adapter,我这里的软件是英文,汉语的类似,如下图。

ubuntu手动设置IP地址

路径:右上角网络连接ICON->Wired Connection->Wired Setting->旁边的Setting ICON->IPV4, 我的路径是英文版ubuntu, 中文类似。

我这边希望固定IP地址,读者可以不用。代码方式呈现,便于复制,如下。

Address:192.168.1.100Mask:255.255.255.0DNS:8.8.8.8, 8.8.4.4

配置结果如下:

ubuntu设置socks代理

IP地址是windows Host的IP,端口号是在crashx里面配置的端口号地址。

路径:右上角网络连接ICON->VPN->Network Proxy->旁边的Setting ICON, 我的路径是英文版ubuntu, 中文类似。

打开浏览器,输入www.google.com, 搜索内容,确认配置成功。

Android WebRTC代码下载

下载depot_tools

mkdir webrtccd webrtcgit config --global http.sslVerify falsegit clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

我这里禁用了 Git 的 SSL/TLS 证书验证,防止下载时SSH连接出错。

设置环境变量

export http_proxy=\"http://192.168.1.103:1234\" export https_proxy=\"http://192.168.1.103:1234\"export all_proxy=socks5://192.168.1.103:1234export PATH=\"/home/lxf/disk3/webrtc/depot_tools:$PATH\"

此时下载的时候会启用代理下载。

注意:export PATH=\"/home/lxf/disk3/webrtc/depot_tools:$PATH\", 保证自己depot_tools路径在$PATH路径前添加。否则编译的时候会优先调用其他环境变量的工具,例如系统的gn工具,导致编译出错。

设置git代理

git config --global http.proxy socks5://192.168.1.103:1234git config --global https.proxy socks5://192.168.1.103:1234

禁用IPV6

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

 httplib2 配置专用代理

1)编辑~/.boto文件,填入如下内容,proxy地址填写自己的。

vi ~/.boto//插入如下内容[Boto]proxy = 192.168.1.103proxy_port = 1234proxy_type = socks5

2)增加环境变量,新版本的httplib版本不需要,旧版本需要。

echo \'export NO_AUTH_BOTO_CONFIG=~/.boto\' >> ~/.bashrcsource ~/.bashrc

注意:boto代理配置是为了解决third_party/perfetto下载时报错:

raise ServerNotFoundError(\"Unable to find the server at %s\" % conn.host) httplib2.ServerNotFoundError: Unable to find the server at storage.googleapis.co

下载Android版本的WebRTC

fetch --nohooks webrtc_android

注意:这里下载的是webrtc_android版本。

下载完毕后,执行。

gclient sync

切换版本分支

版本参照:https://chromiumdash.appspot.com/branches

注意:因为master不稳定,Android版本不一定编译通过,我这里切换M137版本。切换完版本,一定要执行gclient sync,这样能保证其他工程切换到相应分支。

git checkout -b M137 branch-heads/7151gclient sync

中途中断处理

webrtc的git结构已下载,需要继续下载时,执行如下命令

export GIT_CACHE_PATH=~/tmpgclient sync

成功

编译

依赖包配置

注意:新版本没有install-build-deps-android.sh脚本,只需要加--android。

//注意,新版本执行这个命令,没有install-build-deps-android.sh脚本。./build/install-build-deps.sh --android//旧版本有两个shell脚本要执行。./build/install-build-deps.sh./build/install-build-deps-android.sh

环境配置

source ./build/android/envsetup.sh

生成编译配置

注意:使用环境变量的gn,不要用系统的。

 /home/lxf/disk3/android_webrtc/depot_tools/gn gen out/Android --args=\'target_os=\"android\" target_cpu=\"arm\"\'

编译命令

/home/lxf/disk3/android_webrtc/depot_tools/autoninja -C out/Android

编译成功

运行安装AndroidMobileApp

生成Android Demo

#当前目录$HOME/isk3/android_webrtc/src, 执行命令。build/android/gradle/generate_gradle.py --output-directory $PWD/out/arm64 \\--target \"//examples:AppRTCMobile\" --use-gradle-process-resources \\--split-projects

运行结果:

AndroidStudio打开

用AndroidStudio打开以上生成的目录,Sync后如下。

直接运行安装即可。

参照官网:

Development | WebRTC