系统:Ubuntu 18.04
安装depot_tools
1 2 3 4 5 6 |
cd ~ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git # vi ~/.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 |
然后参照前面步骤重新编译即可。
文章评论