You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编译Licode源码以适配Android JNI及多ABI架构?

编译Licode源码用于Android JNI(多ABI支持)

前置准备

  • 安装Android NDK(推荐r21e版本,避免新API兼容性问题),设置环境变量ANDROID_NDK_ROOT指向NDK根目录
  • 拉取Licode源码:git clone https://github.com/lynckia/licode.git
  • 安装构建依赖:CMake、autoconf、automake、libtool、pkg-config(根据系统包管理器安装,如Ubuntu用apt-get install,macOS用brew install)

交叉编译依赖库(libsrtp、OpenSSL、opus)

Licode依赖的第三方库需先为目标ABI单独交叉编译,以armeabi-v7a为例,其他ABI替换对应工具链参数即可:

  1. 设置交叉编译环境变量:
export ABI=armeabi-v7a
export TOOLCHAIN=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64
export TARGET=armv7a-linux-androideabi
export API=21 # 最低兼容Android API等级
export CC=$TOOLCHAIN/bin/$TARGET$API-clang
export CXX=$TOOLCHAIN/bin/$TARGET$API-clang++
export AR=$TOOLCHAIN/bin/llvm-ar
export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
export STRIP=$TOOLCHAIN/bin/llvm-strip
export PATH=$TOOLCHAIN/bin:$PATH
  1. 编译OpenSSL:
git clone https://github.com/openssl/openssl.git
cd openssl
./Configure android-arm -D__ANDROID_API__=$API --prefix=/path/to/openssl-$ABI
make
make install
cd ..
  1. 编译libsrtp:
git clone https://github.com/cisco/libsrtp.git
cd libsrtp
./configure --host=$TARGET --prefix=/path/to/libsrtp-$ABI --enable-android-openssl --with-openssl-dir=/path/to/openssl-$ABI
make
make install
cd ..
  1. 编译opus:
git clone https://github.com/xiph/opus.git
cd opus
./autogen.sh
./configure --host=$TARGET --prefix=/path/to/opus-$ABI --disable-shared --enable-static
make
make install
cd ..

编译Licode各ABI版本

针对armeabi-v7a、arm64-v8a、x86、x86-64分别执行以下步骤:

  1. 创建对应ABI的构建目录:
mkdir licode-build-$ABI && cd licode-build-$ABI
  1. 配置交叉编译参数(替换对应ABI的TARGET和依赖路径):
# arm64-v8a对应TARGET为aarch64-linux-android,x86对应i686-linux-android,x86-64对应x86_64-linux-android
../licode/configure \
  --host=$TARGET \
  --prefix=/path/to/licode-output-$ABI \
  --with-openssl=/path/to/openssl-$ABI \
  --with-srtp=/path/to/libsrtp-$ABI \
  --with-opus=/path/to/opus-$ABI \
  --enable-shared \
  --disable-static
  1. 编译并安装:
make -j$(nproc)
make install

产物说明

编译完成后,/path/to/licode-output-$ABI/lib目录下会生成Licode的.so动态库,include目录下是JNI开发所需的头文件。将这些文件按ABI分类放入Android项目的jniLibs对应子目录即可。

内容的提问来源于stack exchange,提问作者Program-Me-Rev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:42:22