Android中如何使用开源C库

paltan 2014-03-13 04:32:24
为了能达到跨平台通信的SIP,而使用开源的C语言库libosip与libeXosip
在Android平台上,自己猜想了几种使用方式:
1、将osip与eXosip编译成.so库文件放在Android工程里,然后用C封装,再通过JNI和NDK,供Java调用
2、将开源的C工程添加进eclipse,配置Android工程的环境变量,在Android工程下用C调用libosip与libeXosip工程并进行封装,然后通过JNI和NDK,供Java调用

不知道是否行得通,还请各位大神指点迷津!

看了一个英文博客,讲到了在Android平台上使用eXosip,不是很明白
http://blog.csdn.net/rx_wen/article/details/6085411
...全文
220 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
paltan 2014-03-18
  • 打赏
  • 举报
回复
引用 3 楼 tanqiyang90 的回复:
我之前也弄这相关的,搞了很久 其实那个英文博客是一个正确的引用方法,你只要在库工程下添加Android.mk文件,然后在你自己的工程下写好mk文件编译,NDK会自动寻找引用的库的mk并按其进行编译,编译好后会自动拷到你的工程下。 你遇到问题在于博客提供的mk中有错误,Android工程的mk文件并没设置NDK_Module_PATH,导致NDK找不到引用的库。所以你添加下面一句就可以了 $(call import-add-path,$(LOCAL_PATH)/../../)
引用 3 楼 tanqiyang90 的回复:
我之前也弄这相关的,搞了很久 其实那个英文博客是一个正确的引用方法,你只要在库工程下添加Android.mk文件,然后在你自己的工程下写好mk文件编译,NDK会自动寻找引用的库的mk并按其进行编译,编译好后会自动拷到你的工程下。 你遇到问题在于博客提供的mk中有错误,Android工程的mk文件并没设置NDK_Module_PATH,导致NDK找不到引用的库。所以你添加下面一句就可以了 $(call import-add-path,$(LOCAL_PATH)/../../)
非常感谢!确实是这个问题。 此外,libosip 和 libeXosip 的mk文件也有问题,我按照编译器的提示修改后,编译通过了!
CoreTan 2014-03-18
  • 打赏
  • 举报
回复
我之前也弄这相关的,搞了很久 其实那个英文博客是一个正确的引用方法,你只要在库工程下添加Android.mk文件,然后在你自己的工程下写好mk文件编译,NDK会自动寻找引用的库的mk并按其进行编译,编译好后会自动拷到你的工程下。 你遇到问题在于博客提供的mk中有错误,Android工程的mk文件并没设置NDK_Module_PATH,导致NDK找不到引用的库。所以你添加下面一句就可以了 $(call import-add-path,$(LOCAL_PATH)/../../)
绝世酱油瓶 2014-03-14
  • 打赏
  • 举报
回复
2者都可行吧。NDK里本来就有c的一些库,不过添加新的库没试过。
怪人伽利略 2014-03-13
  • 打赏
  • 举报
回复
可以啊,不过 jni要做java和C桥梁!

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧