Android webrtc 源码编译

编译最近的代码

1 环境准备
ubuntu 16.04(最好是这个版本以上)
安装depot tools:
 国外:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
 国内:git clone https://source.codeaurora.org/quic/lc/chromium/tools/depot_tools
 配置环境变量:export PATH=$PATH:/home/test/tools/depot_tools


2 下载代码
创建工作目录,然后运行以下命令

fetch --nohooks webrtc_android
gclient sync

这将获取Android特定部分的常规WebRTC checkout。 请注意,Android SDK和NDK等Android特定部分非常大(约8 GB),因此总大小约为16 GB。 同样的checkout可以用于Linux和Android开发,因为您可以为每个构建配置在不同的目录中生成Ninja项目文件。

编译Android,更新必要的依赖库。

./build/install-build-deps.sh
./build/install-build-deps-android.sh

3 编译代码

  1. 使用GN生成项目
    进入src目录下,
gn gen out/Debug --args='target_os="android" target_cpu="arm"'

可以指定自己选择的目录而不是out/Debug ,以便并行管理多个配置。

  • To build for ARM64: use target_cpu=“arm64”
  • To build for 32-bit x86: use target_cpu=“x86”
  • To build for 64-bit x64: use target_cpu=“x64”
  1. 编译
    ninja -C out/Debug (全部编译)
    ninja -C out/Debug sdk/android:libjingle_peerconnection_so (单独编译某个模块)
    ninja -C out/Debug AppRTCMobile
    ninja -C out/Debug libwebrtc

下载release版本的代码

两种下载方式:
1 已下载原有的Android版本
可以在原有的.git/config中添加

fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*

然后进行git fetch。
之后就可以切换分支了。

2 从最开始下载
创建一个工作目录,输入它,然后运行fetch webrtc

mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
gclient sync

下载成功后,到src目录下
要查看可用的发布分支,请运行:

git branch -r

要创建跟踪远程发布分支的本地分支(在此示例中为43分支):

git checkout -b my_branch refs/remotes/branch-heads/43
gclient sync

注意:checkout时不会跟踪depot_tools,因此gclient sync可能会在足够旧的分支上中断。 在这种情况下,您可以尝试使用较旧的depot_tools:

which gclient
# cd to depot_tools dir
# edit update_depot_tools; add an exit command at the top of the file
git log  # find a hash close to the date when the branch happened
git checkout <hash>
cd ~/dev/webrtc/src
gclient sync
# When done, go back to depot_tools, git reset --hard, run gclient again and
# verify the current branch becomes REMOTE:origin/master

编译的方法和以上基本一致,太旧的代码不建议使用。

你可能感兴趣的:(Webrtc)