设置ubuntu的环境变量

# 可以写入 .bashrc 文件中
export ALL_PROXY=http://10.211.55.2:1087
export HTTP_PROXY=http://10.211.55.2:1087
export HTTPS_PROXY=http://10.211.55.2:1087

ln  /usr/bin/python3 /usr/bin/python

同步WebRTC


# 1.安装必要的软件
sudo apt install git python
# 2.切换到 home
cd /home/webrtc
# 3.安装和设置代码下载工具
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=$PATH:/home/webrtc/depot_tools # 可以写在 .bashrc 里
# 4.创建工作目录并进入
mkdir webrtc_android
cd webrtc_android # 注意接下来执行命令始终在这个目录下
vi .gclient
//添加以下内容
solutions = [
  {
    "name": "src",
    "url": "https://webrtc.googlesource.com/src.git",
    "deps_file": "DEPS",
    "managed": False,
    "custom_deps": {},
  },
]
target_os = ["android", "linux"]  /*根据需要Android, ios*/

# 5.下载第一步:fetch
fetch --nohooks webrtc_android

# 6.设置 gclient 代理,原因是 gclient 无法使用 $HTTP_PROXY 设置代理,
# 而要使用 .boto 文件来设置。这就是上文提到的坑:)
export NO_AUTH_BOTO_CONFIG=/home/webrtc/.boto # 可以写在 .bashrc 里
echo -e "[Boto]\nproxy = 10.211.55.2\nproxy_port = 1087" > /home/webrtc/.boto
# 7.下载第二步:gclient,官网是一个步骤 "gclient sync",这里可以拆成两个
gclient sync --nohooks # 同步代码用时较短
gclient runhooks # 运行一些 hooks,会下载一些文件,其实这个步骤才需要 .boto 设置代理
将分支定位到m84
git checkout -b m84 refs/remotes/branch-heads/4147

#再同步gclient sync
gclient sync --nohooks 
gclient runhooks 

#设置编译环境
./build/install-build-deps.sh
./build/install-build-deps-android.sh

编译

# 编译
cd /home/webrtc/src

gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"arm64\""

ninja -C out/Debug


a)编译arm debug版本

    gn gen out/Debug_arm --args='target_os="android" target_cpu="arm" is_debug=true'
    ninja -C out/Debug_arm

b)编译arm64 debug版本

    gn gen out/Debug_arm64 --args='target_os="android" target_cpu="arm64" is_debug=true'
    ninja -C out/Debug_arm64

c)编译arm release版本

    gn gen out/Release_arm --args='target_os="android" target_cpu="arm" is_debug=false'
    ninja -C out/Release_arm

d)编译arm64 release版本

    gn gen out/Release_arm64 --args='target_os="android" target_cpu="arm64" is_debug=false'
    ninja -C out/Release_arm64

此处在生成的out/*名字上做区别,需要自取。

编译 example app

cd /home/webrtc/src
gn gen out/Debug --args='target_os="android" target_cpu="arm64"'
ninja -C out/Debug AppRTCMobile

打包 aar 文件

cd /home/webrtc/src 
tools_webrtc/android/build_aar.py --build-dir out --arch "armeabi-v7a" "arm64-v8a"

最后将生成的jar和so打包成了aar文件,aar文件位于webrtc/src/libwebrtc.aar

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐