我对Android很新,我得到了一个初级Android的工作,我被建议使用PJSIP来创建VoIP应用程序的后端功能。这意味着要自己处理媒体传输和信号传输。
我在阅读文档时遇到了困难。我尝试阅读它,但很难理解代码和功能。如何在Android Studio(Java)中实现用C编写的库?我如何阅读文档并了解我的意图?
我试过阅读PJSIP开发人员指南,大部分内容对我来说似乎都不可理解。
我正在为您开发类似的应用程序以及视频支持。我还没有将pjsip库集成到应用程序中。但是为android构建了库。
为了回答你的问题,NDK(android studio中提供的SDK)用于在android中实现C和C ++等本机语言。使用JNI接口,C,C ++代码与android兼容,你现在没有任何硬代码。转到pjsip并获取基于平台(windows或linux)的tar或zip文件,并将其解压缩到您的系统中。你还需要安装ndk,谷歌通过这些步骤。
建立图书馆会有点麻烦。因此,请按照官方指南进行操作,并按照以下步骤进行操作
为Android建立PJSIP转到Android的pjproject下载目录
去pjproject / pjlib / include / pj并检查config_site.h文件,如果没有找到则创建一个并添加:hashtag define PJ_CONFIG_ANDROID 1个hashtag包括angular braces pj / config_site_sample.h angular braces
export ANDROID_NDK_ROOT = ndk的ndk-bundle(已下载)的路径。
转到pjproject的根文件夹并执行./configure make dep && make clean && make
错误:
没有编译器发现错误安装clang使用sudo apt-get clang并执行export CC =“$ ANDROID_NDK / toolchains / llvm / prebuilt / darwin-x86_64 / bin / clang -target armv7-none-linux-androideabi -gcc-toolchain $ NDK_TOOLCHAIN “export CXX =”$ ANDROID_NDK / toolchains / llvm / prebuilt / darwin-x86_64 / bin / clang ++ -target armv7-none-linux-androideabi -gcc-toolchain $ NDK_TOOLCHAIN“
对于C编译器无法创建可执行文件错误授予ndk-bundle权限
chmod -R 777 ndk-bundle
对于任何文件夹中丢失的分隔符错误,执行find。 -type f -name'* .depend'| xargs rm
对于任何其他错误,还要安装g ++
在pjsip-apps中找到android的pjsua示例应用程序。它有一个很好的例子,说明如何通过Android java应用程序的JNI接口使用pjsip c-library。