按上两次的文章,编译好windows 平台(http://blog.csdn.net/nickwar/article/details/8962344)和android平台上使用的jrtplib库(http://blog.csdn.net/nickwar/article/details/8962482)之后,
就可以做进一步的应用开发了,但测试了一下发现,两边通讯不起来,
查资料发现,网络数据传输有大小端的区别(binendian和littleendian),
这就像是吃煮鸡蛋先从大头磕开还是小头磕开的问题,比较无聊,
但windows平台上编译的配置是默认littleendian的,但android(linux)上配置是默认大端的bigendian
所以,回到android平台编译的那一节,找到jrtplib源码目录下的CMakeLists.txt,打开它,
找到下面这段代码并注释其中相应的的行,重新编译即可获得littleendian的库
if (CMAKE_CROSSCOMPILING)
# option (JRTPLIB_USE_BIGENDIAN "Target platform is big endian" ON)
# if (JRTPLIB_USE_BIGENDIAN)
# set(RTP_ENDIAN "#define RTP_BIG_ENDIAN")
# else (JRTPLIB_USE_BIGENDIAN)
set(RTP_ENDIAN "// Little endian system")
# endif (JRTPLIB_USE_BIGENDIAN)
else (CMAKE_CROSSCOMPILING)
# test_big_endian(JRTPLIB_BIGEND

本文介绍了在Android项目中使用NDK集成jrtplib库与Windows进行通讯的过程。首先,编译了适用于Windows和Android的jrtplib库。由于两端网络数据传输存在大小端问题,需修改Android平台的库配置为littleendian。将生成的库文件和头文件放入Android项目的jni目录,并编辑Android.mk。接着,参照jrtplib示例代码编写Android应用。最终,在PC上运行example1.exe,Android设备运行应用,实现跨平台通讯。
1895

被折叠的 条评论
为什么被折叠?



