編譯linphone-sdk-android
編譯環(huán)境
系統(tǒng) Ubuntu 20.04.4 LTS 2核4G 50G存儲 i5-8250U 1.60Ghz
Android SDK r24.4.1
Android NDK r18b
Linphone SDK Release 4.5
CMake 3.16.3
Python 3.8.10
Git 2.15.1
Java 1.8.0_312
Android環(huán)境準備
安裝 Android SDK NDK cmdline-tools
NDK:https://developer.android.google.cn/ndk/downloads?hl=en
SDK:https://links.jianshu.com/go?to=http%3A%2F%2Fdl.google.com%2Fandroid%2Fandroid-sdk_r24.4.1-linux.tgz
Cmdline:https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip
三個壓縮包下載之后,將NDK和SDK解壓矫夯,commandlinetools-linux-6200805_latest.zip 解壓后將解壓出來的tools文件夾放在sdk根目錄的cmdline-tools文件夾里邊礁扮,如果沒有cmdline-tools文件夾绪撵,就手動創(chuàng)建一個包晰。放好文件之后需要配置環(huán)境變量,在~/ .profile文件下末尾添加一下內(nèi)容平道,路徑換成你自己的文件路徑
export JAVA_HOME=你自己的路徑
export PATH=$JAVA_HOME:$PATH
export ANDROID_HOME=你自己的路徑/android-sdk-linux
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/tools/bin:$PATH
export NDK_HOME=你自己的路徑/android-ndk-r18b
export PATH=$NDK_HOME:$PATH
Ubuntu環(huán)境準備
安裝cmake
$ sudo apt-get install cmake
安裝git
$ sudo apt-get install git
安裝java
$ sudo apt-get install openjdk-8-jdk
安裝yasm
$ sudo apt-get install yasm
安裝nasm
$ sudo apt-get install nasm
安裝doxygen
$ sudo apt-get install doxygen
安裝clang
$ sudo apt-get install clang
安裝g++-multilib
$ sudo apt-get install g++-multilib
安裝pip
$ sudo apt-get install python3-pip
配置pip源
編輯~/.pip/pip.conf
辅髓,若沒有此文件自行創(chuàng)建浪感,填寫以下內(nèi)容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
安裝pystache
pip3 install pystache
安裝six
pip3 install six
Android SDK 協(xié)議授予
yes | sdkmanager --licenses && sdkmanager --update
編譯前環(huán)境基本準備完畢缎罢。
編譯Linphone SDK
下載源碼
$ git clone -b release/4.5 https://gitlab.linphone.org/BC/public/linphone-sdk.git --recursive
注意點:
- 根據(jù)個人網(wǎng)絡(luò)情況伊群,可能需要掛VPN
- clone需要加
--recursive
,因為linphone-sdk使用git submodule功能搭建策精,引用了十幾個module舰始,--recursive
會在clone的時候把引用的module也下載下來
處理下文件可執(zhí)行權(quán)限:
$ chmod u+x linphone-sdk/cmake/Android/gradlew
$ chmod u+x linphone-sdk/external/libvpx/configure
$ chmod u+x linphone-sdk/cmake/dummy.sh
$ chmod u+x linphone-sdk/external/libvpx/build/make/*
開始編譯
到這里一切準備就緒,可以開始編譯了咽袜,創(chuàng)建build文件夾丸卷,編譯過程產(chǎn)物都在build文件夾里
$ cd linphone-sdk
$ mkdir build && cd build
$ cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Android -DLINPHONESDK_ANDROID_ARCHS=arm64,armv7,x86,x86_64 -DENABLE_G729=YES ..
$ cmake --build . --parallel 8
目前是指定編譯目標平臺是Android,編譯目標CPU架構(gòu)是arm64/armv7,x86,x86_64酬蹋,并開啟G729音頻編解碼及老,開啟8個線程編譯,在目前編譯環(huán)境下范抓,整編一次耗時大約一個半小時骄恶,后續(xù)增量編譯會快不少
不需要x86,x86_64架構(gòu)的,可以刪除匕垫。
目前編譯過程中沒有報錯僧鲁,happy~~~
編譯完成后的產(chǎn)物在以下目錄:
- .so:build/libs/
- aar:build/linphone-sdk/bin/outputs/aar/
- maven:build/maven_repository
最后創(chuàng)建一個編譯腳本build.sh
,把上面的編譯命令復(fù)制到文件里保存,每次編譯時執(zhí)行編譯腳本即可./build.sh
#! /bin/bash
cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Android -DLINPHONESDK_ANDROID_ARCHS=arm64,armv7,x86,x86_64 -DENABLE_G729=YES ..
cmake --build . --parallel 8