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