源碼下載和編譯
準備
android webrtc官網上說得很清楚,要使用Linux系統去編譯,別再去折騰什麼如何在windows或Mac上編譯android webrtc了,所以老老實實的用上Linux系統的電腦,或者裝虛擬機,最好是使用Ubuntu16.04及以上系統;注:如果是使用虛擬機,那麼內存一定要分配足,不然編譯過程會出現莫名其妙的錯誤,還不告訴你是因爲內存不足導致的
- 安裝和配置環境
1.1. 安裝基礎軟件依賴
$ sudo apt-get update
安裝vim:$ sudo apt-get install vim
安裝git:$ sudo apt-get install git
此時如果需要安裝編輯器(如:sublime text或者開發工具)和配置翻牆等,一併在此步驟操作完
1.2. 安裝google工具和腳本
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
配置環境變量:$ vi ~/.bashrc
按i後在最後面添加:
export DEPOT_TOOLS_PATH=~/depot_tools
export PATH=${PATH}:${DEPOT_TOOLS_PATH}
輸入完畢之後按’esc’鍵,再按w保存退出即可
使環境變量生效:$ source ~/.bashrc
- 拉取Android webrtc源碼
2.1. 創建webrtc目錄
$ mkdir webrtc
$ cd webrtc
2.2. 拉取代碼
$ fetch --nohooks webrtc_android
$ gclient sync //若是異常斷開,可多執行幾次
等待…這個過程會比較久,代碼大概17G左右
編譯webrtc
- 安裝依賴
gclient sync執行完成之後
$ cd src
$ ./build/install-build-deps.sh
$ ./build/install-build-deps-android.sh
$ . build/android/envsetup.sh
- 編譯
編譯示例
進入webrtc/src目錄
$ gn gen out/debug/armeabi-v7a --args='target_os="android" target_cpu=“arm" is_debug=true' $ ninja -C out/debug/armeabi-v7a
其中,–args後面跟隨的是配置參數,target_cpu表示AndroidCPU架構,編譯其他CPU架構如下:
ARM64: target_cpu=“arm64”
32-bit x86: target_cpu=“x86”
64-bit x64: target_cpu=“x64"
編譯成功之後,主要獲取jar包和so包,分別爲
out/debug/armeabi-v7a/lib.java/sdk/android/libwebrtc.jar
out/debug/armeabi-v7a/libjingle_peerconnection_so.so
- 編譯aar包
以上編譯方式只是其中的一種,另一種是可以直接編譯成aar包,編譯腳本爲webrtc/src/tools_webrtc/android/build_aar.py文件,編譯aar包執行如下:
需要在src目錄下執行
./tools_webrtc/android/build_aar.py --build-dir out --arch "armeabi-v7a" "arm64-v8a"