Ubuntu20.04编译 android版webrtc
设置ubuntu的环境变量# 可以写入 .bashrc 文件中export ALL_PROXY=http://10.211.55.2:1087export HTTP_PROXY=http://10.211.55.2:1087export HTTPS_PROXY=http://10.211.55.2:1087ln/usr/bin/python2 python同步WebRTC# 1.安装必要的软件su
·
设置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
更多推荐
已为社区贡献2条内容
所有评论(0)