概述
本文将介绍如何在 Mac 环境下编译 Android 版本的 PJSIP 和 OpenH264。编译过程中涉及设置环境变量、编译 OpenH264 和 PJSIP 的不同架构(arm 和 arm64),并最终将生成的文件集成到你的项目中。
编译前准备
设置 ANDROID NDK 环境变量
确保你已经安装了 Android NDK,并设置好环境变量:
bash
export ANDROID_NDK_ROOT=XXXXX
编译 OpenH264
下载并解压 OpenH264
bash
git clone https://github.com/cisco/openh264.git
cd openh264
编译 arm 架构
bash
mkdir android-arm
cd build
修改 platform-android.mk
文件
在文件末尾添加:
makefile
PREFIX=android-arm
执行编译命令
bash
make OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm NDKLEVEL=21 clean
make OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm NDKLEVEL=21
make install OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm NDKLEVEL=21
复制库文件
将生成的 libopenh264.so
复制到你的项目中。
编译 arm64 架构
bash
cd openh264
mkdir android-arm64
cd build
修改 platform-android.mk
文件
在文件末尾添加:
makefile
PREFIX=android-arm64
执行编译命令
bash
make OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm64 NDKLEVEL=21 clean
make OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm64 NDKLEVEL=21
make install OS=android NDKROOT=$ANDROID_NDK_ROOT TARGET=android-21 ARCH=arm64 NDKLEVEL=21
复制库文件
将生成的 libopenh264.so
复制到你的项目中。
编译 PJSIP
下载并解压 PJSIP
bash
git clone https://github.com/pjsip/pjproject
cd pjproject-2.13.1
编译 armeabi-v7a 架构
执行配置和编译命令
bash
TARGET_ABI=armeabi-v7a APP_PLATFORM=android-21 ./configure-android --with-openh264=/你的openh264路径/android-arm
make dep && make
编译应用程序
bash
cd swig/src/app
make
复制生成的文件
so 文件:
plaintextpjsip-apps/src/swig/java/android/app/src/main/jniLibs/armeabi
java 文件:
plaintextpjsip-apps/src/swig/java/android/pjsua2/src/main/java
将这些文件复制到你的项目中。
编译 armeabi-v8a 架构
清理之前的编译
bash
cd swig/src/app
make clean
回到根目录并执行配置和编译命令
bash
cd ../..
TARGET_ABI=armeabi-v8a APP_PLATFORM=android-21 ./configure-android --with-openh264=/你的openh264路径/android-arm64
make dep && make
编译应用程序
bash
cd swig/src/app
make
复制生成的文件
将生成的 so
文件复制到你的项目中。
总结
本文详细介绍了如何在 Mac 环境下编译 Android 版本的 PJSIP 和 OpenH264,并将生成的文件集成到你的项目中。通过分步骤的指导,确保编译过程顺利进行。希望这篇文章能帮助你在开发过程中顺利解决问题。