WebRTC Android 編譯

一 、前言

WebRTC 名稱源自網(wǎng)頁即時通信(英語:Web Real-Time Communication)的縮寫。谷歌收購并開源支持網(wǎng)頁瀏覽器進行實時語音對話或視頻對話的 API。它于2011年6月1日開源并在 Google、Mozilla、Opera 支持下被納入萬維網(wǎng)聯(lián)盟的W3C推薦標準。

如果不修改 webrtc 相關(guān)源碼,建議不要去折騰編譯這個源碼工程,光下載源碼就夠你頭疼的。

可以直接引用已經(jīng)編譯好的中央庫(Maven或者Gradle):

官方推薦:
compile 'org.webrtc:google-webrtc:1.0.+' 

(+ 換成對應(yīng)版本號,一定要去上面網(wǎng)址里面查詢是否存在該版本,版本號查詢地址: https://bintray.com/google/webrtc/google-webrtc )

官方地址:https://webrtc.org

二、環(huán)境準備

1、WebRTC 編譯暫時支持 linux 平臺,所以需要有一個 linux 系統(tǒng)或虛擬機

2、設(shè)置代理,這一步不做過多介紹,需要注意的是需要在終端設(shè)置代理,這一步也是比較坑的一步,大家可以搜一下怎么設(shè)置

3、下載 depot_tools:

git clone  https://chromium.googlesource.com/chromium/tools/depot_tools.git 

4、配置 depot_tools 環(huán)境變量,最好是配置全局變量:

sudo gedit /etc/profile # 針對每個用戶
# 在最后添加下面語句
export PATH=$PATH:/home/siven/siven/softSetup/depot_tools   # depot_tools 路徑

檢查配置是否成功執(zhí)行:

which gn  # 如果正常打印出gn命令路徑,說明成功

三、源碼下載

1、指定一個位置存放 webrtc 源碼,當前磁盤空間不能少于20G

mkdir webrtc
cd webrtc

2、代碼同步

fetch --nohooks webrtc_android
gclient sync

源碼文件大小在 15-20G,下載過程十分漫長不要慌,請耐心等待,也可能會出現(xiàn)其他問題 ...

3、執(zhí)行環(huán)境配置腳本,會幫你檢測并安裝編譯所需要的依賴庫和工具

cd src
./build/install-build-deps.sh

四、源碼編譯

一、編譯參數(shù)指定

gn gen out/build --args='target_os="android" target_cpu="arm" is_debug=false'
out/build : 編譯生成文件的目錄,隨意指定
target_os : 編譯目標平臺 Android、iOS 等
target_cpu : cpu 架構(gòu)平臺armeabi、 armeabi-v7a、arm64-v8a、x86、x86_64等
is_debug : release 模式或者 debug 模式

二、執(zhí)行編譯

ninja -C out/build

由于是全量編譯,所以時間稍微有點長,會有進度說明,耐心等待

生成Gradle項目文件

build/android/gradle/generate_gradle.py --output-directory $PWD/out/build \
--target "http://examples:AppRTCMobile" --use-gradle-process-resources \
--split-projects --canary

執(zhí)行完,可以在out/build/目錄下會生成一個gradle的文件夾,使用 Android studio 該 gradle 目錄即可運行 demo 工程。

五、版本選擇

WebRTC 是持續(xù)在 master 分支開發(fā)的,我們二次開發(fā) webrtc 最好基于穩(wěn)定的 release 版本。查找?guī)焐系?release 版本:

git branch -r

然后 checkout 到對應(yīng)的 release 版本

git checkout -b newbranch branch-heads/73  #切換到M73版本
gclient sync  #同步對應(yīng)版本的代碼

(是之前編譯的的工程,一直忙著沒時間記錄,今天是按照正常流程梳理了一遍。當時編譯的時候遇到很多問題,感覺 webrtc android 編譯實在太難了,現(xiàn)在回頭一看又很簡單,簡單是因為 webrtc 所有編譯工作已經(jīng)全部都寫在了腳本里了,只需要執(zhí)行一個腳步命令全部搞定)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容