webrtc for android 編譯步驟
目錄
1、在雲端開個服務器,比如阿里雲,具體怎麼開通,網上可以查,這裏不記錄
0、說明
對於再國內的開發人員,再編譯webrtc源的時候比較費勁,花費的功夫太大,要做android平臺的webrtc開發,編譯源碼需要linux環境,一定要是Ubuntu,否則編譯會報錯,具體什麼版本見下面,CentOs,deepin什麼的就不要嘗試了,編譯會報錯,有的說搞虛擬機,但是虛擬機實在太卡了,如果手頭沒有Ubuntu,可以搞一臺,但是翻牆下源碼比較費勁,不如開一臺雲務服器,具體步驟如下:
1、在雲端開個服務器,比如阿里雲,具體怎麼開通,網上可以查,這裏不記錄
注意裝的環境一定要是如下版本:
Ubuntu 14.04 LTS (trusty with EoL April 2022)
Ubuntu 16.04 LTS (xenial with EoL April 2024)
Ubuntu 18.04 LTS (bionic with EoL April 2028)
Ubuntu 20.04 LTS (focal with Eol April 2030)
Ubuntu 19.04 (disco)
Ubuntu 19.10 (eoan)
Debian 8 (jessie) or later
2、安裝depot tools和下載源碼
Linux(Android)/Mac(IOS):
安裝git
國外:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
國內:git clone https://source.codeaurora.org/quic/lc/chromium/tools/depot_tools
根目錄
~#mkdir webrtc_checkout
~#cd webrtc_checkout
~#git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
會報錯git用不了,因爲ubuntu系統不會自帶git,需要自己安裝,回到根目錄,如數如下命令裝git
~#sudo apt install git
這一步可能會報錯,apt用不了,需要先升個級,輸入下面命令
~#apt-get update
但後繼續安裝,如果還是報錯,殺了重進
~#sudo apt install git
安裝完畢,測試下是否OK
~# git --version
git version 2.17.1
說明OK了,然後輸入下面命令進入創建的目錄
~# cd webrtc_checkout/
~# git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
~# mkdir webrtc-resouce
~# cd webrtc-resouce
然後開始下載源碼,會報fetch沒辦法用,需要配置環境變量把,depot_tools的目錄配置進去,
~# cd 回到根目錄
~# vi .bashrc
加入如下,紅色文字是depot_tools實際目錄:
export PATH=/root/webrtc_checkout/depot_tools:$PATH
然後運行下面命令讓配置生效
~# source .bashrc
再次進入
~# cd webrtc-checkout/webrtc-resouce
~# export GYP_DEFINES="OS=android"
~# fetch --nohooks webrtc_android
等待一端漫長的時間,一本也很快了,不像國內要n個小時,看vpn看帶寬,然後運行下面命令同步
~# gclient sync
繼續等等......完成,然後進入src目錄,輸入下面命令,
~# ./build/install-build-deps.sh
3、編譯android平臺源碼
3.1 添加安卓平臺
echo "target_os = [ 'android' ]" >> .gclient
3.2同步代碼
gclient sync
3.3 進入src 安裝依賴
~# cd src
// 安裝android依賴
~# ./build/install-build-deps-android.sh
3.4 輸入如下命令開始編譯
~# python tools_webrtc/android/build_aar.py --build-dir out/android --arch armeabi-v7a --extra-gn-args rtc_include_tests=false rtc_build_tools=false rtc_build_examples=false
等待編譯完成