系统要求
- 系统:Ubuntu 18.04
- 磁盘空间:至少16GB磁盘空间
安装工具
1 2 |
sudo apt-get update sudo apt-get install -y vim git python |
安装depot tools
1 2 3 4 5 6 7 |
cd ~ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git vi ~/.bashrc # .bashrc添加如下一行 export PATH="$PATH:~/depot_tools" source ~/.bashrc |
获取代码
1 2 3 4 |
mkdir webrtc_android cd webrtc_android fetch --nohooks webrtc_android gclient sync |
依赖安装
1 2 3 4 5 |
# webrtc_android cd src ./build/install-build-deps.sh ./build/install-build-deps-android.sh . build/android/envsetup.sh |
编译
直接使用aar编译工具编译,这里我们指定编译armeabi-v7a与arm64-v8a两种架构。
1 2 |
# webrtc_android/src ./tools_webrtc/android/build_aar.py --build-dir out --arch "armeabi-v7a" "arm64-v8a" |
生成的libwebrtc.aar文件文件位于src目录下,编译过程产生的文件,例如libjingle_peerconnection_so.so位于src/out目录下。
崩溃问题排查
使用addr2line定位WebRTC底层崩溃代码位置。
1 |
addr2line -e libjingle_peerconnection_so.so <address> |
编译特定版本
这里我们以更新到m79版本为例。
1 2 |
# 查看可用版本分支 git branch -r |
更新WebRTC代码到m79版本:
1 |
git checkout branch-heads/m79 |
同时也要更新对应的depot_tools,通过git log
查看m79版本对应日期,然后进入depot_tools目录,也使用git log
查看与m79版本日期相近的某个版本,并更新到该版本。
1 2 3 |
which gclient # cd to depot_tools dir:~/depot_tools git checkout ... |
最后进入WebRTC目录:
1 2 |
# webrtc_android gclient sync |
然后参照前面步骤重新编译即可。
文章评论
这个webrtc的包,我在windows上下过一个超级大的包是编译windows平台的,是不是我要编译android也可以用内个之前下过的大包呀,还是说编译android的包需要重新下载呢
@xiaoyu 最好重新下载